Article de reference

AlexNet

Architecture d'AlexNet et une modification possible. En haut se trouve la moitié de l'AlexNet original (qui est divisé en deux moitiés, une par GPU). En bas se trouve la même ar...

Architecture d'AlexNet et une modification possible. En haut se trouve la moitié de l'AlexNet original (qui est divisé en deux moitiés, une par GPU). En bas se trouve la même architecture mais avec la dernière couche de "projection" remplacée par une autre qui projette sur moins de sorties. Si l'on gèle le reste du modèle et que l'on ne peaufine que la dernière couche, on peut obtenir un autre modèle de vision à un coût bien inférieur à celui de la formation d'un modèle à partir de zéro.
Diagramme de blocs AlexNet

AlexNet est le nom d'une architecture de réseau neuronal convolutif (CNN), conçue par Alex Krizhevsky en collaboration avec Ilya Sutskever et Geoffrey Hinton , qui était le directeur de thèse de Krizhevsky à l' Université de Toronto . Il avait 60 millions de paramètres et 650 000 neurones .

Le principal résultat de l'article original était que la profondeur du modèle était essentielle à ses hautes performances, ce qui était coûteux en termes de calcul, mais rendu possible grâce à l'utilisation d' unités de traitement graphique (GPU) pendant la formation.

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 obtenu une erreur top-5 de 15,3 %, soit plus de 10,8 points de pourcentage de mieux que celle du finaliste.

L'architecture a influencé un grand nombre de travaux ultérieurs dans le domaine de l'apprentissage profond , 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 d'entre elles suivies de couches de pooling maximal , 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. La structure entière peut être écrite comme

(CNN → RN → MP)² → (CNN³ → MP) → (FC → DO)² → Linéaire → softmax

  • CNN = couche convolutive (avec activation ReLU)
  • RN = normalisation de la réponse locale
  • MP = pooling maximal
  • FC = couche entièrement connectée (avec activation ReLU)
  • Linéaire = couche entièrement connectée (sans activation)
  • DO = abandon

Il a utilisé la fonction d'activation ReLU non saturante , qui s'est mieux entraînée que tanh et sigmoïde .

Comme le réseau ne pouvait pas tenir sur un seul GPU Nvidia GTX580 3 Go, il a été divisé en deux moitiés, une sur chaque GPU.

Entraînement

L' ensemble d'entraînement ImageNet comprenait 1,2 million d'images. Il a été formé pendant 90 époques, ce qui a pris cinq à six jours sur deux GPU NVIDIA GTX 580 3 Go, qui ont une performance théorique de 1,581 TFLOPS en float32 et un prix de sortie de 500 USD.

Il a été formé avec une descente de gradient d'impulsion avec une taille de lot de 128 exemples, une impulsion de 0,9 et une décroissance de poids de 0,0005. Le taux d'apprentissage a commencé à et a été réduit manuellement de 10 fois chaque fois que l'erreur de validation semblait cesser de diminuer. Il a été réduit trois fois pendant la formation, se terminant à .

Il utilisait deux formes d' augmentation des données , toutes deux calculées à la volée sur le processeur, donc « sans calcul » :

  • Extraction de patchs aléatoires 224 × 224 (et de leurs réflexions horizontales) à partir des images originales 256 × 256. Cela augmente la taille de l'ensemble d'entraînement de 2048 fois.
  • Décaler aléatoirement la valeur RVB de chaque image le long des trois directions principales des valeurs RVB de ses pixels.

Il a utilisé une normalisation de réponse locale et une régularisation d'abandon avec une probabilité d'abandon de 0,5.

Tous les poids ont été initialisés sous forme de gaussiennes avec une moyenne de 0 et un écart type de 0,01. Les biais dans les couches convolutionnelles 2, 4, 5 et toutes les couches entièrement connectées ont été initialisés à la constante 1 pour éviter le problème de mort de ReLU .

Histoire

Travaux antérieurs

