Chapitre 7 [Méthode de propagation des erreurs] P275 ~ (Milieu) [Apprenez en vous déplaçant avec Python! Nouveau manuel d'apprentissage automatique]

Méthode de propagation des erreurs (rétro-propagation)

Cette méthode de rétropropagation d'erreur utilise les informations de l'erreur (différence avec le signal enseignant) générées en sortie du réseau depuis le poids de la couche de sortie $ v_ {kj} $ au poids de la couche intermédiaire $ w_ {ji} $. Ce nom est donné car le poids est mis à jour dans le sens inverse de la méthode d'entrée. Cependant, cette méthode de propagation de retour d'erreur est la méthode de gradient elle-même, et lorsque la méthode de gradient est appliquée au réseau neuronal par anticipation, la méthode de propagation de retour d'erreur est naturellement dérivée.

Puisque la classification de classe est effectuée, considérez l'erreur d'entropie croisée moyenne de l'équation 7-18 pour la fonction d'erreur (P266). $ E(w,v)=-\frac{1}{N}\sum_{n=0}^{N-1}\sum_{k=0}^{K-1}t_{nk}log(y_{nk})\hspace{40pt}(7-18) $

・ Ce que je veux faire ici est de trouver $ \ partial {E} / \ partial {w_ {ji}} $ (erreur d'entropie d'intersection moyenne). ・ En considérant l'entropie croisée $ E_n $ quand il y a une donnée, la différenciation est $ \ partial {E_n} / Comme il est calculé par \ partial {w_ {ji}} $, le favori $ \ partial {E} / \ partial {w_ {ji}} $ (erreur moyenne d'entropie de croisement) est $ \ partial {E_n} / pour le nombre de données. Trouvez \ partial {w_ {ji}} $ et faites la moyenne ・ Ici, t est un signal enseignant (un signal indiquant quelle classe), qui était représenté par t = [0,0,1] </ font>

C'est ↓ $ \frac{\partial{E}}{\partial{w_{ji}}}=\frac{\partial}{\partial{w_{ji}}}\frac{1}{N} \sum_{n=0}^{N-1}E_n =\frac{1}{N}\sum_{n=0}^{N-1} \frac{\partial{E_n}}{\partial{w_{ji}}} $

Cette fois, considérons le cas de D = 2, M = 2, K = 3.

D: nombre de valeurs d'entrée M: nombre de couches intermédiaires K: nombre de sorties w, v: poids

Puisqu'il y a deux poids, w et v, commencez par trouver la formule qui différencie partiellement $ E_n $ par $ v_ {kj} $. Ensuite, trouvez la formule qui différencie partiellement $ E_n $ par $ w_ {ji} $. (Il semble qu'il n'y ait pas de signification particulière dans l'ordre de ~~. Dans la méthode de propagation des erreurs, l'expansion de l'expression se propage dans l'ordre inverse en fonction de l'erreur, elle est donc effectuée à l'inverse.)

$ \frac{\partial{E}}{\partial{v_{kj}}} $ La partie $ E_n $ de est 7-22 $ E_n (w, v) = - \ sum_ {k = 0} ^ {K-1} t_ {nk} log (y_ {nk}) $, donc $ \ frac {\ partial {E}} {\ partial {v_ {kj}}} $ Cela peut être calculé comme une différenciation partielle par la loi des chaînes.

Règle de chaîne ↓ $ \frac{\partial{E}}{\partial{v_{kj}}}= \frac{\partial{E}}{\partial{a_k}}\frac{\partial{a_k}}{\partial{v_{kj}}} $

** $ a_k $ est la somme de la valeur d'entrée et des variables fictives **

Ici, considérons d'abord de $ \ frac {\ partial {E}} {\ partial {a_k}} $ sur le côté gauche. Puisque $ E_n $ est omis dans la partie E, si vous le remplacez par l'équation 7-22, (Considérons quand k = 0 [Nombre de données 0?])

\frac{\partial{E}}{\partial{a_0}}= \ \frac{\partial}{\partial{a_0}}(-t_0logy_0-t_1logy_1-t_2logy_2)

Sera. Si nous utilisons la formule différentielle logarithmique ici -Comme expliqué, t est un signal enseignant et y est la sortie de l'entrée totale, donc il est lié à $ a_0 $. ・ Ici, t est un signal enseignant (un signal indiquant quelle classe), qui était représenté par t = [0,0,1] </ font>

Différenciation logimétrique: $ \begin{align*} (\log x)' = \frac{1}{x} \end{align*} $

Peut être exprimé comme ↓ $ \frac{\partial{E}}{\partial{a_0}}=\ -t_0\frac{1}{y_0}\frac{\partial{y_0}}{\partial{a_0}} -t_1\frac{1}{y_1}\frac{\partial{y_1}}{\partial{a_0}} -t_2\frac{1}{y_2}\frac{\partial{y_2}}{\partial{a_0}} \hspace{40pt}(7-27) $

