Kapitel 7 [Error Back Propagation Method] P275 ~ (Mitte) [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]

Fehler-Back-Propagation-Methode (Back-Propagation)

Diese Fehler-Backpropagation-Methode verwendet die Informationen des Fehlers (Differenz zum Lehrersignal), der am Ausgang des Netzwerks vom Ausgangsschichtgewicht $ v_ {kj} $ zum Zwischenschichtgewicht $ w_ {ji} $ erzeugt wird. Dieser Name wird angegeben, weil das Gewicht in der entgegengesetzten Richtung der Eingabemethode aktualisiert wird. Dieses Fehler-Rück-Ausbreitungsverfahren ist jedoch das Gradientenverfahren selbst, und wenn das Gradientenverfahren auf das vorwärtsgerichtete neuronale Netz angewendet wird, wird das Fehler-Rück-Ausbreitungsverfahren natürlich abgeleitet.

Da die Klassifizierung durchgeführt wird, betrachten Sie den durchschnittlichen Kreuzentropiefehler von Gleichung 7-18 für die Fehlerfunktion (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) $

・ Ich möchte hier $ \ partielle {E} / \ partielle {w_ {ji}} $ (durchschnittlicher Schnittpunktentropiefehler) finden. ・ Wenn man die Kreuzentropie $ E_n $ betrachtet, wenn es Daten gibt, ist die Differenzierung $ \ partiell {E_n} / Da es mit \ partiell {w_ {ji}} $ berechnet wird, ist der Favorit $ \ partiell {E} / \ partiell {w_ {ji}} $ (durchschnittlicher Kreuzungsentropiefehler) $ \ partiell {E_n} / für die Anzahl der Daten. Finde \ partielle {w_ {ji}} $ und mittle sie ・ Hier wird t durch t = [0,0,1], Lehrersignal (Signal, das angibt, welche Klasse) </ font> dargestellt

Das ist ↓ $ \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}}} $

Betrachten Sie diesmal den Fall von D = 2, M = 2, K = 3.

D: Anzahl der Eingabewerte M: Anzahl der Zwischenschichten K: Anzahl der Ausgänge w, v: Gewicht

Da es zwei Gewichte gibt, w und v, finden Sie zuerst die Formel, die $ E_n $ teilweise durch $ v_ {kj} $ unterscheidet. Suchen Sie als nächstes die Formel, die $ E_n $ teilweise durch $ w_ {ji} $ unterscheidet. (Es scheint, dass es keine besondere Bedeutung in der Reihenfolge von ~~ gibt. Bei der Fehlerrückvermehrungsmethode breitet sich die Ausdruckserweiterung in umgekehrter Reihenfolge basierend auf dem Fehler aus, sodass sie von der umgekehrten Reihenfolge ausgeführt wird.)

$ \frac{\partial{E}}{\partial{v_{kj}}} $ Der $ E_n $ Teil von ist 7-22 $ E_n (w, v) = - \ sum_ {k = 0} ^ {K-1} t_ {nk} log (y_ {nk}) $, also $ \ frac {\ partielle {E}} {\ partielle {v_ {kj}}} $ Dies kann als partielle Differenzierung durch das Kettengesetz berechnet werden.

Kettenregel ↓ $ \frac{\partial{E}}{\partial{v_{kj}}}= \frac{\partial{E}}{\partial{a_k}}\frac{\partial{a_k}}{\partial{v_{kj}}} $

** $ a_k $ ist die Summe aus Eingabewert und Dummy-Variablen **

Betrachten Sie hier zunächst $ \ frac {\ partielle {E}} {\ partielle {a_k}} $ auf der linken Seite. Da $ E_n $ im E-Teil weggelassen wird, wenn Sie ihn durch Gleichung 7-22 ersetzen (Überlegen Sie, wann k = 0 [Anzahl der Daten 0?])

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

Wird sein. Wenn wir hier die logarithmische Differentialformel verwenden -Wie erklärt, ist t ein Lehrersignal und y ist die Ausgabe der Gesamteingabe, also hängt es mit $ a_0 $ zusammen. ・ Hier wird t durch t = [0,0,1], Lehrersignal (Signal, das angibt, welche Klasse) </ font> dargestellt

Logimetrische Differenzierung: $ \begin{align*} (\log x)' = \frac{1}{x} \end{align*} $

Kann ausgedrückt werden als ↓ $ \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) $

Wie in Kapitel 7 (erste Hälfte) erläutert, wird die Softmax-Funktion im Teil $ \ partielle {y_0} / \ partielle {a_0} $ verwendet. image.png

