Moteur de différenciation automatique minimal en Rust

2025-06-20
Moteur de différenciation automatique minimal en Rust

Il s'agit d'un moteur de différenciation automatique minimal écrit en Rust. Il peut entraîner un petit perceptron multicouche pour apprendre la fonction XOR et afficher un graphe de calcul d'un seul perceptron dans graph.html. Le cœur du système est la structure Scalar, qui stocke la valeur, le gradient optionnel et une Edge décrivant l'opération qui l'a produite. Les surcharges d'opérateurs et les fonctions auxiliaires construisent un graphe acyclique dirigé, en mettant en cache la dérivée locale pour chaque arête. `backward()` propage récursivement les gradients depuis le nœud de sortie, en les accumulant dans les nœuds feuilles créés avec `Scalar::new_grad`. Le graphe peut être visualisé avec `plot::dump_graph`.