• Aucun résultat trouvé

Algorithm 2: Calcul de la normalisation par batch décris par Ioffe et Sze-

2.3.3 Des réseaux de plus en plus grands et profonds

Nous avons vu comment construire un réseau de neurones ainsi que les différents élé-ments permettant de l’entraîner efficacement. Ces éléélé-ments ont permis de construire des architectures de plus en plus grandes et de plus en plus profondes (possédant plus de couches d’opérations). Dans cette partie, nous ferons un historique chronolo-gique des réseaux de neurones les plus populaires aujourd’hui en expliquant leurs évolutions architecturales.

LeNet5

Fig. 2.7.: Schéma du réseau LeNet5, conçu par LeCun et al. [LeC+98] pour la reconnais-sance de chiffre manuscrit.

Pour notre étude, nous partirons du réseau de neurones convolutifs créé par LeCun en 1990 [LeC+98], ce réseau étant le plus connu de la communauté et parfois considéré (à tort) comme le premier réseau de neurones. Ce réseau, nommée LeNet5 et dont le schéma de l’architecture est donné dans la figure 2.7, est conçu pour la reconnaissance de chiffres manuscrits. Ce dernier prend en entrée des images en niveau de gris (un seul canal de couleur) de taille 32 × 32 et produit un vecteur de sortie de taille 10 permettant de classer les images d’entrée dans une des 10 catégories possibles (les chiffres de 0 à 9).

Le réseau est composé de deux couches de convolution de masque de taille 5 × 5 et de sous échantillonnages de taille 2 × 2. La partie convolutive est suivie d’une partie de type réseau de perceptrons multi-couches composée de deux couches entièrement connectées ainsi que d’une couche de sortie dont les connexions suivent une probabilité gaussienne.

La taille extrêmement réduite du réseau est due à la fois aux limitations matérielles de l’époque, mais aussi aux faibles connaissances de l’époque qui rendaient difficile l’apprentissage d’un réseau trop complexe (avec trop de poids). C’est d’ailleurs ce dernier argument qui justifie l’utilisation d’une couche avec des connexions

gaussiennes puisque cette dernière permet de réduire le nombre de paramètres du réseau. AlexNet SuperV ision [Kri+12]ISI[HK12] Oxford-VGG [Sán+12 ; AZ12] XRCE/INRIA [Per+12] U.Amsterdam [SP11 ; Sch+12] LEAR-XRCE [Men+12] 0 10 20 30 40 50 60 15.4 26.2 27 27.1 29.6 34.5 33.5 53.6 50 Erreurs

Résultats de la compétition ILSVRC 2012

Classification Localisation

Fig. 2.8.: Résultats de la compétition ILSVRC 2012 [Rus+15] obtenus par les cinq meilleures méthodes.

Après la création du réseau LeNet5 en 1990, il aura fallu attendre 2012 pour que les réseaux de neurones convolutifs deviennent populaires. Cette popularité a été atteinte grâce au réseau de neurones convolutifs appelé AlexNet, développé par Alex Krizhevsky et al. [Kri+12]. Ce réseau leur a permis de remporter la compétition ILSVRC 2012 [Rus+15] (vue dans la partie 2.3.1) avec une précision de 84.6% (soit une erreur de 15, 4%) quand les concurrents les plus proches obtenaient des

précisions aux alentours des 73.8% (voir tableau 2.8).

L’architecture présentée par Krizhevsky et al. suit le même schéma que LeNet5 mais est nettement plus grande (avec plus de couches) et utilise des avancées plus récentes telles que la fonction d’activation ReLU (vue dans la partie 2.1.2) et l’opérateur de dropout (vue dans la partie 2.2.3).

La figure 2.9 montre le schéma du réseau AlexNet. Ce dernier est composé de cinq couches de convolution toutes suivies d’opérateurs de sous-échantillonnages de type maximum-pooling et de fonctions d’activation de type ReLU. La partie convolutive du réseau est suivie de deux couches entièrement connectées (perceptron multi-couches). Afin de limiter le sur-apprentissage, ils utilisent la technique de dropout