Comparaison des couches de convolution, de pooling et denses de LeNet
et AlexNet (la taille de l'image AlexNet devrait être de 227 × 227 × 3, au lieu de 224 × 224 × 3, donc le calcul sera correct. Le document original indiquait des nombres différents, mais Andrej Karpathy, l'ancien responsable de la vision par ordinateur chez Tesla, a déclaré qu'il devrait être de 227 × 227 × 3 (il a dit qu'Alex n'avait pas décrit pourquoi il avait mis 224 × 224 × 3). La convolution suivante devrait être de 11 × 11 avec une foulée de 4 : 55 × 55 × 96 (au lieu de 54 × 54 × 96). Elle serait calculée, par exemple, comme : [(largeur d'entrée 227 - largeur du noyau 11) / foulée 4] + 1 = [(227 - 11) / 4] + 1 = 55. Étant donné que la sortie du noyau a la même longueur que la largeur, sa surface est 55×55.)

AlexNet est un réseau neuronal convolutionnel. En 1980, Kunihiko Fukushima a proposé un premier CNN appelé neocognitron . Il a été formé par un algorithme d'apprentissage non supervisé . Le LeNet-5 ( Yann LeCun et al., 1989) a été formé par un apprentissage supervisé avec un algorithme de rétropropagation , avec une architecture qui est essentiellement la même qu'AlexNet à petite échelle. (J. Weng, 1993) a ajouté le max-pooling .

Au cours des années 2000, à mesure que le matériel GPU s'améliorait, certains chercheurs les ont adaptés à l'informatique à usage général , y compris la formation de réseaux neuronaux. (K. Chellapilla et al., 2006) ont formé un CNN sur GPU qui était 4 fois plus rapide qu'une implémentation CPU équivalente. 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 concours d'images et a obtenu le SOTA pour plusieurs bases de données d'images . Selon l'article d'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

Au cours de la période 1990-2010, les réseaux neuronaux n'étaient pas meilleurs que d'autres méthodes d'apprentissage automatique comme la régression à noyau , les machines à vecteurs de support , AdaBoost , l'estimation structurée, entre autres. Pour la vision par ordinateur en particulier, de nombreux progrès sont venus de l'ingénierie manuelle des caractéristiques , telles que les caractéristiques SIFT , les caractéristiques SURF , les caractéristiques HoG , les sacs de mots visuels , etc. Il s'agissait d'une position minoritaire en vision par ordinateur selon laquelle les caractéristiques peuvent être apprises directement à partir des données, une position qui est devenue dominante après AlexNet.

En 2011, Geoffrey Hinton a commencé à contacter ses collègues pour leur demander « Que dois-je faire pour vous convaincre que les réseaux neuronaux sont l'avenir ? », et Jitendra Malik , un sceptique des réseaux neuronaux, lui a recommandé le défi PASCAL Visual Object Classes. Hinton a déclaré que son ensemble de données était trop petit, alors Malik lui a recommandé le défi ImageNet.

Bien qu'AlexNet et LeNet partagent essentiellement la même conception et le même algorithme, AlexNet est beaucoup plus grand que LeNet et a été formé sur un ensemble de données beaucoup plus important sur un matériel beaucoup plus rapide. Au cours de la période de 20 ans, les données et le calcul sont devenus accessibles à moindre coût.

Travaux ultérieurs

AlexNet est très influent, ce qui a donné lieu à de nombreux travaux ultérieurs sur l'utilisation des CNN pour la vision par ordinateur et sur l'utilisation des GPU pour accélérer l'apprentissage en profondeur. À la mi-2024, l'article d'AlexNet avait été cité plus de 157 000 fois selon Google Scholar.

Au moment de la publication, il n'existait aucun cadre disponible pour la formation et l'inférence des réseaux neuronaux basés sur GPU. La base de code d'AlexNet a été publiée sous une licence BSD et a été couramment utilisée dans la recherche sur les réseaux neuronaux pendant plusieurs années.

Dans une direction, des travaux ultérieurs visaient à former des CNN de plus en plus profonds qui atteignent des performances de plus en plus élevées sur ImageNet. Dans cette direction de recherche se trouvent GoogLeNet (2014), VGGNet (2014), Highway network (2015) et ResNet (2015). Une autre direction visait à reproduire les performances d'AlexNet à moindre coût. Dans cette direction de recherche se trouvent SqueezeNet (2016), MobileNet (2017), EfficientNet (2019).

Intelligence artificielle
Original text
Rate this translation
Your feedback will be used to help improve Google Translate