Comme expliqué dans le chapitre 7 (première moitié), la fonction softmax est utilisée dans la partie $ \ partial {y_0} / \ partial {a_0} $. image.png

Par conséquent, si nous suivons la formule pour la différenciation partielle de la fonction softmax dérivée en 4-130, Officiel 4-130: \frac{\partial{y_j}}{\partial{x_i}}=y_j(l_{ij}-y_i) ・ I est le coefficient de valeur d'entrée et j est le coefficient de valeur de sortie. Ici, l vaut 1 quand $ i = j $ et 0 quand $ i \ neq {j} $

Cela ressemble à l'équation 7-28. $ \frac{\partial{y_0}}{\partial{a_0}}=y_0(1-y_0) $ ** Cette fois, y compris la variable fictive, M = K = 3, donc la partie l est 1 **

Les deux autres ont des coefficients de valeur d'entrée et des coefficients de valeur de sortie différents, de sorte que chacun $ \frac{\partial{y_1}}{\partial{a_0}}=-y_0y_1 $ $ \frac{\partial{y_2}}{\partial{a_0}}=-y_0y_2 $ Sera.

Remplacer 3 pour chaque Par conséquent, l'équation 7-27 devient (7-31):.

\begin{align}
\frac{\partial{E}}{\partial{a_0}}&=
-t_0\frac{1}{y_0}\frac{\partial{y_0}}{\partial{a_0}}
-t_1\frac{1}{y_1}\frac{\partial{y_1}}{\partial{a_0}}
-t_2\frac{1}{y_2}\frac{\partial{y_2}}{\partial{a_0}}\\
&=-t_0(1-y_0)+t_1y_0+t_2y_0\\
&=(t_0+t_1+t_2)y_0-t_0\\
&=y_0-t_0
\end{align}

À la fin, j'ai utilisé $ t_0 + t_1 + t_2 = 1 $.

$ y_0-t_0 $ représente l'erreur car $ y_0 $ est la sortie du neurone du premier nœud et $ t_0 $ est le signal de l'enseignant pour celui-ci.

** De même, en considérant les kèmes données (k = 1,2), cela devient comme l'équation (7-32). ** **

Et la partie gauche de la règle de chaîne de l'équation 7-25 peut être exprimée par 7-33. (Côté gauche de la différenciation partielle)

** Considérez la partie $ \ partial {a_k} / \ partial {v_kj} $ de l'équation 7-25. ** ** En considérant le cas de k = 0, la somme de $ a_0 $ est la somme de la sortie (z) de la couche intermédiaire et du poids v de la couche intermédiaire à la couche de sortie. $ a_0=v_{00}z_0+v_{01}z_1+v_{02}z_{02} $

Donc, résoudre $ a_0 $ pour chaque v ($ v_0, v_1, v_2 $) donne 7-37.

Donc, si vous écrivez 7-37 ensemble, cela devient 7-38.

** Des résultats similaires peuvent être obtenus même lorsque k = 1 et k = 2, donc tous sont résumés comme l'équation 7-39 ** $ \frac{\partial{a_k}}{\partial{v_{kj}}}=z_j\hspace{40pt}(7-39) $

Maintenant que les côtés gauche et droit de la différenciation partielle sont alignés, la combinaison est comme indiqué dans l'équation 7-40. </ font>

image.png

Ce que je dis dans l'équation 7-41, c'est que la valeur que je veux maintenant est $ v_ {kj} , qui est une valeur de poids appropriée, donc la théorie pour ajuster cette valeur est montrée dans la figure. ・ Puisque z veut être v qui élimine l'erreur entre la sortie y et le signal enseignant t avec la probabilité de prendre une valeur de 0 à 1 (car il passe par le sigmoïde), l'erreur ( \ delta_k ^ {(2)} $ Modifiez la valeur de v de ce montant.) ・ Lorsque l'erreur ($ \ delta_k ^ {(2)} $) est 0 = Si la sortie $ y_k $ et les données cibles (signal de l'enseignant) $ t_k $ correspondent, changez ($ y_k-t_k = 0 $) Minute $ - \ alpha \ delta_k ^ {(2)} z_j $ vaut 0.

(Important) P281:

