Capsule Neural Networks - Ensemble de couches neuronales imbriquées



Capsule Networks - Ce blog parle des limites des réseaux de neurones convolutifs et de la manière dont Capsule Neural Networks résout ces limitations.

Réseaux de capsules:

Qu'est-ce que Capsule Networks? Il s'agit essentiellement d'un réseau d'un ensemble de couches neuronales imbriquées.

Je vous recommanderais également de parcourir les blogs ci-dessous:





Je suppose que vous connaissez les réseaux de neurones convolutifs (CNN). Ici, je vais vous donner une petite introduction sur le même, afin que je puisse discuter des limites des CNN.

Vous pouvez également consulter la vidéo ci-dessous sur Convolutional Neural Network.



Réseaux de neurones convolutifs (CNN)

Les réseaux de neurones convolutifs sont essentiellement une pile de différentes couches de neurones artificiels, qui sont utilisées pour la vision par ordinateur. Ci-dessous, j'ai mentionné ces couches:

Réseau neuronal convolutif - Réseau neuronal capsule - Edureka

Couche convolutionnelle: Lorsque nous utilisons Feedforward Neural Networks (Multi Layer Perceptron) pour la classification d'images, il y a de nombreux défis à relever. Le défi le plus frustrant est que, il introduit beaucoup de paramètres, considérez le tutoriel vidéo sur CNN.



Pour surmonter ce défi Couche de convolution a été présenté. on suppose que les pixels qui sont spatialement plus rapprochés 'coopèrent' pour former une caractéristique particulière d'intérêt beaucoup plus que ceux situés sur des coins opposés de l'image. De plus, si une caractéristique particulière (plus petite) s'avère d'une grande importance lors de la définition de l'étiquette d'une image, elle sera tout aussi importante si cette caractéristique a été trouvée n'importe où dans l'image, quel que soit son emplacement.

Couche ReLU: La fonction de transformation d'unité linéaire rectifiée (ReLU) active un nœud uniquement si l'entrée est supérieure à une certaine quantité, tandis que l'entrée est inférieure à zéro, la sortie est nulle, mais lorsque l'entrée dépasse un certain seuil, elle a une relation linéaire avec le variable dépendante.

  • Dans ce calque, nous supprimons toutes les valeurs négatives des images filtrées et les remplaçons par des zéros
  • Ceci est fait pour éviter que les valeurs ne s'additionnent à zéro

Couche de mise en commun: Ceci est utilisé pour effectuer un sous-échantillonnage, qui consomme de petits morceaux (généralement) disjoints de l'image et les regroupe en une seule valeur. Il existe plusieurs schémas d'agrégation possibles - le plus populaire étant Max-Pooling , où la valeur de pixel maximale dans chaque segment est prise. Cela rend le réseau invariant aux petites transformations, distorsions et traductions dans l'image d'entrée (une petite distorsion en entrée ne changera pas la sortie de Pooling - puisque nous prenons la valeur maximale / moyenne dans un voisinage local).

Couche entièrement connectée: Cette couche calculera les scores de classe, où chacun des nombres correspond à un score de classe. Comme avec les réseaux de neurones ordinaires et comme son nom l'indique, chaque neurone de cette couche sera connecté à tous les neurones du volume précédent. En un mot, il effectue le classement final.

De cette manière, les ConvNets transforment l'image d'origine couche par couche des valeurs de pixels d'origine aux scores de classe finaux.

C'était une très courte introduction aux réseaux de neurones convolutifs, je vous recommanderais quand même de jeter un œil à la vidéo CNN que j'ai intégrée dans cet article.

Dans ce blog Capsule Networks, je vais maintenant discuter de quelques limitations des réseaux de neurones convolutifs

Limitations des réseaux de neurones convolutionnels:

Eh bien, laissez-moi vous expliquer cela par une analogie.

Supposons qu'il existe un humain dont les yeux peuvent détecter les caractéristiques de diverses images. Prenons l'exemple du visage d'un humain. Ainsi, ce malheureux peut identifier diverses caractéristiques telles que les yeux, le nez, etc., mais est incapable d'identifier les relations spatiales entre les caractéristiques (perspective, taille, orientation). Par exemple, l'image suivante peut tromper ce gars en la classant comme une bonne esquisse d'un visage humain.

