En résumé
Yann LeCun et son équipe ont appliqué la rétropropagation à 7 291 images de chiffres manuscrits en 1989.
La reproduction PyTorch obtient une erreur de test de 4,09 % avec le modèle proche de l’expérience originale.
L’augmentation des données et l’abandon réduisent l’erreur de test à 1,59 % sur 2 007 exemples.
Le signal : La reproduction de Karpathy réduit l’erreur de test de 4,09 % à 1,59 % avec augmentation des données et abandon.
Vous appréciez ce genre d'analyse ?
Chaque mardi et vendredi, l'essentiel en business & IA décryptées en 5 minutes. Gratuit, sans engagement.
+11 000 fondateurs abonnés
Une expérience fondatrice En 1989, Yann LeCun et ses coauteurs publient une application de la rétropropagation à la reconnaissance de codes postaux manuscrits. Leur système traite 7 291 images en niveaux de gris, chacune mesurant 16 par 16 pixels. Le réseau neuronal compte environ 1 000 neurones dans l’article d’origine. Cette architecture apprend de bout en bout avec un jeu de données, une fonction de perte, une méthode d’optimisation et des mesures d’erreur sur les ensembles d’entraînement et de test. Cette organisation ressemble fortement à celle d’un article moderne d’apprentissage profond. La publication originale est consultable ici.
Un calcul très contraint Le réseau original est développé en Lisp avec le simulateur SN de Bottou et LeCun, ensuite renommé Lush. L’entraînement demande 23 passages sur les 7 291 exemples, soit 167 693 présentations d’un exemple et de son étiquette. Une station SUN-4/260 exécute ce calcul en trois jours. Andrej Karpathy réimplémente ensuite l’expérience en PyTorch dans un dépôt dédié. Son MacBook Air équipé d’une puce M1 termine le calcul en environ 90 secondes avec le processeur central. Cette comparaison représente une accélération naïve d’environ 3 000 fois. Le code de reproduction est disponible sur GitHub.
Des résultats proches L’article original rapporte une erreur d’entraînement de 0,14 % et une erreur de test de 5,00 %. La reproduction obtient respectivement 0,62 % et 4,09 % après le 23e passage. Elle utilise toutefois MNIST, car le jeu de données original est considéré comme perdu. Les images de 28 par 28 pixels sont réduites à 16 par 16 pixels, puis réparties aléatoirement entre entraînement et test. La reproduction ne cherche donc pas à recréer chaque donnée originale. Elle retrouve néanmoins des niveaux d’erreur comparables. Le réseau reproduit possède quatre couches convolutives, jusqu’à 12 canaux, 9 760 paramètres et 64 000 opérations MAC.
Des outils plus récents Karpathy remplace ensuite la perte d’erreur quadratique par une entropie croisée multiclasses. Cette modification porte l’erreur de test à 4,38 %, malgré une erreur d’entraînement nulle. L’optimiseur AdamW, avec un taux d’apprentissage passant de 3e-4 à 1e-4, réduit ensuite l’erreur de test à 3,59 %. L’ajout d’un décalage aléatoire des images, jusqu’à un pixel horizontalement ou verticalement, ramène cette erreur à 2,19 %. Le nombre de passages augmente alors à 60. L’abandon à 0,25 et le remplacement de tanh par ReLU abaissent enfin l’erreur à 1,59 %, avec 32 erreurs sur 2 007 exemples de test.
Un effet mesuré La version modernisée multiplie presque par quatre le temps d’entraînement, qui passerait de trois jours à presque douze en 1989. La latence d’inférence reste toutefois inchangée. L’ajout de données fournit un autre levier. Le jeu d’entraînement passe de 7 291 à 50 000 exemples, soit environ sept fois plus. Avec les méthodes modernes précédentes, l’erreur de test descend à 1,25 %, avec 24 erreurs. Cette amélioration ne demande pas d’augmenter la taille du réseau. Elle évite donc l’augmentation de latence d’inférence associée à un modèle plus grand. Karpathy indique aussi qu’un micro-transformeur visuel n’a pas égalé le réseau convolutif dans cette expérience.
Gardez un coup d'avance en IA et tech.
Chaque mardi et vendredi, l'essentiel en business & IA décryptées en 5 minutes. Zéro spam.
+11 000 fondateurs abonnés