Si la donnée cible $ t_k $ est 0, mais que la sortie $ y_k $ est supérieure à 0, l'erreur $ \ delta_k ^ {(2)} = (y_k-t_k) $ sera une valeur positive. Puisque $ z_j $ est toujours positif, par conséquent, $ - \ alpha \ delta_k ^ {(2)} z_j $ est un nombre négatif et $ v_ {kj} $ est corrigé pour diminuer. En d'autres termes, on peut interpréter que la sortie est trop grande et qu'une erreur se produit, donc le poids est changé dans le sens de la réduction de l'influence du neurone $ z_j $. De plus, si l'entrée $ z_j $ est grande, cela signifie que la contribution de la combinaison à la sortie est grande, donc on peut interpréter que la quantité de changement de $ v_ {kj} $ est également augmentée en conséquence.

Cette partie est très importante et ce que je dis ici est -Si les données de sortie y sont plus grandes que les données cibles t, le changement de v change pour réduire la sortie y (Est-ce v = 0,2?) ・ Et s'il n'y a pas d'erreur (y-t = 0), v ne change pas -De plus, si la valeur d'entrée z (qui représente la probabilité) est grande, la quantité de changement de v sera importante en conséquence.

Trouvez la différenciation avec w de E.

** Trouver $ \ partial {E} / \ partial {w_ {ji}} $ **

・ L'équation 7-43 est la même que 7-34 ・ L'équation 7-44 est la même que 7-39 ・ Par conséquent, l'équation 7-45 est la même que 7-41. Peut être traité comme.

** $ \ delta_ {j} ^ {(1)} $ est mis de côté pour le moment, et nous demandons ce que c'est. ** **

image.png

Premièrement, si les équations 7-43 sont partiellement différenciées par la loi des chaînes: $ \delta_j^{(1)}=\frac{\partial{E}}{\partial{b_j}}= \biggl( \sum_{k=0}^{K-1}\frac{\partial{E}}{\partial{a_k}} \frac{\partial{a_k}}{\partial{z_j}} \biggr) \frac{\partial{z_j}}{\partial{b_j}} $ Pour comprendre cela, nous devons comprendre ce qui suit: image.png

-Ici, $ g_0 $ et $ g_1 $ sont des fonctions de $ w_0 $ et w_1 $, et f est une fonction de g_0 $ et g_1 $, alors remplacez-les.

E(a_k(z_0,z_1))

Par conséquent, (4-62) peut être appliqué. Cela devient une fonction. $ \frac{\partial}{\partial{z_j}}E(a_0(z_0,z_1),a_1(z_0,z_1),a_2(z_0,z_1))=\sum_{k=0}^{K-1}\frac{\partial{E}}{\partial{a_k}}\frac{\partial{a_k}}{\partial{z_j}} $ Sera.

En combinant ces derniers, il peut être développé comme dans l'équation 7-46.

** ~~ Je ne sais pas pourquoi l'équation 7-47 devient $ v_ {kj} $ ~~, mais comme expliqué à la page 283, $ \ delta_ {j} ^ {(1)} $ est Devenir ** ** ・ Dans l'équation 7-47, il est dit que $ z_j $ devrait être partiellement différencié, donc soit v une constante, et seulement v qui reste comme z = 1 Puisqu'il reste, $ v_ {kj} $ reste. ** </ font>

Mettez-les ensemble ↓

\delta_{j}^{(1)}=h'(b_j)\sum_{k=0}^{K-1}v_{kj}\delta_{k}^{(2)}

P284 ~ Résumé de la méthode de propagation des erreurs

** Ce que nous voulons faire avec la méthode de propagation des erreurs est l'optimisation des paramètres de poids tels que w et v, qui est rendue possible en se propageant dans la direction opposée. ** **

-Parce que le premier $ h '(b_j) $ est converti par la fonction sigmoïde, $ b_j $ prend une valeur de 0 à 1, donc cette valeur prend toujours une valeur positive. ・ $ \ Frac {\ partial {E}} {\ partial {a_k}} = \delta_{k}^{(2)}= Puisqu'il est (y_k-t_k) h '(a_k) $, il est collecté en multipliant la sortie y de la couche de sortie par le poids v. (Si l'erreur dans la couche de sortie est importante, elle devient v * (grande valeur) et v fonctionne grandement.)

Dans (1), définissez d'abord w et v de manière appropriée pour obtenir la sortie y. (2) Puisqu'il y a un signal enseignant t, comparez ce t avec y. (3) Propagez l'erreur dans la direction opposée en utilisant les équations obtenues jusqu'à présent. Plus précisément, la somme est calculée en multipliant toutes les erreurs (y-t) et le poids v (deuxième couche), puis la somme est multipliée par $ h '(b_0) $ via la fonction sigmoïde de la couche intermédiaire. (C'est la formule de la figure de ③) ④ Mettez à jour w et v pour que l'erreur devienne 0. (Puisque l'erreur est connue, réglez-la sur 0.)

image.png image.png

Résumé de la méthode de propagation de retour d'erreur

image.png

Recommended Posts