Wenn wir also der in 4-130 abgeleiteten Formel zur partiellen Differenzierung der Softmax-Funktion folgen, Offizielle 4-130: \frac{\partial{y_j}}{\partial{x_i}}=y_j(l_{ij}-y_i) ・ I ist der Eingabewertkoeffizient und j ist der Ausgabewertkoeffizient. Hier ist l 1, wenn $ i = j $, und 0, wenn $ i \ neq {j} $

Es sieht aus wie Gleichung 7-28. $ \frac{\partial{y_0}}{\partial{a_0}}=y_0(1-y_0) $ ** Dieses Mal, einschließlich der Dummy-Variablen, ist M = K = 3, also ist der l-Teil 1 **

Die verbleibenden zwei haben unterschiedliche Eingangswertkoeffizienten und Ausgangswertkoeffizienten, also jeweils $ \frac{\partial{y_1}}{\partial{a_0}}=-y_0y_1 $ $ \frac{\partial{y_2}}{\partial{a_0}}=-y_0y_2 $ Wird sein.

Ersetzen Sie jeweils 3 Daher wird Gleichung 7-27 zu (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}

Am Ende habe ich $ t_0 + t_1 + t_2 = 1 $ verwendet.

$ y_0-t_0 $ stellt den Fehler dar, da $ y_0 $ die Ausgabe des Neurons des ersten Knotens und $ t_0 $ das Lehrersignal dafür ist.

** In ähnlicher Weise wird es unter Berücksichtigung der k-ten Daten (k = 1,2) wie in Gleichung (7-32). ** **.

Und der linke Teil der Kettenregel von Gleichung 7-25 kann als 7-33 ausgedrückt werden. (Linke Seite der partiellen Differenzierung)

** Betrachten Sie den $ \ partiellen {a_k} / \ partiellen {v_kj} $ Teil von Gleichung 7-25. ** **. In Anbetracht des Falls von k = 0 ist die Summe von $ a_0 $ die Summe der Ausgabe (z) der Zwischenschicht und des Gewichts v von der Zwischenschicht zur Ausgangsschicht. $ a_0=v_{00}z_0+v_{01}z_1+v_{02}z_{02} $

Wenn Sie also $ a_0 $ für jedes v ($ v_0, v_1, v_2 $) lösen, erhalten Sie 7-37.

Wenn Sie also 7-37 zusammen schreiben, wird es 7-38.

** Ähnliche Ergebnisse können auch dann erhalten werden, wenn k = 1 und k = 2 sind, so dass alle als Gleichung 7-39 zusammengefasst sind ** $ \frac{\partial{a_k}}{\partial{v_{kj}}}=z_j\hspace{40pt}(7-39) $

Nachdem die linke und rechte Seite der partiellen Differenzierung ausgerichtet sind, ist die Kombination wie in Gleichung 7-40 gezeigt. </ font>

image.png

Was ich in Gleichung 7-41 sage, ist, dass der Wert, den ich jetzt möchte, $ v_ {kj} $ ist, was ein geeigneter Gewichtswert ist, daher ist die Theorie zum Anpassen dieses Werts in der Abbildung gezeigt. ・ Da z v sein möchte, wodurch der Fehler zwischen dem Ausgang y und dem Lehrersignal t mit der Wahrscheinlichkeit beseitigt wird, einen Wert von 0 bis 1 anzunehmen (weil er das Sigmoid durchläuft), ist der Fehler ($ \ delta_k ^ {(2)} ) Ändern Sie den Wert von v um diesen Betrag.) ・ Wenn der Fehler ( \ delta_k ^ {(2)} $) 0 ist = Wenn die Ausgabe $ y_k $ und die Zieldaten (Lehrersignal) $ t_k $ übereinstimmen, ändern Sie ($ y_k-t_k = 0 $) Minute $ - \ alpha \ delta_k ^ {(2)} z_j $ ist 0.

(Wichtig) P281:

Wenn die Zieldaten $ t_k $ 0 sind, die Ausgabe $ y_k $ jedoch größer als 0 ist, ist der Fehler $ \ delta_k ^ {(2)} = (y_k-t_k) $ ein positiver Wert. Da $ z_j $ immer positiv ist, ist $ - \ alpha \ delta_k ^ {(2)} z_j $ eine negative Zahl und $ v_ {kj} $ wird korrigiert, um abzunehmen. Mit anderen Worten kann interpretiert werden, dass die Ausgabe zu groß ist und ein Fehler auftritt, so dass das Gewicht in Richtung einer Eingrenzung des Einflusses des Neurons $ z_j $ geändert wird. Wenn die Eingabe $ z_j $ groß ist, bedeutet dies, dass der Beitrag der Kombination zur Ausgabe groß ist, sodass interpretiert werden kann, dass der Änderungsbetrag in $ v_ {kj} $ ebenfalls entsprechend erhöht wird.

