Articles

Innovations du modèle de réseau neuronal convolutionnel pour la Classification des images

Tweet Partager Partager

dernière mise à jour le 5 juillet 2019

une Introduction douce aux Innovations des réseaux neuronaux convolutionnels LeNet, AlexNet, VGG, Inception et ResNet.

Les réseaux de neurones convolutionnels sont composés de deux éléments très simples, à savoir les couches convolutionnelles et les couches de mise en commun.

bien que simple, il existe des moyens quasi infinis d’organiser ces couches pour un problème de vision par ordinateur donné.,

heureusement, il existe à la fois des modèles communs pour la configuration de ces couches et des innovations architecturales que vous pouvez utiliser afin de développer des réseaux de neurones convolutionnels très profonds. L’étude de ces décisions de conception architecturale développées pour des tâches de classification d’image de pointe peut fournir à la fois une justification et une intuition sur la façon d’utiliser ces conceptions lors de la conception de vos propres modèles de réseaux neuronaux convolutionnels profonds.

dans ce tutoriel, vous découvrirez les étapes clés de l’architecture pour l’utilisation des réseaux de neurones convolutifs pour les problèmes de classification d’image difficiles.,

Après avoir terminé ce tutoriel, vous saurez:

  • comment modéliser le nombre de filtres et la taille des filtres lors de la mise en œuvre de réseaux de neurones convolutifs.
  • Comment organiser des couches convolutionnelles et de mise en commun dans un motif uniforme pour développer des modèles performants.
  • comment utiliser le module inception et le module résiduel pour développer des réseaux convolutionnels beaucoup plus profonds.

lancez votre projet avec mon nouveau livre Deep Learning for Computer Vision, y compris des tutoriels étape par étape et les fichiers de code source Python pour tous les exemples.

nous allons commencer.,

  • mise à jour avril/2019: description corrigée des tailles de filtre pour LeNet (merci Huang).

aperçu du tutoriel

ce tutoriel est divisé en six parties:

  1. conception architecturale pour CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Inception et GoogLeNet
  6. réseau résiduel ou ResNet

conception architecturale pour CNNs

Les éléments d’un réseau de neurones convolutifs, tels que les couches convolutives et de mise en commun, sont relativement simples à comprendre.,

la partie difficile de l’utilisation de réseaux de neurones convolutifs dans la pratique est de savoir comment concevoir des architectures de modèles qui utilisent au mieux ces éléments simples.

Une approche utile pour apprendre à concevoir des architectures de réseaux neuronaux convolutionnels efficaces consiste à étudier des applications réussies. Ceci est particulièrement simple à faire en raison de l’étude intense et de l’application des CNN de 2012 à 2016 pour le défi de reconnaissance visuelle à grande échelle ImageNet, ou Ilsvrc., Ce défi a entraîné à la fois l’avancement rapide de l’état de l’art pour les tâches de vision par ordinateur très difficiles et le développement d’innovations générales dans l’architecture des modèles de réseaux neuronaux convolutionnels.

Nous commencerons par le LeNet-5 qui est souvent décrit comme la première application réussie et importante des CNN avant L’ILSVRC, puis examinerons quatre innovations architecturales gagnantes différentes pour le réseau de neurones convolutifs développé pour L’Ilsvrc, à savoir AlexNet, VGG, Inception et ResNet.,

en comprenant ces modèles milestone et leur architecture ou leurs innovations architecturales de haut niveau, vous développerez à la fois une appréciation de l’utilisation de ces éléments architecturaux dans les applications modernes de CNN en vision par ordinateur, et serez capable d’identifier et de choisir des éléments d’architecture qui peuvent être utiles dans la conception de vos propres modèles.

vous voulez des résultats avec L’apprentissage en profondeur pour la vision par ordinateur?

suivez mon cours intensif de messagerie gratuit de 7 jours maintenant (avec un exemple de code).,

Cliquez pour vous inscrire et obtenez également une version Ebook PDF gratuite du cours.