Fig. 2.9.: Schéma du réseau AlexNet. Figure extraite du papier d’origine [Kri+12].

dans les couches entièrement connectées avec une probabilité d’annulation de 50% (voir partie 2.2.3).

Une particularité intéressante due à la limitation mémoire des cartes graphiques de l’époque (GPU) est que le réseau est composé de deux chemins ne partageant des informations que lors de la deuxième couche de convolution et dans la partie entièrement connectée (voir figure 2.9). Cela permet d’entraîner le réseau sur deux GPU en parallèle tout en limitant les transferts d’informations entre eux, optimisant ainsi les temps de calculs.

On peut expliquer le bon fonctionnement de ce réseau (et donc de son succès) grâce à trois facteurs :

— L’utilisation d’opérateurs efficaces telles que les fonctions ReLU et l’opérateur de dropout.

— Les compétences techniques d’Alex Krizhevsky qui ont permis d’implémenter le réseau sur carte graphique, permettant d’accélérer le temps d’entraînement du réseau et donc de l’entraîner plus longtemps et plus efficacement.

— Le nombre important de données utilisées pour entraîner le réseau.

Ces trois facteurs réunis ont permis une avancée importante en reconnaissance d’images et ont contribué à la popularité actuelle des réseaux de neurones convolu-tifs.

VGG 16

En 2013, l’équipe Visual Geometry Group (VGG) de l’université d’Oxford a étudié l’architecture d’AlexNet afin de l’optimiser, proposant ainsi plusieurs modèles dont les architectures varient quant au nombre de couches utilisées. Parmi les modèles qu’ils ont étudiés, ils ont extrait une architecture appelée VGG-16 composée de 16

Fig. 2.10.:Schémas du réseau VGG16. Image tirée de la présentation de Matthieu Cord.

couches, avec laquelle ils ont gagné la compétition ILSVRC 2014 pour la tâche de localisation d’objets avec une précision de 92.7%.

Très proche du réseau AlexNet, leur architecture a la particularité d’utiliser plusieurs couches de convolutions successives sans opérateur de sous-échantillonnage (voir figure 2.10). De plus, la taille des masques de convolution est réduite à 3 × 3. De cette manière, le réseau possède moins de paramètres d’apprentissage mais plus de fonctions de non linéarité (puisque plus de couches de convolution). Cette particularité rend la fonction de décision du réseau plus discriminative tout en rendant l’apprentissage du réseau plus facile.

GoogleNet

Fig. 2.11.:Schéma du complet réseau GoogleNet. La figure est extraite du papier [Sze+15a] Concaténation des cartes Sorties couches précédentes 1x1 convolutions 1x1 convolutions 3x3 convolutions convolutions1x1 1x1 convolutions convolutions5x5 3x3 maximum pooling

Fig. 2.12.:Module d’inception du réseau GoogleNet [Sze+15a]. Le module est composé de quatre chemins en parallèle, utilisant des convolutions avec des masques de tailles différentes.

GoogleNet est un réseau introduit par Szegedy et al. [Sze+15a], qui a gagné la compétition ILSVRC-2014 pour la tâche de classification avec une précision du TOP-5 de 93.3%. Leur architecture introduit un type de bloc appelé "inception module" (voir figure 2.12). Ces modules sont parfois considérés comme un réseau dans un réseau ("Network in Network" NiN) [Lin+13]. Ils sont constitués de quatre chemins en parallèle : un chemin avec une opération de sous-échantillonnage, un chemin avec une convolution large (avec des filtres 5 × 5), un chemin avec une convolution plus petite (avec des filtres 3 × 3) et un chemin avec un opérateur d’identité. Tous les chemins possèdent aussi une couche convolution de masque de taille 1×1 permettant de réduire le nombre de cartes de caractéristiques. Les cartes de caractéristiques obtenues par chacun des chemins sont ensuite concaténées et utilisées en entrée du module suivant. Le réseau étant particulièrement profond, des fonctions de coût intermédiaires sont ajoutées au milieu du réseau, permettant au gradient de remonter plus facilement (voir schéma du réseau 2.11)