Question

J'ai un petit sous-question cette question .

I comprendre que lors du retour se propageant à travers une couche de mise en commun max le gradient est à nouveau routée de façon que le neurone dans la couche précédente qui a été sélectionné comme max obtient tout le gradient. Ce que je ne suis pas sûr à 100% est de savoir comment le gradient dans la couche suivante se réacheminé à la couche de mise en commun.

La première question est de savoir si je une couche de mise en commun relié à une couche connectée entièrement -. Comme l'image ci-dessous

Lorsque le calcul du gradient pour le « neurone » cyan de la couche de mise en commun puis-je la somme de toutes les gradients à partir des neurones de couche FC? Si cela est correct alors tous les « neurones » de la couche de mise en commun a le même gradient?

Par exemple, si le premier neurone de la couche FC a un gradient de 2, second a un gradient de 3, et le troisième un gradient de 6. Quels sont les gradients des « neurones » bleu et violet dans la couche de mise en commun et pourquoi ?

Et la deuxième question est lorsque la couche de mise en commun est relié à une autre couche de convolution. Comment puis-je calculer le gradient alors? Voir l'exemple ci-dessous.

Pour la plus haute extrême droite « neurone » de la couche de mise en commun (le vert décrit) je prends juste le gradient du neurone violet dans la couche suivante conv et la route en arrière, à droite?

Que diriez-vous du vert rempli? Je dois multiplier ensemble la première colonne de neurones dans la couche suivante en raison de la règle de la chaîne? Ou dois-je les ajouter?

S'il vous plaît ne pas poster un tas d'équations et me dire que ma réponse est juste là-bas parce que je l'ai essayé d'envelopper ma tête autour des équations et je ne comprends toujours pas parfaitement c'est pourquoi je vous pose cette question d'une manière simple.

Était-ce utile?

La solution

Si cela est correct alors tous les « neurones » de la couche de mise en commun a le même gradient?

Non. Cela dépend des poids et la fonction d'activation. Et plus généralement les coefficients de pondération sont différents du premier neurone de la couche de mise en commun à la couche FC à partir de la seconde couche de la couche de mise en commun à la couche FC.

En général, vous avez une situation comme:

$ FC_i = f (\ sum_j W_ {} ij P_j) $

Si $ FC_i $ est le neurone i dans la couche entièrement connecté, $ P_j $ est le neurone j-ième dans la couche de mise en commun et $ f $ est la fonction d'activation et $ W $ Le poids des moyeux.

Cela signifie que le gradient par rapport à P_j est

$ grad (P_j) = \ sum_i diplômé (FC_i) f ^ \ prime W_ {ij} $.

qui est différent pour j = 0 j = 1 ou parce que le W est différent.

Et la deuxième question est lorsque la couche de mise en commun est relié à une autre couche de convolution. Comment puis-je calculer le gradient alors?

Il ne fait pas de différence quel type de couche, il est connecté. Il est la même équation tout le temps. Somme de tous les gradients sur la couche suivante, multipliée par la façon dont la sortie de ces neurones est affectée par le neurone sur la couche précédente. La différence entre les FC et Convolution est que FC tous les neurones dans la couche suivante apportera une contribution (même si peut-être petit), mais dans Convolution la plupart des neurones dans la couche suivante ne sont pas du tout touchés par le neurone dans la couche précédente de sorte que leur contribution est exactement zéro.

Pour la plus haute extrême droite « neurone » de la couche de mise en commun (le vert décrit) je prends juste le gradient du neurone violet dans la couche suivante conv et la route en arrière, à droite?

droit. Plus ont également le gradient de tous les autres neurones sur cette couche de convolution qui prennent en entrée le neurone supérieure droite de la couche de mise en commun.

Que diriez-vous du vert rempli? Je dois multiplier ensemble la première colonne de neurones dans la couche suivante en raison de la règle de la chaîne? Ou dois-je les ajouter?

les ajouter. En raison de la règle de la chaîne.

Max Pooling Jusqu'à ce point, le fait qu'il était la piscine max était totalement hors de propos que vous pouvez voir. Max mise en commun est juste la que la fonction d'activation sur cette couche est de $ $ max. Cela signifie donc que les gradients pour les couches précédentes $ grad (PR_j) $ sont:

$ grad (PR_j) = \ sum_i diplômé (P_i) f ^ \ prime W_ {ij} $.

Mais maintenant $ f = id $ pour le neurone max et $ f = 0 $ pour tous les autres neurones, alors $ f ^ \ prime = 1 $ pour le neurone max dans la couche précédente et $ f ^ \ prime = 0 $ pour tous les autres neurones. Donc:

$ grad (PR_ {neurone max}) = \ sum_i grad (P_i) W_ {i \ {max \ neurone}} $,

$ grad (PR_ {} autres) = 0. $

Licencié sous: CC-BY-SA avec attribution
scroll top