Téléchargez votre Mini-cours gratuit

LeNet-5

peut-être la première application largement connue et réussie des réseaux de neurones convolutionnels a été LeNet-5, décrit par Yann LeCun, et al. dans leur article de 1998 intitulé « Gradient-Based Learning Applied to Document Recognition » (obtenir le PDF).

le système a été développé pour une utilisation dans un problème de reconnaissance de caractères manuscrits et démontré sur L’ensemble de données standard MNIST, atteignant environ 99.,Précision de classification de 2% (ou un taux d’erreur de 0,8%). Le réseau a ensuite été décrit comme la technique centrale dans un système plus large appelé réseaux de transformateurs graphiques.

c’est un long article, et la meilleure partie sur laquelle se concentrer est peut-être la Section II. B. qui décrit L’architecture LeNet-5. Dans la section, l’article décrit le réseau comme ayant sept couches avec des images en niveaux de gris d’entrée ayant la forme 32×32, la taille des images dans L’ensemble de données MNIST.

le modèle propose un motif d’une couche convolutive suivie d’une couche de mise en commun moyenne, appelée couche de sous-échantillonnage., Ce modèle est répété deux fois et demie avant que les cartes d’entités de sortie ne soient aplaties et transmises à un certain nombre de couches entièrement connectées pour l’interprétation et une prédiction finale. Une image de l’architecture du réseau est fournie dans le document et reproduite ci-dessous.

Architecture du réseau neuronal convolutionnel LeNet-5 pour la reconnaissance de caractères manuscrits (tiré de l’article de 1998).,

le modèle de blocs de couches convolutionnelles et de couches de mise en commun groupées et répétées reste un modèle commun dans la conception et l’utilisation de réseaux de neurones convolutionnels aujourd’hui, plus de vingt ans plus tard.

fait intéressant, l’architecture utilise un petit nombre de filtres comme premier calque caché, en particulier six filtres de taille 5×5 pixels., Après la mise en commun (appelée couche de sous-échantillonnage), une autre couche convolutive a beaucoup plus de filtres, encore une fois avec une taille plus petite mais plus petite que la couche convolutive précédente, en particulier 16 filtres Avec une taille de 5×5 pixels, à nouveau suivi de la mise en commun. Dans la répétition de ces deux blocs de convolution et de couches de mise en commun, la tendance est à une augmentation du nombre de filtres.

par rapport aux applications modernes, le nombre de filtres est également faible, mais la tendance à augmenter le nombre de filtres Avec la profondeur du réseau reste également un modèle commun dans l’utilisation moderne de la technique.,

l’aplatissement des cartes d’entités et l’interprétation et la classification des entités extraites par des couches entièrement connectées restent également un modèle courant aujourd’hui. Dans la terminologie moderne, la dernière section de l’architecture est souvent appelée Classificateur, tandis que les couches convolutives et de mise en commun plus tôt dans le modèle sont appelées extracteur de fonctionnalités.

Nous pouvons résumer les aspects clés de l’architecture pertinents dans les modèles modernes comme suit:

  • images D’entrée de taille fixe.
  • regroupez les couches convolutives et de regroupement en blocs.,
  • répétition de blocs de regroupement convolutif dans l’architecture.
  • Augmentation du nombre de filtres avec la profondeur du réseau.
  • extraction D’entités distinctes et parties du Classificateur de l’architecture.

AlexNet

Le travail qui pourrait peut-être être crédité d’avoir suscité un regain d’intérêt pour les réseaux de neurones et le début de la domination de l’apprentissage profond dans de nombreuses applications de vision par ordinateur a été l’article 2012 D’Alex Krizhevsky, et al. intitulé  » classification ImageNet avec des réseaux de neurones convolutionnels profonds., »

le document décrit un modèle appelé plus tard « AlexNet” conçu pour répondre au défi de reconnaissance visuelle à grande échelle ImageNet ou au concours ILSVRC-2010 pour classer les photographies d’objets dans l’une des 1 000 catégories différentes.

