AlexNet est une architecture de réseau neuronal convolutif développée pour les tâches de classification d'images, devenant notamment célèbre grâce à ses performances dans le cadre du défi de reconnaissance visuelle à grande échelle ImageNet (ILSVRC). Elle classifie les images en 1 000 catégories d'objets distinctes et est considérée comme la première application largement reconnue des réseaux convolutifs profonds dans la reconnaissance visuelle à grande échelle.
Développé en 2012 par Alex Krizhevsky en collaboration avec Ilya Sutskever et son directeur de thèse Geoffrey Hinton à l'Université de Toronto, le modèle contient 60 millions de paramètres et 650 000 neurones. Le résultat principal de l'article original était que la profondeur du modèle était essentielle à ses hautes performances, ce qui était coûteux en calcul, mais rendu faisable grâce à l'utilisation de processeurs graphiques (GPU) lors de l'entraînement.
Les trois ont formé l'équipe SuperVision et ont soumis AlexNet au défi de reconnaissance visuelle à grande échelle ImageNet le 30 septembre 2012. Le réseau a atteint un taux d'erreur top-5 de 15,3 % pour remporter le concours, plus de 10,8 % au-dessus du deuxième. L'architecture a influencé un grand nombre de travaux ultérieurs en Deep learning, en particulier dans l'application des réseaux neuronaux à la vision par ordinateur.
Architecture
AlexNet contient huit couches : les cinq premières sont des couches convolutives, certaines suivies de couches de max-pooling, et les trois dernières sont des couches entièrement connectées. Le réseau, à l'exception de la dernière couche, est divisé en deux copies, chacune exécutée sur un GPU, car le réseau ne tenait pas dans la mémoire vidéo d'un seul GPU Nvidia GTX 580 3GB. La structure complète peut être écrite comme (CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Linéaire → softmax, où CONV = couche convolutive (avec activation ReLU), RN = normalisation de réponse locale, MP = max-pooling, FC = couche entièrement connectée (avec activation ReLU), Linéaire = couche entièrement connectée (sans activation) et DO = dropout.
Notamment, les couches convolutives 3, 4 et 5 étaient connectées les unes aux autres sans aucun pooling ni normalisation. Elle utilisait la fonction d'activation ReLU non saturante, qui s'entraînait mieux que tanh et sigmoïde. Ce choix de fonction d'activation était un écart clé par rapport aux pratiques antérieures et a contribué à une convergence d'entraînement plus rapide.
Entraînement
L'ensemble d'entraînement ImageNet contenait 1,2 million d'images. Le modèle a été entraîné pendant 90 époques sur une période de cinq à six jours en utilisant deux GPU Nvidia GTX 580 (3GB chacun). Ces GPU ont une performance théorique de 1,581 TFLOPS en float32 et étaient vendus à 500 $ US à leur sortie. Chaque passage avant d'AlexNet nécessitait environ 1,43 GFLOPs. Sur la base de ces valeurs, les deux GPU ensemble étaient théoriquement capables d'effectuer plus de 2 200 passages avant par seconde dans des conditions idéales.
Les images de l'ensemble de données étaient stockées au format JPEG. Elles occupaient 27GB de disque. Le réseau neuronal occupait 2GB de RAM sur chaque GPU et environ 5GB de RAM système pendant l'entraînement. Les GPU étaient responsables de l'entraînement, tandis que les CPU étaient responsables du chargement des images depuis le disque et de l'augmentation des données des images.
AlexNet a été entraîné avec une descente de gradient par momentum avec une taille de lot de 128 exemples, un momentum de 0,9 et un décroissance de poids de 0,0005. Le taux d'apprentissage a commencé à 10−2 et a été manuellement réduit de dix fois chaque fois que l'erreur de validation semblait cesser de diminuer. Il a été réduit trois fois pendant l'entraînement, se terminant à 10−5.
Il utilisait deux formes de Data Augmentation, toutes deux calculées à la volée sur le CPU, donc « gratuites en calcul » :
- Chaque image d'ImageNet était d'abord redimensionnée, de sorte que son côté le plus court soit de longueur 256. Ensuite, la patch centrale 256×256 était recadrée et normalisée (en divisant les valeurs des pixels pour qu'elles tombent entre 0 et 1, puis en soustrayant par [0,485, 0,456, 0,406], puis en divisant par [0,229, 0,224, 0,225]. Ce sont les moyennes et écarts types pour ImageNet, donc cela blanchit les données d'entrée).
- Extraction de patches aléatoires 224×224 (et leurs réflexions horizontales) à partir du recadrage 256×256. Cela augmente la taille de l'ensemble d'entraînement de 2048 fois.
- Décalage aléatoire de la valeur RVB de chaque image le long des trois directions principales des valeurs RVB de ses pixels.
La résolution 224×224 a été choisie, car 256 - 16 - 16 = 224, ce qui signifie que, étant donné une image 256×256, encadrer une largeur de 16 sur ses 4 côtés donne une image 224×224.
Il utilisait une normalisation de réponse locale et une régularisation par Dropout avec une probabilité d'abandon de 0,5. Tous les poids étaient initialisés comme des gaussiennes avec une moyenne de 0 et un écart type de 0,01. Les biais dans les couches convolutives 2, 4, 5 et toutes les couches entièrement connectées étaient initialisés à la constante 1 pour éviter le problème de ReLU mourante.
Lors du test, pour utiliser un AlexNet entraîné pour prédire la classe d'une image, cette image est d'abord redimensionnée, de sorte que son côté le plus court soit de longueur 256. Ensuite, la patch centrale 256×256 est recadrée. Puis, les cinq patches 224×224 (les quatre patches de coin et la patch centrale) ainsi que leurs réflexions horizontales sont calculées, soit 10 patches au total. Les probabilités prédites du réseau sur les 10 patches sont moyennées, et c'est la probabilité prédite finale.
Compétition ImageNet
La version utilisée pour participer à la compétition ImageNet 2012 était un ensemble de 7 AlexNets. Plus précisément, ils ont entraîné 5 AlexNets de l'architecture précédemment décrite (avec 5 couches CONV) sur l'ensemble d'entraînement ILSVRC-2012 (1,2 million d'images). Ils ont également entraîné 2 variantes d'AlexNet, obtenues en ajoutant une couche CONV supplémentaire au-dessus de la dernière couche de pooling. Celles-ci ont été entraînées en commençant par un entraînement sur l'ensemble de la version ImageNet Fall 2011 (15 millions d'images dans 22K catégories), puis en affinant sur l'ensemble d'entraînement ILSVRC-2012. Le système final de 7 AlexNets a été utilisé en moyennant leurs probabilités prédites.
Histoire
Travaux antérieurs
En 1980, Kunihiko Fukushima a proposé un premier CNN nommé néocognitron. Il était entraîné par un algorithme d'apprentissage non supervisé. Le LeNet-5 (Yann LeCun et al., 1989) était entraîné par apprentissage supervisé avec l'algorithme de rétropropagation, avec une architecture essentiellement identique à AlexNet à petite échelle.
Le max-pooling a été utilisé en 1990 pour le traitement de la parole (essentiellement un CNN unidimensionnel), et pour le traitement d'images, il a été utilisé pour la première fois dans le Cresceptron de 1992. Pendant les années 2000, alors que le matériel GPU s'améliorait, certains chercheurs l'ont adapté pour le calcul général, y compris l'entraînement de réseaux neuronaux. (K. Chellapilla et al., 2006) ont entraîné un CNN sur GPU qui était 4 fois plus rapide qu'une implémentation CPU équivalente. (Raina et al., 2009) ont entraîné un réseau de croyances profond avec 100 millions de paramètres sur un Nvidia GeForce GTX 280 avec une accélération jusqu'à 70 fois par rapport aux CPU. Un CNN profond de (Dan Cireșan et al., 2011) à l'IDSIA était 60 fois plus rapide qu'une implémentation CPU équivalente. Entre le 15 mai 2011 et le 10 septembre 2012, leur CNN a remporté quatre compétitions d'images et a atteint l'état de l'art pour plusieurs bases de données d'images. Selon l'article AlexNet, le réseau antérieur de Cireșan est « quelque peu similaire ». Les deux ont été écrits avec CUDA pour fonctionner sur GPU.
Vision par ordinateur
Pendant la période 1990-2010, les réseaux neuronaux n'étaient pas meilleurs que d'autres méthodes de Machine learning comme la régression par noyau et les machines à vecteurs de support pour de nombreuses tâches de reconnaissance visuelle. Le succès d'AlexNet en 2012 a démontré que les réseaux convolutifs profonds, lorsqu'ils sont entraînés avec suffisamment de données et de ressources computationnelles, pouvaient surpasser de loin les approches basées sur des caractéristiques artisanales. Ce résultat a catalysé un changement dans le domaine de la vision par ordinateur vers les approches d'apprentissage profond, conduisant à des avancées rapides dans la détection d'objets, la segmentation d'images et d'autres tâches visuelles.
L'impact a dépassé le cadre académique. Les techniques popularisées par AlexNet, y compris l'entraînement sur GPU, les activations ReLU et la régularisation par dropout, sont devenues des composants standard dans les architectures ultérieures. De nombreux modèles ultérieurs, tels que ResNet et U-Net, se sont directement appuyés sur les fondations posées par AlexNet. L'article est fréquemment cité comme point de départ de l'ère moderne de l'Artificial intelligence, influençant non seulement la vision par ordinateur, mais aussi le traitement du langage naturel et d'autres domaines qui ont ensuite adopté les méthodes d'apprentissage profond.