Dieser Teil ist sehr wichtig und was ich hier sage, ist -Wenn die Ausgabedaten y größer als die Zieldaten t sind, ändert sich die Änderung von v, um die Ausgabe y zu reduzieren (Ist es v = 0,2?) ・ Und wenn kein Fehler vorliegt (y-t = 0), ändert sich v nicht

  • Auch wenn der Eingabewert z (der die Wahrscheinlichkeit darstellt) groß ist, ist der Änderungsbetrag in v entsprechend groß.

Finden Sie die Differenzierung mit w von E.

** Finde $ \ teilweise {E} / \ teilweise {w_ {ji}} $ **

・ Gleichung 7-43 ist dieselbe wie 7-34 ・ Gleichung 7-44 ist dieselbe wie 7-39 ・ Daher ist Gleichung 7-45 dieselbe wie 7-41. Kann verarbeitet werden als.

** $ \ delta_ {j} ^ {(1)} $ wird vorerst beiseite gelegt, und wir fragen, was es ist. ** **.

image.png

Erstens, wenn die Gleichungen 7-43 teilweise durch das Kettengesetz unterschieden werden: $ \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}} $ Um das zu verstehen, müssen wir Folgendes verstehen: image.png

-Hier sind $ g_0 $ und $ g_1 $ Funktionen von $ w_0 $ und w_1 $, und f ist eine Funktion von g_0 $ und g_1 $. Ersetzen Sie sie also.

E(a_k(z_0,z_1))

Daher kann (4-62) angewendet werden. Es wird eine Funktion. $ \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}} $ Wird sein.

Wenn diese kombiniert werden, kann sie wie in Gleichung 7-46 erweitert werden.

** ~~ Ich weiß nicht, warum Gleichung 7-47 zu $ v_ {kj} $ ~~ wird, aber wie auf Seite 283 erläutert, ist $ \ delta_ {j} ^ {(1)} $ Werden ** ** ・ In Gleichung 7-47 heißt es, dass $ z_j $ teilweise differenziert werden sollte, sodass anderes v als Konstante festgelegt wird und nur v, das als z = 1 verbleibt, ebenfalls eine Konstante ist. Da es bleibt, bleibt $ v_ {kj} $. ** </ font>

Setze sie zusammen ↓

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

P284 ~ Zusammenfassung der Methode zur Fehlerrückübertragung

** Was wir mit der Fehlerrückausbreitungsmethode machen wollen, ist die Optimierung von Gewichtsparametern wie w und v, die durch Ausbreitung in die entgegengesetzte Richtung ermöglicht wird. ** **.

  • Da das erste $ h '(b_j) $ von der Sigmoid-Funktion konvertiert wird, nimmt $ b_j $ einen Wert von 0 bis 1 an, sodass dieser Wert immer einen positiven Wert annimmt. ・ $ \ Frac {\ teilweise {E}} {\ teilweise {a_k}} = \delta_{k}^{(2)}= Da es (y_k-t_k) h '(a_k) $ ist, wird es durch Multiplizieren der Ausgabe y der Ausgabeschicht mit dem Gewicht v gesammelt. (Wenn der Fehler in der Ausgabeebene groß ist, wird er zu v * (großer Wert) und v funktioniert sehr gut.)

Stellen Sie in (1) zuerst w und v entsprechend ein, um die Ausgabe y zu erhalten. (2) Da es ein Lehrersignal t gibt, vergleiche dieses t mit y. (3) Propagieren Sie den Fehler in die entgegengesetzte Richtung unter Verwendung der bisher abgeleiteten Gleichungen. Insbesondere wird die Summe berechnet, indem alle Fehler (y-t) und das Gewicht v (zweite Schicht) multipliziert werden, und dann wird die Summe mit $ h '(b_0) $ durch die Sigmoidfunktion der Zwischenschicht multipliziert. (Das ist die Formel in der Abbildung von ③) ④ Aktualisieren Sie w und v so, dass der Fehler 0 wird. (Da der Fehler bekannt ist, setzen Sie ihn auf 0.)

image.png image.png

Zusammenfassung der Fehlerrückverbreitungsmethode

image.png

Recommended Posts