l’ILSVRC était un concours organisé de 2011 à 2016, conçu pour stimuler l’innovation dans le domaine de la vision par ordinateur. Avant le développement D’AlexNet, la tâche était considérée comme très difficile et bien au-delà des capacités des méthodes modernes de vision par ordinateur., AlexNet a démontré avec succès la capacité du modèle de réseau neuronal convolutif dans le domaine et a allumé un feu qui a entraîné de nombreuses améliorations et innovations, dont beaucoup ont été démontrées sur la même tâche ILSVRC au cours des années suivantes. Plus largement, le document a montré qu’il est possible de développer des modèles de bout en bout profonds et efficaces pour un problème difficile sans utiliser des techniques de préformation non supervisées qui étaient populaires à l’époque.

Une série de méthodes nouvelles ou réussies, mais peu adoptées à L’époque, a joué un rôle Important dans la conception D’AlexNet., Maintenant, ils sont devenus des exigences lors de l’utilisation de CNN pour la classification des images.

AlexNet a utilisé la fonction d’activation linéaire rectifiée, ou ReLU, comme non linéaire après chaque couche convolutive, au lieu de fonctions en forme de S telles que la logistique ou tanh qui étaient courantes jusque-là. En outre, une fonction d’activation softmax a été utilisée dans la couche de sortie, maintenant une base pour la classification multi-classes avec les réseaux de neurones.,

le pooling moyen utilisé dans LeNet-5 a été remplacé par une méthode de pooling max, bien que dans ce cas, le pooling superposé ait surpassé le pooling non superposé couramment utilisé aujourd’hui (par exemple, la foulée de l’opération de pooling est de la même taille que l’opération de pooling, par exemple 2 par 2 pixels). Pour remédier au surajustement, la nouvelle méthode d’abandon proposée a été utilisée entre les couches entièrement connectées de la partie classificateur du modèle afin d’améliorer l’erreur de généralisation.

L’architecture D’AlexNet est profonde et s’étend sur certains des modèles établis avec LeNet-5., L’image ci-dessous, tirée de l’article, résume l’architecture du modèle, dans ce cas, divisé en deux pipelines pour former sur le matériel GPU de l’époque.

Architecture du réseau neuronal convolutionnel AlexNet pour la Classification des photos D’objets (tiré de l’article de 2012).

le modèle a cinq couches convolutives dans la partie extraction d’entités du modèle et trois couches entièrement connectées dans la partie classificateur du modèle.

Les images D’entrée ont été fixées à la taille 224×224 avec trois canaux de couleur., En ce qui concerne le nombre de filtres utilisés dans chaque couche convolutive, le motif d’augmentation du nombre de filtres Avec la profondeur observée dans LeNet a été principalement respecté, dans ce cas, les tailles: 96, 256, 384, 384 et 256. De même, le modèle de diminution de la taille du filtre (noyau) avec la profondeur a été utilisé, en partant de la taille plus petite de 11×11 et en diminuant à 5×5, puis à 3×3 dans les couches plus profondes. L’utilisation de petits filtres tels que 5×5 3×3 est maintenant la norme.,

un modèle d’une couche convolutive suivie d’une couche de mise en commun a été utilisé au début et à la fin de la partie détection d’entités du modèle. Fait intéressant, un motif de couche convolutive suivi immédiatement d’une deuxième couche convolutive a été utilisé. Ce modèle aussi est devenu une norme moderne.

le modèle a été formé avec l’augmentation des données, augmentant artificiellement la taille de l’ensemble de données d’entraînement et donnant au modèle plus d’opportunité d’apprendre les mêmes caractéristiques dans différentes orientations.,

Nous pouvons résumer les aspects clés de l’architecture pertinents dans les modèles modernes comme suit:

  • utilisation de la fonction d’activation ReLU après les couches convolutionnelles et softmax pour la couche de sortie.
  • utilisation de la mise en commun maximale au lieu de la mise en commun moyenne.
  • utilisation de la régularisation du décrochage entre les couches entièrement connectées.
  • modèle de couche convolutive alimenté directement à une autre couche convolutive.
  • utilisation de L’Augmentation des données.,

