Comprendre les réseaux de capsules de Hinton. Partie IV: Architecture CapsNet

Supposons que l’étiquette correcte soit 1, cela signifie que le premier DigitCap est responsable du codage de la présence du chiffre 1. Pour cette fonction de perte de DigitCap, T_c sera un et pour les neuf autres DigitCaps, T_c sera 0. Lorsque T_c vaut 1, le premier terme de la fonction de perte est calculé et le second devient nul. Pour notre exemple, afin de calculer la perte du premier chiffre, nous prenons le vecteur de sortie de ce chiffre et le soustrayons de m +, qui est fixé à 0,9. Ensuite, nous ne conservons la valeur résultante que dans le cas où elle est supérieure à zéro et la plaçons au carré. Sinon, retournez 0. En d’autres termes, la perte sera nulle si le DigitCap correct prédit l’étiquette correcte avec une probabilité supérieure à 0,9, et elle sera non nulle si la probabilité est inférieure à 0,9.

Valeur de la fonction de perte pour le capuchon numérique correct et incorrect. Notez que le graphique rouge est « écrasé » verticalement par rapport au graphique vert. Cela est dû au multiplicateur lambda de la formule. Source: auteur.

Pour les cartes numériques qui ne correspondent pas à l’étiquette correcte, T_c sera nul et donc le deuxième terme sera évalué (correspondant à la partie (1—T_c)). Dans ce cas, nous pouvons voir que la perte sera nulle si le discordant DigitCap prédit une étiquette incorrecte avec une probabilité inférieure à 0,1 et non nulle s’il prédit une étiquette incorrecte avec une probabilité supérieure à 0,1.

Enfin, dans la formule, le coefficient lambda est inclus pour la stabilité numérique pendant l’entraînement (sa valeur est fixée à 0,5). Les deux termes de la formule ont des carrés car cette fonction de perte a la norme L2 et les auteurs considèrent apparemment que cette norme fonctionne mieux.

Partie II. Décodeur.

Architecture du décodeur CapsNet. Source : papier original.

Decoder prend un vecteur à 16 dimensions à partir du DigitCap correct et apprend à le décoder en une image d’un chiffre (notez qu’il n’utilise que le vecteur DigitCap correct pendant l’entraînement et ignore les vecteurs incorrects). Le décodeur est utilisé comme régularisateur, il prend la sortie du bon capuchon numérique comme entrée et apprend à recréer une image de 28 x 28 pixels, la fonction de perte étant la distance euclidienne entre l’image reconstruite et l’image d’entrée. Le décodeur force les capsules à apprendre des fonctionnalités utiles pour reconstruire l’image d’origine. Plus l’image reconstruite est proche de l’image d’entrée, mieux c’est. Des exemples d’images reconstruites peuvent être vus dans l’image ci-dessous.

Rangée du haut: images originales. Rangée du bas: images reconstruites. Source : papier original.

Couche 4. Entrée #1

entièrement connectée: 16×10.
Sortie: 512.
Nombre de paramètres: 82432.

Chaque sortie du niveau inférieur est pondérée et dirigée dans chaque neurone de la couche entièrement connectée en tant qu’entrée. Chaque neurone a également un terme de biais. Pour cette couche, il y a 16×10 entrées qui sont toutes dirigées vers chacun des 512 neurones de cette couche. Par conséquent, il existe des paramètres (16×10 + 1) x512 pouvant être entraînés.

Pour les deux couches suivantes, le calcul est le même: nombre de paramètres = (nombre d’entrées + biais) x nombre de neurones dans la couche. C’est pourquoi il n’y a pas d’explication pour les couches 2 et 3 entièrement connectées.

Couche 5. Entrée #2

entièrement connectée: 512.
Sortie: 1024.
Nombre de paramètres: 525312.

Couche 6. Entièrement connecté #3

Entrée: 1024.
Sortie : 784 (qui après remodelage redonne une image décodée 28×28).
Nombre de paramètres: 803600.

Nombre total de paramètres dans le réseau : 8238608.

Conclusion

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.