Introduction à l'apprentissage profond - aperçu du modèle de réseau neuronal à convolution profonde (Deep Convolution Neural Network, DCNN)

Cet article résume principalement ce que j’ai appris auparavant. La dernière technologie est encore en recherche...

1. Introduction

L'apprentissage automatique est une méthode et un moyen de réaliser l'intelligence artificielle. Il se spécialise dans l'étude de la manière dont les ordinateurs peuvent simuler ou mettre en œuvre un comportement d'apprentissage humain pour acquérir de nouvelles connaissances et compétences, et réorganiser les structures de connaissances existantes pour améliorer continuellement leurs propres performances. En tant que domaine de recherche sur l'intelligence artificielle, la technologie de vision par ordinateur a progressé avec le développement de l'apprentissage automatique. Surtout au cours des 10 dernières années, la technologie d'apprentissage automatique représentée par l'apprentissage profond a déclenché une révolution dans la vision par ordinateur. Cet article présentera la technologie typique d'apprentissage en profondeur - le réseau neuronal convolutif profond, introduisant principalement les connaissances de base du réseau neuronal convolutif profond.

2 Bases du réseau neuronal convolutif profond

Avec le développement continu des technologies de l'information, la quantité de différents types de données d'images vidéo a considérablement augmenté. Il est d'une grande importance d'extraire les informations cachées d'une grande quantité de données d'images vidéo et d'en exploiter la valeur potentielle.

Avec le développement de l’intelligence artificielle, la technologie de vision par ordinateur est de plus en plus utilisée. Par exemple, la reconnaissance faciale et l'analyse d'identité dans la vidéosurveillance, l'analyse et la reconnaissance de diverses images médicales dans le diagnostic médical, la classification visuelle fine, la reconnaissance des attributs d'images faciales, la reconnaissance d'empreintes digitales, la reconnaissance de scènes, etc. La technologie de vision par ordinateur a progressivement pénétré dans la vie des gens. vie quotidienne, dans la vie et les applications . Cependant, la méthode traditionnelle de vision par ordinateur consistant à extraire manuellement les caractéristiques de l’image puis à effectuer un apprentissage automatique devient de plus en plus inadéquate pour gérer ces applications. Depuis 2006, l'apprentissage profond est entré dans le champ de vision des gens. Surtout après qu'AlexNet a remporté le défi de reconnaissance visuelle à grande échelle ImageNet en 2012, l'apprentissage profond a fait des progrès remarquables dans le domaine de l'intelligence artificielle. Il a été largement utilisé dans la vision par ordinateur et la parole. la reconnaissance, le traitement du langage naturel, le multimédia et bien d’autres domaines ont connu un grand succès. La plus grande différence entre l'apprentissage profond et les méthodes traditionnelles de reconnaissance de formes est qu'il apprend automatiquement les fonctionnalités du Big Data au lieu d'utiliser des fonctionnalités conçues manuellement, et de bonnes fonctionnalités peuvent considérablement améliorer les performances des systèmes de reconnaissance de formes. Dans le domaine de la vision par ordinateur, les réseaux neuronaux convolutifs profonds sont devenus un sujet de recherche brûlant et jouent un rôle essentiel dans les tâches de vision par ordinateur telles que la classification d'images, la détection de cibles et la segmentation d'images. Cette section présentera les connaissances de base des réseaux de neurones convolutifs profonds.

2.1 Réseau neuronal artificiel

Le système nerveux humain est composé de centaines de milliards de neurones et chaque neurone est constitué de dendrites, d’axones et de corps cellulaires. Les êtres humains reçoivent chaque jour d'innombrables informations visuelles et auditives. Le traitement de ces informations est complété par le système nerveux. Les dendrites reçoivent les informations et les transmettent au corps cellulaire, et l'axone reçoit les informations et les transmet. Le réseau neuronal artificiel simule la structure et la fonction du système nerveux humain et constitue un système de traitement de l'information.

Figure 2-1 Structure des neurones artificiels