VGG

le développement de réseaux de neurones convolutionnels profonds pour les tâches de vision par ordinateur semblait être un peu un art sombre après AlexNet.

L’article de 2014 intitulé « Very Deep Convolutional Networks for Large-Scale Image Recognition” de Karen Simonyan et Andrew Zisserman a été un travail important visant à normaliser la conception d’architecture pour les réseaux convolutionnels profonds et à développer des modèles beaucoup plus profonds et plus performants.

leur architecture est généralement appelée VGG d’après le nom de leur laboratoire, le Visual Geometry Group à Oxford., Leur modèle a été développé et démontré sur le mêmeconcurrence ilsvrc, dans ce cas, la version ILSVRC-2014 du défi.

La première différence importante qui est devenu de facto le standard est l’utilisation d’un grand nombre de petits filtres. Plus précisément, les filtres Avec la taille 3×3 et 1×1 avec la foulée d’un, différent des filtres de grande taille dans LeNet-5 et les filtres plus petits mais encore relativement grands et grande foulée de quatre dans AlexNet.,

Les couches de pooling Max sont utilisées après la plupart des couches convolutionnelles, mais pas toutes, en apprenant de L’exemple D’AlexNet, mais toutes les couches de pooling sont effectuées avec la taille 2×2 et la même foulée, ce qui est également devenu un standard de facto. Plus précisément, les réseaux VGG utilisent des exemples de deux, trois et même quatre couches convolutives empilées avant l’utilisation d’une couche de mise en commun maximale. La justification était que les couches convolutives empilées avec des filtres plus petits approchent l’effet d’une couche convolutive avec un filtre de plus grande taille, par exemple., trois couches convolutives empilées avec des filtres 3×3 se rapproche d’une couche convolutive avec un filtre 7×7.

une Autre différence importante est le très grand nombre de filtres utilisés. Le nombre de filtres augmente avec la profondeur du modèle, bien que commence à un nombre relativement élevé de 64 et augmente à travers 128, 256 et 512 filtres à la fin de la partie d’extraction de caractéristiques du modèle.

un certain nombre de variantes de l’architecture ont été développées et évaluées, bien que deux soient mentionnées le plus souvent en raison de leurs performances et de leur profondeur., Ils sont nommés pour le nombre de couches: ce sont le VGG-16 et le VGG-19 pour 16 et 19 couches apprises respectivement.

ci-dessous est un tableau tiré de l’article; notez les deux colonnes à l’extrême droite indiquant la configuration (nombre de filtres) utilisée dans les versions VGG-16 et VGG-19 de l’architecture.

Architecture du réseau de neurones convolutifs VGG pour la Classification des photos D’objets (tirée de l’article de 2014).,

Les décisions de conception des modèles VGG sont devenues le point de départ d’une utilisation simple et directe des réseaux de neurones convolutifs en général.

enfin, les travaux de VGG ont été parmi les premiers à publier les précieux poids du modèle sous une licence permissive qui a conduit à une tendance parmi les chercheurs en vision par ordinateur en apprentissage profond. Ceci, à son tour, a conduit à l’utilisation intensive de modèles pré-formés comme VGG dans l’apprentissage par transfert comme point de départ de nouvelles tâches de vision par ordinateur.,

Nous pouvons résumer les aspects clés de l’architecture pertinents dans les modèles modernes comme suit:

  • utilisation de très petits filtres convolutionnels, par exemple 3×3 et 1×1 avec une foulée d’un.
  • utilisation de Max pooling avec une taille de 2×2 et une foulée de mêmes dimensions.
  • l’importance d’empiler les couches convolutives ensemble avant d’utiliser une couche de mise en commun pour définir un bloc.
  • répétition dramatique du motif de bloc de regroupement convolutionnel.
  • développement de modèles très profonds (16 et 19 couches).,

