dans cet article, je vais discuter des architectures couramment utilisées pour les réseaux convolutionnels. Comme vous le verrez, presque toutes les architectures CNN suivent les mêmes principes de conception généraux consistant à appliquer successivement des couches convolutives à l’entrée, en sous-échantillonnant périodiquement les dimensions spatiales tout en augmentant le nombre de cartes d’entités.,
alors que les architectures réseau classiques étaient simplement constituées de couches convolutives empilées, les architectures modernes explorent de nouvelles façons innovantes de construire des couches convolutives d’une manière qui permet un apprentissage plus efficace. Presque toutes ces architectures sont basées sur une unité reproductible qui est utilisée dans tout le réseau.
ces architectures servent de lignes directrices générales de conception que les praticiens de l’apprentissage automatique adapteront ensuite pour résoudre diverses tâches de vision par ordinateur., Ces architectures servent d’extracteurs de fonctionnalités riches qui peuvent être utilisés pour la classification d’images, la détection d’objets, la segmentation d’images et de nombreuses autres tâches plus avancées.
architectures réseau classiques (incluses à des fins historiques)
- LeNet-5
- AlexNet
- VGG 16
architectures réseau modernes
- Inception
- ResNet
- ResNeXt
- DenseNet
LeNet-5
le modèle lenet-5 de Yann LeCun a été développé en 1998 pour identifier les chiffres manuscrits pour la reconnaissance du code postal dans le service postal., Ce modèle pionnier a largement introduit le réseau de neurones convolutifs tel que nous le connaissons aujourd’hui.
Architecture
Les couches Convolutionnelles utilisent un sous-ensemble des canaux de la couche précédente pour chaque filtre pour réduire le calcul et forcer une rupture de symétrie dans le réseau. Les couches de sous-échantillonnage utilisent une forme de mise en commun moyenne.
Paramètres: 60 000
papier: apprentissage par Gradient appliqué à la reconnaissance de documents
AlexNet
AlexNet a été développé par Alex Krizhevsky et al. en 2012 pour participer au Concours ImageNet., L’architecture générale est assez similaire à LeNet-5, bien que ce modèle soit considérablement plus grand. Le succès de ce modèle (qui a pris la première place au Concours ImageNet 2012) a convaincu une grande partie de la communauté de la vision par ordinateur de se pencher sérieusement sur le deep learning pour les tâches de vision par ordinateur.
Architecture
Paramètres: 60 millions
papier: classification ImageNet avec des réseaux de neurones convolutionnels profonds
VGG-16
le réseau VGG, introduit en 2014, offre une variante plus profonde mais plus simple des structures convolutionnelles discutées ci-dessus., Au moment de son introduction, Ce modèle était considéré comme très profond.
Architecture
Paramètres: 138 millions
papier: réseaux convolutionnels très profonds pour la reconnaissance D’images à grande échelle
Inception (GoogLeNet)
En 2014, des chercheurs de Google ont présenté le réseau Inception qui a remporté la première place du concours ImageNet 2014 pour les défis de classification et de détection.
le modèle est composé d’une unité de base appelée « cellule de départ » dans laquelle nous effectuons une série de circonvolutions à différentes échelles et agrégeons ensuite les résultats., Afin d’économiser le calcul, des circonvolutions 1×1 sont utilisées pour réduire la profondeur du canal d’entrée. Pour chaque cellule, nous apprenons un ensemble de filtres 1×1, 3×3 et 5×5 qui peuvent apprendre à extraire des entités à différentes échelles à partir de l’entrée. Max pooling est également utilisé, mais avec un remplissage « identique » pour préserver les dimensions afin que la sortie puisse être correctement concaténée.
ces chercheurs ont publié un article de suivi qui a introduit des alternatives plus efficaces à la cellule initiale., Les circonvolutions avec de grands filtres spatiaux (tels que 5×5 ou 7×7) sont bénéfiques en termes d’expressivité et de capacité à extraire des entités à plus grande échelle, mais le calcul est disproportionnellement coûteux. Les chercheurs ont souligné qu’une convolution 5×5 peut être représentée à moindre coût par deux filtres 3×3 empilés.
alors que $5 \times 5 \times c$ filtre nécessite $25$ paramètres, deux $3 \times 3 \times c$ filtres nécessitent seulement $18$ paramètres. Afin de représenter le plus précisément un filtre 5×5, nous ne devrions pas utiliser d’activations non linéaires entre les deux couches 3×3., Cependant, il a été découvert que « l’activation linéaire était toujours inférieure à l’utilisation d’unités linéaires rectifiées à toutes les étapes de la factorisation. »
Il a également été montré que les circonvolutions 3×3 pouvaient être déconstruites en circonvolutions successives 3×1 et 1×3.
Généralisation de cette idée, nous pouvons plus efficace de calculer un $n \times n$ convolution en tant que $1 \times n$ convolution suivie par un $n \times 1$ de convolution.
Architecture
afin d’améliorer les performances globales du réseau, deux sorties auxiliaires sont ajoutées dans tout le réseau., Il a été découvert plus tard que la première sortie auxiliaire n’avait aucun effet perceptible sur la qualité finale du réseau. L’ajout de sorties auxiliaires a principalement profité aux performances finales du modèle, convergeant à une valeur légèrement meilleure que la même architecture de réseau sans branche auxiliaire. On pense que l’ajout de sorties auxiliaires a eu un effet régularisant sur le réseau.
Une version révisée et plus profonde du réseau Inception qui tire parti des cellules Inception plus efficaces est présentée ci-dessous.,
Paramètres: 5 millions (V1) et 23 millions (V3)
documents:
- aller plus loin avec les circonvolutions
- repenser l’Architecture initiale de la Vision par ordinateur
ResNet
Les réseaux résiduels profonds étaient une idée révolutionnaire qui a permis le développement de réseaux beaucoup plus profonds (des centaines de couches plutôt que des dizaines de couches).
C’est un principe généralement accepté que les réseaux plus profonds sont capables d’apprendre des fonctions plus complexes et des représentations de l’entrée qui devraient conduire à de meilleures performances., Cependant, de nombreux chercheurs ont observé que l’ajout de couches supplémentaires avait finalement un effet négatif sur les performances finales. Ce comportement n’était pas intuitivement attendu, comme expliqué par les auteurs ci-dessous.
considérons une architecture moins profonde et son homologue plus profond qui lui ajoute plus de couches. Il existe une solution par construction au modèle deeper: les couches ajoutées sont un mappage d’identité et les autres couches sont copiées à partir du modèle shallower appris., L’existence de cette solution construite indique qu’un modèle plus profond ne devrait pas produire d’erreur d’entraînement plus élevée que son homologue moins profond. Mais les expériences montrent que nos solveurs actuels sont incapables de trouver des solutions qui sont comparativement bonnes ou meilleures que la solution construite (ou incapables de le faire dans un délai réalisable).,
ce phénomène est désigné par les auteurs comme le problème de dégradation – faisant allusion au fait que bien que de meilleures techniques d’initialisation des paramètres et la normalisation par lots permettent aux réseaux plus profonds de converger, ils convergent souvent à un taux d’erreur plus élevé que leurs homologues moins profonds. Dans la limite, simplement empiler plus de couches dégrade les performances ultimes du modèle.,
Les auteurs proposent un remède à ce problème de dégradation en introduisant des blocs résiduels dans lesquels les couches intermédiaires d’un bloc apprennent une fonction résiduelle en référence à l’entrée du bloc. Vous pouvez considérer cette fonction résiduelle comme une étape de raffinement dans laquelle nous apprenons à ajuster la carte des entités d’entrée pour des fonctionnalités de meilleure qualité. Cela se compare à un réseau « simple » dans lequel chaque couche devrait apprendre de nouvelles cartes d’entités distinctes., Dans le cas où aucun raffinement n’est nécessaire, les couches intermédiaires peuvent apprendre à ajuster progressivement leurs poids vers zéro de sorte que le bloc résiduel représente une fonction d’identité.
Remarque: Il a été découvert plus tard qu’une légère modification de l’unité proposée d’origine offre de meilleures performances en permettant plus efficacement aux gradients de se propager à travers le réseau pendant l’entraînement.,
réseaux résiduels larges
bien que le document original de ResNet se soit concentré sur la création d’une architecture de réseau pour permettre des structures plus profondes en atténuant le problème de dégradation, d’autres chercheurs ont depuis souligné que l’augmentation de la largeur du réseau (profondeur du canal) peut être un moyen plus efficace d’étendre la capacité globale
Architecture
chaque bloc coloré de calques représente une série de circonvolutions de même dimension., Le mappage d’entités est périodiquement sous-échantillonné par convolution striée accompagnée d’une augmentation de la profondeur du canal pour préserver la complexité temporelle par couche. Les lignes pointillées désignent les connexions résiduelles dans lesquelles nous projetons l’entrée via une convolution 1×1 pour correspondre aux dimensions du nouveau bloc.
le diagramme ci-dessus visualise L’architecture ResNet 34., Pour le modèle ResNet 50, nous remplaçons simplement chaque bloc résiduel à deux couches par un bloc goulot d’étranglement à trois couches qui utilise des convolutions 1×1 pour réduire puis restaurer la profondeur du Canal, ce qui permet une charge de calcul réduite lors du calcul de la convolution 3×3.,
Paramètres: 25 millions (ResNet 50)
papiers:
- apprentissage résiduel profond pour la reconnaissance D’Image
- mappages D’identité dans les réseaux résiduels profonds
- réseaux résiduels larges
L’architecture ResNeXt est une extension du réseau résiduel profond qui remplace le bloc résiduel standard par un bloc qui exploite une stratégie « split-transform-merge » (ie. chemins ramifiés dans une cellule) utilisés dans les Modèles de création., Simplement, plutôt que d’effectuer des convolutions sur la carte complète des entités d’entrée, l’entrée du bloc est projetée dans une série de représentations dimensionnelles inférieures (canal) dont nous appliquons séparément quelques filtres convolutionnels avant de fusionner les résultats.
cette idée est assez similaire aux convolutions de groupe, qui était une idée proposée dans le document AlexNet comme un moyen de partager le calcul de convolution sur deux GPU. Plutôt que de créer des filtres Avec la profondeur de canal complète de l’entrée, l’entrée est divisée par canal en groupes avec chacun comme indiqué ci-dessous.,
Il a été découvert que l’utilisation de circonvolutions groupées conduisait à un degré de spécialisation entre les groupes où des groupes distincts se concentraient sur différentes caractéristiques de l’image d’entrée.
L’article ResNeXt fait référence au nombre de branches ou de groupes comme cardinalité de la cellule ResNeXt et effectue une série d’expériences pour comprendre les gains de performance relatifs entre l’augmentation de la cardinalité, de la profondeur et de la largeur du réseau. Les expériences montrent que l’augmentation de la cardinalité est plus efficace pour bénéficier des performances du modèle que l’augmentation de la largeur ou de la profondeur du réseau., Les expériences suggèrent également que » les connexions résiduelles sont utiles pour l’optimisation, alors que les transformations agrégées sont (utiles pour) des représentations plus fortes. »
Architecture
L’architecture ResNeXt imite simplement les modèles ResNet, remplaçant les blocs ResNet pour le bloc ResNeXt.
Paper: aggregated Residual Transformations for Deep Neural Networks
DenseNet
l’idée derrière les réseaux convolutionnels denses est simple: il peut être utile de référencer des cartes d’entités antérieures dans le réseau., Ainsi, la carte d’entités de chaque couche est concaténée à l’entrée de chaque couche successive dans un bloc dense. Cela permet aux couches ultérieures du réseau d’exploiter directement les fonctionnalités des couches précédentes, encourageant ainsi la réutilisation des fonctionnalités au sein du réseau. Les auteurs déclarent: « la concaténation de cartes d’entités apprises par différentes couches augmente la variation de l’entrée des couches suivantes et améliore l’efficacité. »
quand je suis tombé sur ce modèle pour la première fois, j’ai pensé qu’il aurait un nombre absurde de paramètres pour supporter les connexions denses entre les couches., Cependant, comme le réseau est capable d’utiliser directement n’importe quelle carte de fonctionnalités précédente, les auteurs ont constaté qu’ils pouvaient travailler avec de très petites profondeurs de canal de sortie (c’est-à-dire. 12 filtres par couche), réduisant considérablement le nombre total de paramètres nécessaires. Les auteurs se réfèrent au nombre de filtres utilisés dans chaque couche convolutive comme un « taux de croissance », $k$, puisque chaque couche successive aura k k more plus de canaux que la dernière (en raison de l’accumulation et de la concaténation de toutes les couches précédentes à l’entrée).,
comparés aux modèles ResNet, les DenseNets sont signalés pour obtenir de meilleures performances avec moins de complexité.
Architecture
pour la majorité des expériences de l’article, Les auteurs ont imité l’architecture générale du modèle ResNet, en échangeant simplement le bloc dense comme unité répétée.
Paramètres:
- 0,8 million de dollars (DenseNet-100, k=12)
- 15.,3 millions (DenseNet-250, k=24)
- 40 millions (densenet-190, k=40)
papier: réseaux convolutionnels densément connectés
vidéo: CVPR 2017 Prix du meilleur papier: réseaux convolutionnels densément connectés
Laisser un commentaire