php convertir un tableau en objet

C'est également le problème des réseaux de neurones convolutionnels. CNN est bon pour détecter les fonctionnalités, mais activera à tort le neurone pour la détection de visage. En effet, il est moins efficace pour explorer les relations spatiales entre les entités.

Un simple modèle CNN peut extraire correctement les caractéristiques du nez, des yeux et de la bouche mais activera à tort le neurone pour la détection du visage. Sans se rendre compte du décalage dans l'orientation spatiale et la taille, l'activation de la détection de visage sera trop élevée.

Eh bien, cette limitation est due à la couche Max Pooling.

La mise en commun maximale dans un CNN gère la variance de translation. Même une fonction est légèrement déplacée, si elle se trouve toujours dans la fenêtre de regroupement, elle peut toujours être détectée. Néanmoins, cette approche ne conserve que la fonctionnalité max (la plus dominante) et rejette les autres.

Ainsi, l'image du visage ci-dessus sera classée comme un visage normal. La couche de regroupement ajoute également ce type d'invariance.

Cela n'a jamais été l'intention de la couche de mise en commun. Ce que la mise en commun était censé faire est d'introduire des invariances positionnelles, d'orientation et proportionnelles.

En réalité, cette couche de regroupement ajoute toutes sortes d'invariance de position. Comme vous pouvez également le voir dans le diagramme ci-dessus, cela conduit au dilemme de détecter correctement le visage.

Voyons quelle est la solution proposée par Geoffrey Hinton .

Comment résoudre ce problème?

Maintenant, nous imaginons que chaque neurone contient la vraisemblance ainsi que les propriétés des caractéristiques. Par exemple, il génère un vecteur contenant [vraisemblance, orientation, taille]. Avec ces informations spatiales, nous pouvons détecter l'incohérence dans l'orientation et la taille entre les caractéristiques du nez, des yeux et de l'oreille et donc produire une activation beaucoup plus faible pour la détection du visage.

Dans l'article publié par Geoffrey Hinton , ces types de neurones sont appelés capsules. Ces capsules produisent un vecteur au lieu d'une seule valeur de mise à l'échelle.

Permettez-moi de mettre quelques lumières sur ce que sont Capsule Networks.

Que sont les réseaux Capsule?

Capsule est essentiellement un ensemble de couches neurales imbriquées. L'état des neurones à l'intérieur d'une capsule capture les diverses propriétés telles que la pose (position, taille, orientation), la déformation, la vitesse, la texture, etc., d'une entité à l'intérieur d'une image.

Au lieu de capturer une fonctionnalité avec une variante spécifique, une capsule est formée pour capturer la probabilité d'une fonctionnalité et de sa variante. Ainsi, le but de la capsule n'est pas seulement de détecter une caractéristique, mais aussi d'entraîner le modèle à apprendre la variante.

De telle sorte que la même capsule puisse détecter la même classe d'objets avec des orientations différentes (par exemple, tourner dans le sens des aiguilles d'une montre):

Nous pouvons dire que cela fonctionne sur l'équivariance et non sur l'invariance.

Invariance: est la détection des caractéristiques quelles que soient les variantes. Par exemple, un neurone de détection de nez détecte un nez quelle que soit l'orientation.

Équivariance: est la détection d'objets qui peuvent se transformer (par exemple, détecter des visages avec des orientations différentes). Intuitivement, le réseau de capsules détecte que le visage est tourné à droite de 31 ° (équivariance) plutôt que de réaliser que le visage correspond à une variante qui est tournée de 31 °. En forçant le modèle à apprendre la variante de fonctionnalité dans une capsule, nous pouvons extrapoler plus efficacement les variantes possibles avec moins de données d'entraînement. De plus, nous pouvons rejeter les adversaires plus efficacement.

Une capsule produit un vecteur pour représenter l'existence de l'entité. L'orientation du vecteur représente les propriétés de l'entité.