Inception et GoogLeNet

des innovations importantes dans l’utilisation des couches convolutives ont été proposées dans L’article de 2015 par Christian Szegedy, et al. intitulé  » aller plus loin avec circonvolutions. »

dans l’article, Les auteurs proposent une architecture appelée inception (ou inception v1 pour la différencier des extensions) et un modèle spécifique appelé GoogLeNet qui a obtenu les meilleurs résultats dans la version 2014 du défi ILSVRC.

l’innovation clé sur les modèles inception s’appelle le module inception., Il s’agit d’un bloc de couches convolutives parallèles avec des filtres de tailles différentes (par exemple 1×1, 3×3, 5×5) et une couche de mise en commun 3×3 max, dont les résultats sont ensuite concaténés. Vous trouverez ci-dessous un exemple du module de création tiré du document.

Exemple de la Naïve Création de Module (prises à partir de 2015, papier).

un problème avec une implémentation naïve du modèle inception est que le nombre de filtres (profondeur ou canaux) commence à s’accumuler rapidement, en particulier lorsque les modules inception sont empilés.,

effectuer des circonvolutions avec des tailles de filtre plus grandes (par exemple 3 et 5) peut être coûteux en calcul sur un grand nombre de filtres. Pour résoudre ce problème, des couches convolutives 1×1 sont utilisées pour réduire le nombre de filtres dans le modèle de création. Plus précisément avant les couches convolutives 3×3 et 5×5 et après la couche de mise en commun. L’image ci-dessous tirée de l’article montre ce changement au module de création.

exemple du Module Inception avec réduction de dimensionnalité (tiré de l’article de 2015).,

Une deuxième décision de conception importante dans le modèle initial a été de connecter la sortie à différents points du modèle. Cela a été réalisé en créant de petits réseaux de sortie hors tournage à partir du réseau principal qui ont été formés pour faire une prédiction. L’intention était de fournir un signal d’erreur supplémentaire de la tâche de classification à différents points du modèle profond afin de résoudre le problème des gradients de disparition. Ces petits réseaux de sortie ont ensuite été supprimés après la formation.,

ci-dessous montre une version tournée (de gauche à droite pour input-to-output) de l’architecture du modèle GoogLeNet tirée de l’article en utilisant les modules de création de l’entrée à gauche à la classification de sortie à droite et les deux réseaux de sortie supplémentaires qui n’ont été utilisés que pendant la formation.

Architecture du modèle GoogLeNet utilisé lors de la formation pour la Classification des photos D’objets (tirée de l’article de 2015).,

Il est intéressant de noter que la mise en commun maximale superposée a été utilisée et qu’une grande opération de mise en commun moyenne a été utilisée à la fin de la partie extraction de caractéristiques du modèle avant la partie classificateur du modèle.

Nous pouvons résumer les aspects clés de l’architecture pertinents dans les modèles modernes comme suit:

  • développement et répétition du module Inception.
  • utilisation intensive de la convolution 1×1 pour réduire le nombre de canaux.
  • utilisation du retour d’erreur à plusieurs points du réseau.
  • développement de modèles très profonds (22 couches).,
  • utilisation de la mise en commun moyenne globale pour la sortie du modèle.

réseau résiduel ou ResNet

Une dernière innovation importante dans les réseaux neuronaux convolutifs que nous examinerons a été proposée par Kaiming He, et al. dans leur 2016 document intitulé « Deep Résiduelle d’Apprentissage pour la Reconnaissance d’Images. »

dans l’article, Les auteurs ont proposé un modèle très profond appelé Réseau résiduel, ou ResNet en abrégé, dont un exemple a réussi sur la version 2015 du défi ILSVRC.

leur modèle avait un impressionnant 152 couches., La clé de la conception du modèle est l’idée de blocs résiduels qui utilisent des connexions de raccourci. Il s’agit simplement de connexions dans l’architecture réseau où l’entrée est conservée telle quelle (non pondérée) et transmise à une couche plus profonde, par exemple en sautant la couche suivante.

