L'apprentissage automatique, appliqué dans IX — Mission
Sections
Réglages de lecture
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
Code et termes techniques en anglais
Désactivé : la voix de la page lit tout, sans pause entre deux voix.
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
D’autres voix : Microsoft Edge propose des voix naturelles en ligne, et Windows (Paramètres › Heure et langue › Voix), macOS et Android en installent d’autres.

Art conceptuel, pas un schéma : une ville souterraine originale de machines de précision, inspirée de la planète-machine Ix du Dune de Frank Herbert. Elle ne montre rien des crates IX ni de leur code. Générée sur la machine de l’auteur avec ComfyUI 0.36.0 et Z-Image-Turbo (licence Apache 2.0), graine 20260927 ; un panneau indicateur de 36 × 20 pixels a été flouté pour retirer des marques semblables à des glyphes. Prompt, workflow et temps de génération.
Pourquoi j’apprends ça
Section intitulée « Pourquoi j’apprends ça »IX est un workspace Rust d’algorithmes d’apprentissage automatique et de mathématiques que Claude Code peut appeler comme outils : k-means, arbres de décision, descente de gradient, et environ quatre-vingts autres crates. Quand un outil répond « 3 clusters, silhouette 0.50 », je veux savoir ce qui a été calculé, si c’est juste, et à quoi ressemblerait une meilleure réponse.
Ma façon d’apprendre un algorithme, c’est de l’écrire. Chaque leçon écrit un algorithme en quelques dizaines de lignes, l’exécute, ainsi que la version d’IX, sur les mêmes données, et compare les deux jusqu’au dernier chiffre affiché. Quand elles diffèrent, l’une des deux a tort, et c’est en cherchant laquelle que j’apprends le plus : c’est ce que consigne le journal, leçon par leçon.
À qui s’adresse ce cours
Section intitulée « À qui s’adresse ce cours »Tu écris du C# ou du Java. L’algèbre du lycée ne te fait pas peur : une droite y = w·x + b, une somme Σ, une racine carrée, une dérivée. Tu n’as besoin de rien savoir de l’apprentissage automatique. Tu n’as pas non plus besoin de bien connaître Rust : le code utilise des boucles, des closures et les matrices de ndarray, et le cours Rust couvre le reste.
Si tu as utilisé ML.NET, Tribuo ou Deeplearning4j, chaque leçon relie ce que tu connais à ce que fait IX.
IX, ML.NET et Tribuo en un tableau
Section intitulée « IX, ML.NET et Tribuo en un tableau »| ML.NET | Tribuo | IX | |
|---|---|---|---|
| Langage | C#, F# | Java | Rust |
| Un jeu de données | IDataView, colonnes typées |
Dataset<T> d’Example<T> |
deux matrices ndarray : Array2<f64> pour les caractéristiques, Array1 pour les étiquettes |
| Un modèle | IEstimator.Fit renvoie un ITransformer |
Trainer.train renvoie un Model |
une struct avec fit et predict (traits Regressor, Classifier, Clusterer) |
| Prétraitement | NormalizeMeanVariance, ajusté comme un modèle |
TransformationMap |
StandardScaler::fit, puis transform |
| Depuis un assistant IA | — | — | outils MCP comme ix_kmeans et ix_ml_pipeline |
Sources : tâches et entraîneurs ML.NET, partitionnement dans Tribuo, README d’IX.
Les données
Section intitulée « Les données »Aucun jeu de données téléchargé : les deux fichiers viennent de ce dépôt, et data/extract.py les reconstruit à partir de l’historique CI que le cours DuckDB a exporté le 2026-09-14 (runs.json et jobs.json) et à partir de Git :
builds.csv, pour la régression : les 65 builds réussis de ce site, dans l’ordre des commits, avec le nombre de pages Markdown à ce commit (18 à 289) et les secondes de l’étape qui les construit (10 à 48). Le temps de build augmente-t-il avec le nombre de pages ?jobs.csv, pour la classification, le partitionnement et tout ce qui suit : 186 jobs CI, chacun avec cinq durées en secondes entières (attente dans la file, préparation du job, checkout du dépôt, nettoyage du checkout, fin du job) et l’OS du runner : 121 Ubuntu, 34 Windows, 31 macOS. Les durées permettent-elles de dire quel OS a exécuté un job ?
IX, épinglé
Section intitulée « IX, épinglé »Le cours utilise pour l’instant sept crates IX : ix-math (statistiques, mise à l’échelle, découpage, calcul différentiel), ix-supervised (régression, classification, métriques, validation croisée), ix-optimize (descente de gradient, recuit, essaim particulaire), ix-unsupervised (k-means, DBSCAN, mélanges gaussiens, ACP), ix-ensemble (forêts aléatoires, gradient boosting), ix-nn (couches, pertes, attention) et ix-voicings (le score de silhouette et le partitionnement des voicings de guitare). Cargo.toml les prend depuis Git, épinglées à un commit, comme le décrit la référence Cargo :
ix-supervised = { git = "https://github.com/GuitarAlchemist/ix", rev = "490c39533627d296bf9f8f050e6fafc14d7a20c2" }Chaque lien vers du code IX dans les leçons pointe vers ce commit, si bien que les numéros de ligne restent justes quand IX change.
À la fin de ce cours, je saurai
Section intitulée « À la fin de ce cours, je saurai »- découper des données pour l’entraînement et le test, choisir une référence, et évaluer un modèle avec la métrique qui convient à la question ;
- ajuster une droite de deux façons, par la forme close et par descente de gradient, et dire pourquoi la descente diverge ;
- entraîner et comparer une régression logistique, les k plus proches voisins et un arbre de décision, avec validation croisée ;
- regrouper des données sans étiquettes avec k-means, DBSCAN et un mélange gaussien, et juger les groupes ;
- réduire cinq dimensions à deux, et dire exactement ce que la réduction a coûté ;
- combiner des modèles faibles par bagging et par boosting, et savoir lequel des deux pardonne un mauvais réglage ;
- dériver un réseau à la main et vérifier la réponse par différences finies ;
- choisir une règle de mise à jour, et distinguer une exécution qui a divergé d’une qui a convergé ;
- lire un algorithme dans IX, le vérifier face à une version écrite à la main et à scikit-learn, et décrire précisément une différence.
Les leçons 1 à 9 sont écrites. Le reste est le plan, une leçon par famille d’algorithmes qu’IX implémente, et chacune sera publiée avec son code et sa vérification croisée comme les autres.
| # | Leçon | Crates IX | Si tu connais ML.NET |
|---|---|---|---|
| 1 | Données, caractéristiques et évaluation | ix-math |
IDataView, TrainTestSplit, RegressionMetrics |
| 2 | Régression linéaire et descente de gradient | ix-supervised, ix-optimize |
Ols, OnlineGradientDescent |
| 3 | Classification : régression logistique, k plus proches voisins, arbres de décision | ix-supervised |
LbfgsLogisticRegression, FastTree, CrossValidate |
| 4 | Partitionnement : k-means, DBSCAN, mélanges gaussiens | ix-unsupervised, ix-voicings |
KMeansTrainer |
| 5 | Composantes principales, et ce que signifie un ratio de variance | ix-unsupervised |
ProjectToPrincipalComponents |
| 6 | Ensembles : bagging, forêts aléatoires et gradient boosting | ix-ensemble |
FastForest, LightGbm |
| 7 | Réseaux de neurones, et les différences finies comme juge | ix-nn |
— |
| 8 | Optimisation : descente, momentum, Adam, et recherches sans gradient | ix-optimize, ix-math |
— |
| 9 | Les autres réducteurs : MDS, ACP à noyau, NMF, LDA, t-SNE | ix-unsupervised |
— |
| 10 | Séquences : chaînes de Markov, modèles de Markov cachés et Viterbi | ix-graph |
— |
| 11 | Compter sans compter : filtres de Bloom, HyperLogLog, count-min, coucou | ix-probabilistic |
— |
| 12 | Différentiation automatique : le ruban de Wengert | ix-autograd |
— |
| 13 | Attention, normalisation de couche et un bloc transformeur | ix-nn |
— |
| 14 | Apprentissage par renforcement : bandits et Q-learning | ix-rl |
— |
| 15 | Signaux : transformée de Fourier, ondelettes, filtres et Kalman | ix-signal |
— |
| 16 | Recherche : A*, recherche arborescente Monte-Carlo, recherche locale | ix-search, ix-graph |
— |
| 17 | Évolution : algorithmes génétiques, évolution différentielle, fronts de Pareto | ix-evolution |
— |
| 18 | Exemples adverses, empoisonnement et les défenses | ix-adversarial |
— |
| 19 | La forme des données : homologie persistante | ix-topo, ix-manifold |
— |
| 20 | Sur le GPU : produits matriciels, distances et k plus proches voisins en WGSL | ix-gpu |
— |
| 21 | Pipelines de bout en bout, et les outils MCP qu’appelle un assistant | ix-pipeline, ix-agent |
MLContext |
| — | Chaque crate et chaque fonction publique | les 80 qui ont une surface publique | — |
| — | Journal |
Ressources
Section intitulée « Ressources »- IX au commit
490c395, et son dossier de tutorielsdocs/ - Guide de l’utilisateur de scikit-learn, la référence qu’utilise la vérification croisée, et sa page sur les pièges courants
- Documentation ML.NET et documentation Tribuo
- An Introduction to Statistical Learning, de James, Witten, Hastie, Tibshirani et Taylor : gratuit en ligne, le livre derrière la plupart des formules de ce cours
- Deep Learning, de Goodfellow, Bengio et Courville, pour les leçons 7, 8 et 12 à 14
- ndarray, la crate de matrices que partagent IX et ce cours