Le vecteur est envoyé à tous les parents possibles du réseau neuronal. Pour chaque parent possible, une capsule peut trouver un vecteur de prédiction. Le vecteur de prédiction est calculé en multipliant son propre poids et une matrice de poids. Quel que soit le parent qui possède le plus grand produit vectoriel de prédiction scalaire, augmente la liaison capsule. Le reste des parents diminue leur lien. Ceci est appelé comme Acheminement par accord .

C'est certainement une meilleure approche que la mise en commun maximale, dans laquelle le routage est basé sur la caractéristique la plus forte détectée dans la couche inférieure.

Après cela, une fonction d'écrasement est ajoutée. Ceci est fait pour introduire la non-linéarité. Cette fonction d'écrasement est appliquée à la sortie vectorielle de chaque capsule.

Laissez-moi vous dire maintenant comment fonctionnent les réseaux Capsule.

Comment fonctionnent les réseaux Capsule?

Prenons du recul. Dans un réseau entièrement connecté, la sortie de chaque neurone est la somme pondérée des entrées.

Voyons maintenant ce qui se passe dans Capsule Networks.

Réseau neuronal de capsule:

Considérons un réseau neuronal capsule où «uje«Est le vecteur d’activité de la capsule»je'dans la couche ci-dessous.

Étape - 1: appliquer une matrice de transformationDANSijà la sortie capsule uje de la couche précédente. Par exemple, avec une matrice m × k, on transforme un k-Duje à un m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

C'est la prédiction ( vote ) de la capsule «i» à la sortie de la capsule «j» ci-dessus. «Vj«Est le vecteur d’activité de la capsule»j »dans la couche ci-dessus

Étape - 2: Calculez une somme pondérée sjavec des poidscij.cijsont les coefficients de couplage. La somme de ces coefficients est égale à un. C’est le paramètre réel qui fonctionne sur la relation du groupe de capsules dont nous avons parlé plus tôt.

Étape - 3: Dans les réseaux de neurones convolutifs, nous avons utilisé la fonction ReLU. Ici, nous appliquerons une fonction d'écrasement pour mettre à l'échelle le vecteur entre 0 et la longueur unitaire. Il réduit les petits vecteurs à zéro et les vecteurs longs aux vecteurs unitaires. Par conséquent, la probabilité de chaque capsule est limitée entre zéro et un.

C'est la prédiction ( vote ) de la capsule «i» à la sortie de la capsule «j» ci-dessus. Si le vecteur d’activité présente une similitude étroite avec le vecteur de prédiction, nous concluons que la capsule ‘je'est étroitement lié à la capsule »j ». (Par exemple, la capsule nasale est étroitement liée à la capsule faciale.) Cette similitude est mesurée en utilisant le produit scalaire du vecteur de prédiction et d'activité. Par conséquent, la similitude prend en compte à la fois la vraisemblance et les propriétés des caractéristiques. (au lieu de simplement la vraisemblance dans les neurones).

Étape - 4: Calculez le score de pertinence 'bij«. Ce sera le produit scalaire du vecteur d'activité et du vecteur de prédiction. Les coefficients de couplagecjejest calculé comme le softmax debjej:

Le coefficient de couplage cijest calculé comme le softmax de bij.

Ce Bijest mis à jour de manière itérative en plusieurs itérations.

Ceci est appelé comme Acheminement par accord .

Le diagramme ci-dessous est un exemple:

Après ce blog sur Capsule Networks, je proposerai un blog sur l'implémentation de Capsule Neural Network à l'aide de TensorFlow.

J'espère que vous avez apprécié la lecture de ce blog sur les réseaux de capsules, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation Edureka Deep Learning avec certification TensorFlow aide les apprenants à devenir des experts dans la formation et l'optimisation des réseaux de neurones de base et convolutifs à l'aide de projets et d'affectations en temps réel ainsi que de concepts tels que la fonction SoftMax, les réseaux de neurones à encodeur automatique, la machine Boltzmann restreinte (RBM).

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.