un bloc résiduel est un modèle de deux couches convolutives avec activation ReLU où la sortie du bloc est combinée avec l’entrée du bloc, par exemple la connexion de raccourci. Une version projetée de l’entrée utilisée via 1×1 si la forme de l’entrée du bloc est différente de la sortie du bloc, dite circonvolutions 1×1., Celles-ci sont appelées connexions de raccourci projetées, par rapport aux connexions de raccourci non pondérées ou d’identité.

Les auteurs commencent par ce qu’ils appellent un réseau simple, qui est un réseau neuronal convolutionnel profond inspiré de VGG avec de petits filtres (3×3), des couches convolutionnelles groupées suivies sans mise en commun entre les deux, et un regroupement moyen à la fin de la partie détecteur de fonctionnalités du modèle avant la couche de sortie entièrement connectée avec,

le réseau simple est modifié pour devenir un réseau résiduel en ajoutant des connexions de raccourci afin de définir des blocs résiduels. Typiquement, la forme de l’entrée pour la connexion de raccourci est la même taille que la sortie du bloc résiduel.

l’image ci-dessous a été tirée de l’article et de gauche à droite compare l’architecture d’un modèle VGG, d’un modèle convolutif simple et d’une version du convolutif simple avec des modules résiduels, appelés réseau résiduel.,

Architecture du réseau résiduel pour la classification des photos D’objets (tirée de l’article de 2016).

Nous pouvons résumer les principaux aspects de l’architecture appropriée dans les modèles modernes comme suit:

  • l’Utilisation du raccourci connexions.
  • développement et répétition des blocs résiduels.
  • développement de modèles très profonds (152 couches).

Lecture

Cette section fournit plus de ressources sur le sujet si vous cherchez à aller plus loin.,

Documents

  • Gradient de la fonction d’apprentissage appliquées à la reconnaissance du document (PDF) de 1998.
  • classification ImageNet avec réseaux neuronaux convolutionnels profonds, 2012.
  • réseaux convolutionnels très profonds pour la reconnaissance D’images à grande échelle, 2014.
  • aller plus loin avec circonvolutions, 2015.
  • Profondeur Résiduelle d’Apprentissage pour la Reconnaissance d’Images, 2016

API

  • Keras Applications API

Articles

  • Le 9 Apprentissage en Profondeur des Documents que Vous Devez Savoir Sur
  • Un Guide Simple pour les Versions de la Création du Réseau, 2018.,
  • architectures CNN: LeNet, AlexNet, VGG, GoogLeNet, ResNet et plus encore., 2017.

résumé

dans ce tutoriel, vous avez découvert les étapes clés de l’architecture pour l’utilisation des réseaux de neurones convolutifs pour contester la classification des images.

plus précisément, vous avez appris:

  • comment modéliser le nombre de filtres et la taille des filtres lors de la mise en œuvre de réseaux de neurones convolutifs.
  • Comment organiser des couches convolutionnelles et de mise en commun dans un motif uniforme pour développer des modèles performants.,
  • comment utiliser le module inception et le module résiduel pour développer des réseaux convolutionnels beaucoup plus profonds.

avez-vous des questions?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Développer l’Apprentissage en Profondeur des Modèles pour la Vision aujourd’Hui!

développez vos propres modèles de Vision en quelques minutes

…,avec seulement quelques lignes de code python

Découvrez comment dans mon nouvel Ebook:
Deep Learning for Computer Vision

il fournit des tutoriels d’auto-apprentissage sur des sujets tels que:
classification, détection d’objets (Yolo et rcnn), reconnaissance faciale (vggface et facenet), préparation de données et bien plus encore…

apportez enfin L’apprentissage profond à vos projets de Vision

passez les universitaires. Seulement Les Résultats.

Voir Ce qui est à l’Intérieur de

Tweet partager Partager