La figure 2-1 montre la structure d'un seul neurone artificiel. Le neurone a n entrées, respectivement X1,...,Xn. La valeur sur la ligne de connexion est le poids de chaque entrée, respectivement W1,...,Wn. La fonction d'activation (fonction d'activation) est F, le terme de biais (biais ) est b, et la sortie du neurone est : y=f(\somme WiXi+b).

Le réseau de neurones artificiels est un modèle informatique composé d'un grand nombre de neurones artificiels (également appelés nœuds) connectés les uns aux autres. Chaque deux neurones connectés représente une valeur pondérée pour le signal qui passe. Le réseau neuronal direct est un modèle simple de réseau neuronal artificiel, comprenant une couche d'entrée, une couche cachée et une couche de sortie. La couche d'entrée a une couche, la couche de sortie a une couche, la couche cachée a plusieurs couches et chaque couche a plusieurs nœuds. Il n'y a pas de connexions entre les nœuds et la relation entre les nœuds entre les couches est mesurée par le poids. Le réseau neuronal direct peut également être appelé une couche entièrement connectée. Sa structure de réseau est plus complexe qu'un seul neurone, mais la sortie satisfait toujours la relation entre l'entrée et le poids multiplié par la fonction d'activation.

La sortie des réseaux de neurones artificiels est affectée par de nombreux aspects, tels que la structure du réseau, les entrées X, les poids Wet les fonctions d'activation. Une fois le réseau neuronal construit, sa structure de réseau et sa fonction d'activation sont fixées. Si vous souhaitez modifier la sortie, vous devez modifier les poids  W. Par conséquent, le processus de formation du réseau neuronal est un processus d'optimisation continue des paramètres. La formation se compose de deux processus : la propagation vers l'avant et la propagation vers l'arrière. Tout d'abord, construisez un réseau neuronal et saisissez les données d'entraînement, et le réseau neuronal calcule le résultat de sortie, qui est une propagation vers l'avant ; calcule ensuite la différence entre le résultat de sortie et l'étiquette réelle des données d'entrée (c'est-à-dire la fonction de perte). , et le réseau utilise cette valeur de différence pour mettre à jour Wla valeur du paramètre, qui est une rétropropagation. Le processus de formation du réseau neuronal consiste à effectuer cycliquement une propagation avant et arrière, à ajuster les paramètres de poids de chaque neurone et à ajuster la relation non linéaire, et enfin à obtenir une meilleure précision du modèle.

Le degré d’ajustement du modèle est étroitement lié à la fonction d’activation. Le rôle de la fonction d'activation du réseau neuronal est d'effectuer des calculs non linéaires sur le signal d'entrée et de transmettre sa sortie au nœud suivant. Il existe trois fonctions d'activation courantes : la fonction d'activation sigmoïde, la fonction d'activation Tanh et la fonction d'activation ReLU. La fonction d'activation sigmoïde est illustrée à la figure 2-2. Lorsque l'entrée est grande ou petite, le gradient de la fonction est très faible. Puisque la règle de dérivation en chaîne est utilisée dans l'algorithme de rétropropagation pour calculer le gradient des paramètres, lorsque le Le modèle utilise la fonction sigmoïde, il est facile Wde résoudre le problème de la disparition du gradient. La fonction Tanh est similaire à la fonction sigmoïde. Lorsque l'entrée est grande ou petite, le gradient de la fonction est petit, ce qui est sujet au problème de disparition du gradient et n'est pas propice à la mise à jour du poids. La fonction ReLU a plus d'avantages : lorsque l'entrée est un nombre positif, le gradient est constant et ne sera pas nul ; la vitesse de calcul est rapide. Mais il présente également un inconvénient fatal : lorsque l'entrée est négative, le gradient disparaît complètement, de sorte que l'utilisation de la fonction d'activation doit être déterminée en fonction des besoins réels.

Figure 2-2 Fonction d'activation sigmoïde Figure 2-3 Fonction d'activation Tanh Figure 2-4 Fonction d'activation Relu

En rétropropagation, la fonction de perte (loss) est très importante. Les fonctions de perte couramment utilisées incluent la perte d'erreur quadratique moyenne (mse_loss), la fonction de perte personnalisée et la fonction de perte d'entropie croisée (entropie croisée). La fonction de perte la plus couramment utilisée dans la classification d'images est la fonction de perte d'entropie croisée. Dans le problème de classification, en supposant qu'il y ait n catégories au total, la sortie du classificateur est la probabilité que l'entrée soit prédite comme étant ces n catégories, c'est-à-dire que la sortie est n probabilités. Comme le montre la formule (1), l'entropie croisée décrit la différence entre deux distributions de probabilité. Plus la différence est petite, plus les deux probabilités sont proches. Plus la différence est grande, plus la différence entre les deux probabilités est grande. qreprésente l'étiquette réelle et preprésente la valeur prédite.

                                                         H(p,q)=-\somme q(x)logp(x)                    (1)

2.2 Réseaux de neurones convolutifs (CNN)

Le réseau neuronal convolutif est une amélioration du réseau neuronal artificiel. Il ajoute une couche convolutive et une couche de pooling. Le processus de formation du réseau neuronal convolutif est le même que celui du réseau neuronal artificiel, y compris la propagation vers l'avant et la propagation inverse. propagé. La couche convolutive et la couche de pooling sont présentées en détail ci-dessous.

(1)  Couche convolutive

Le réseau neuronal convolutif est un réseau de partage de poids. Par rapport aux réseaux neuronaux ordinaires, la complexité de son modèle est réduite et le nombre de paramètres est considérablement réduit. Cela est dû à deux caractéristiques importantes de la convolution : le champ récepteur local et le partage de paramètres (partage de paramètres). .

Dans les réseaux de neurones traditionnels, chaque neurone d'entrée et chaque neurone de sortie sont entièrement connectés, et la relation entre chaque neurone d'entrée et chaque neurone de sortie est décrite par un paramètre. La taille du filtre du noyau de convolution d'un réseau neuronal convolutif est beaucoup plus petite que la taille d'entrée et ses connexions sont clairsemées. Les pixels locaux de l'image sont étroitement liés et la corrélation des pixels distants est faible. Les neurones n'ont pas besoin de percevoir l'image globale, mais seulement de percevoir l'image locale et de combiner les informations locales à un niveau élevé pour obtenir des informations globales. . Utilisez un noyau de convolution pour traiter une image et détecter des caractéristiques localement significatives. La plage de connexion spatiale de même taille que le noyau de convolution est appelée champ récepteur. Plus le nombre de couches de convolution est élevé, plus le champ récepteur est grand. Plus la valeur est grande. , plus la zone d'image originale correspondant au champ récepteur est grande. Le champ récepteur local réduit considérablement le nombre de paramètres, comme illustré ci-dessous. Si la taille de l'image d'entrée est de 1 000 \fois1 000, le nombre de neurones de la couche cachée est de 1 million. S'ils sont entièrement connectés, il y aura 1 000 \fois1 000 = 1 000 000 = 10^{12}connexions et 10^{12}un paramètre ; si la taille du noyau de convolution est de 10 \fois10, alors la taille locale champ récepteur La taille est de 10 \fois10. Chaque neurone de la couche cachée n'a besoin \foisd'être connecté qu'à une zone de taille 10 10. Il y a un total de 10 \fois10 1000000= 10^{8}connexions, c'est-à-dire qu'il y a 10^{8}des paramètres.

Dans l’exemple ci-dessus, l’utilisation de champs récepteurs locaux réduit considérablement le nombre de paramètres, mais ce nombre reste très important. Chaque neurone est connecté à \foisune zone d'image de taille 10 10, donc chaque neurone a 10 \fois10 = 100 paramètres. Si les paramètres de chaque neurone sont les mêmes, c'est-à-dire que chaque neurone utilise le même noyau de convolution. Pour la déconvolution, uniquement 100 paramètres sont nécessaires au total, ce qui correspond au partage de paramètres. Cependant, un noyau de convolution ne peut extraire qu'une seule caractéristique, donc plusieurs noyaux de convolution sont utilisés pendant la convolution. Les paramètres de chaque filtre de noyau de convolution sont différents, ce qui signifie que différentes caractéristiques de l'image d'entrée sont extraites. Avec plusieurs noyaux de convolution, plusieurs fonctionnalités peuvent être extraites, et ces fonctionnalités sont disposées pour former une carte de fonctionnalités. Les champs de réception locaux et le partage de paramètres réduisent considérablement la quantité de paramètres du modèle, économisant ainsi de l'espace mémoire tout en maintenant les performances du modèle sans dégradation.

(2) Couche de mise en commun

Figure 2-5 Diagramme schématique du pooling maximum

La couche de pooling est également appelée couche de sous-échantillonnage. De manière générale, le pooling fonctionne sur chaque carte de fonctionnalités dans le but de réduire la taille de la carte de fonctionnalités. Le pooling est divisé en deux types : Max Pooling et Average Pooling. La figure 2-5 montre le pooling maximum. La taille du noyau de pooling est de 2 2 et la taille du pas est de 2 2. En termes simples, L'opération de pooling maximum consiste à trouver la partie qui \foisse \foischevauche \fois. du noyau de pooling 2 2 et une certaine carte de caractéristiques de profondeur, puis prenez la valeur maximale de la zone de chevauchement pour obtenir la valeur sous-échantillonnée. Déplacez la position du noyau de pooling en fonction de la taille du pas pour obtenir la carte des fonctionnalités de sortie. Le fonctionnement du pooling moyen est similaire à celui du pooling maximum, sauf que la valeur moyenne des pixels dans la zone de chevauchement est prise.

2.3 Optimisation des réseaux de neurones convolutifs profonds

Afin d'obtenir de meilleures performances, les couches des réseaux de neurones convolutifs deviennent de plus en plus profondes. Plus les couches des réseaux de neurones convolutifs profonds sont profondes, plus il faut apprendre de paramètres et plus le réseau est difficile à optimiser. Sans de bonnes méthodes d’optimisation, des problèmes de surajustement ou de sous-ajustement se produiront.

Le surajustement signifie que le modèle a une faible capacité de généralisation et un bon ajustement sur l'ensemble d'entraînement, mais un mauvais ajustement sur l'ensemble de validation. En termes simples, cela signifie que le modèle apprend trop bien les données d'entraînement. Le modèle peut très bien reconnaître les images de l'ensemble d'entraînement, mais ne peut pas reconnaître les images de l'ensemble non-entraînement. Il y a deux raisons : l’une est qu’il y a trop peu de données dans l’ensemble de formation et l’autre est qu’il y a trop d’itérations de formation. Il existe quatre méthodes principales pour atténuer le surapprentissage, comme suit :

(1) Arrêt anticipé. Après chaque itération (époque), le taux d'erreur de l'ensemble de validation (erreur de validation) est calculé. Si le taux d'erreur ne diminue plus, l'apprentissage est terminé. C'est une méthode pour stopper les pertes dans le temps, la capacité de généralisation du modèle n'est plus améliorée et continuer à s'entraîner est une perte de temps. Cependant, il n’est pas scientifique de se fier uniquement au taux d’erreur après une itération, car le taux d’erreur après cette itération peut augmenter ou diminuer. Par conséquent, vous pouvez déterminer s'il faut mettre fin à la formation en fonction du taux d'erreur de l'ensemble de validation après 10, 20 et autres itérations.

(2) Expansion de l’ensemble de données. C'est le moyen le plus direct et le plus efficace de réduire le surapprentissage. Sans une bonne qualité et une grande quantité de données, il est impossible de former un bon modèle. L'ensemble de données peut être étendu sous deux aspects : ajouter des données à partir de la source. Par exemple, lors de la classification des images, ajouter directement des images à l'ensemble d'apprentissage. Cependant, cette méthode est difficile à mettre en œuvre car on ne sait pas quelle quantité de données sera ajoutée. ; apporter des modifications aux données originales. , obtenant ainsi plus de données, comme faire pivoter l'image originale, ajouter du bruit aux données originales, intercepter une partie des données originales, etc.

(3) Régularisation. La régularisation comprend la régularisation L0, la régularisation L1 et la régularisation L2. La régularisation L2 est couramment utilisée dans l'apprentissage automatique. Le terme de régularisation L2 a pour effet de rendre les paramètres plus petits et intensifiés. Des paramètres plus petits signifient que la complexité du modèle est moindre, de sorte que le modèle s'adapte parfaitement aux données d'entraînement pour améliorer la capacité de généralisation du modèle.

(4) abandonner. L'abandon, en tant que type de fusion de modèles, entraîne l'arrêt du fonctionnement des neurones avec une certaine probabilité, réduisant ainsi les erreurs de test. Étant donné une entrée, le réseau échantillonne différentes structures, qui partagent un ensemble de paramètres. Puisqu’un neurone ne dépend pas de certains neurones spécifiques, le décrochage réduit la co-adaptation complexe entre les neurones et améliore la robustesse du réseau.

Le modèle ne s'adapte pas bien à l'ensemble d'entraînement mais fonctionne bien à l'ensemble de validation, qui est sous-ajusté. La raison en est que le sous-apprentissage signifie que le modèle n'a pas suffisamment appris sur les données d'entraînement, n'a pas suffisamment d'apprentissage des fonctionnalités et a une faible capacité de représentation. Le sous-équipement peut être atténué par les méthodes suivantes :

(1) Ajoutez d'autres éléments de fonctionnalités. Des éléments de fonctionnalités insuffisants entraîneront un sous-ajustement. Le sous-ajustement causé par des éléments de fonctionnalités insuffisants peut être bien résolu en ajoutant des éléments de fonctionnalités. Les méthodes d'ajout d'éléments de fonctionnalités incluent la combinaison, la généralisation, la corrélation, etc. Ces méthodes sont applicables dans de nombreux scénarios.

(2) Ajoutez des fonctionnalités polynomiales. Par exemple, l'ajout de termes quadratiques ou cubiques à un modèle linéaire peut améliorer la capacité de généralisation du modèle.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44918501/article/details/130270044
conseillé
Classement