En résumé
Yann LeCun a publié en 1989 une application concrète de la rétropropagation sur des chiffres manuscrits.
Andrej Karpathy a reproduit l’expérience avec PyTorch sur un ordinateur portable Apple M1.
La data augmentation et le dropout ont réduit l’erreur de test à 1,59 %.
Le signal : La reproduction de Karpathy réduit l’erreur de test de 4,09 % à 1,59 % avec des techniques modernes.
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
En 1989, Yann LeCun et ses coauteurs appliquent la rétropropagation à la reconnaissance de codes postaux manuscrits. Leur article décrit un jeu de données, une architecture, une fonction de perte, une optimisation et des erreurs mesurées sur des ensembles d’entraînement et de test. Le jeu comprend 7 291 images de chiffres en niveaux de gris, chacune mesurant 16 par 16 pixels. Le réseau compte environ 1 000 neurones. Le modèle original est entraîné pendant trois jours sur une station SUN-4/260. Cette étude constitue, selon Andrej Karpathy, l’une des premières applications réelles d’un réseau neuronal entraîné de bout en bout par rétropropagation.
La reproduction moderne suit l’article avec PyTorch dans un dépôt public. Karpathy utilise toutefois MNIST, car le jeu original n’est plus disponible pour une reproduction exacte. Il redimensionne des chiffres de 28 par 28 pixels vers 16 par 16 pixels. Il sélectionne ensuite des exemples d’entraînement et de test sans remplacement. Le réseau reproduit approximativement les résultats publiés. L’article original indiquait une erreur d’entraînement de 0,14 % et une erreur de test de 5,00 %. La nouvelle exécution obtient 0,62 % sur l’entraînement et 4,09 % sur le test, après 23 passages sur les 7 291 exemples.
Le matériel change radicalement la durée de calcul. Le réseau de Karpathy termine l’entraînement en environ 90 secondes sur le processeur d’un MacBook Air équipé d’une puce M1. Le même calcul nécessitait trois jours sur la station SUN-4/260. Cette comparaison représente une accélération naïve d’environ 3 000 fois. Une carte A100 s’est pourtant montrée plus lente dans cette configuration. Le modèle reste très petit, avec quatre couches convolutives, jusqu’à 12 canaux, 9 760 paramètres et 64 000 opérations MAC. L’entraînement traite un seul exemple à la fois, ce qui limite l’utilisation du processeur graphique.
Les méthodes modernes améliorent surtout la généralisation. Le remplacement de la perte quadratique par l’entropie croisée ramène l’erreur d’entraînement à zéro, mais laisse l’erreur de test à 4,38 %. AdamW, avec un taux d’apprentissage initial de 3 × 10⁻⁴, réduit ensuite l’erreur de test à 3,59 %. Le décalage des images d’un pixel horizontalement ou verticalement, combiné à 60 passages, atteint 2,19 %. L’ajout d’un dropout de 0,25 et le remplacement de tanh par ReLU abaissent enfin l’erreur à 1,59 %, soit 32 erreurs sur 2 007 images de test.
Le jeu de données agrandi produit le meilleur résultat de l’expérience. Karpathy porte le nombre d’exemples d’entraînement d’environ 7 291 à 50 000, soit près de sept fois plus. Avec les techniques modernes précédentes, l’erreur de test descend à 1,25 %. Le système commet alors 24 erreurs sur l’ensemble de test. Cette amélioration n’augmente pas la latence d’inférence, contrairement à un réseau plus grand. Elle nécessite cependant davantage d’exemples annotés. Pour reproduire l’étude, le code est disponible dans le dépôt GitHub de Karpathy, tandis que l’article de 1989 figure dans sa version originale.
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