Wie kann man mit dem Backpropagation-Algorithmus Fehler im neuronalen Netzwerk ableiten?


10

Aus diesem Video von Andrew Ng gegen 5:00 Uhr

Geben Sie hier die Bildbeschreibung ein

Wie werden und abgeleitet? Was bedeutet eigentlich überhaupt? wird durch Vergleich mit y erhalten, ein solcher Vergleich ist für die Ausgabe einer verborgenen Ebene nicht möglich, oder?δ 2 δ 3 δ 4δ3δ2δ3δ4


Der Videolink funktioniert nicht. Bitte aktualisieren Sie es oder geben Sie einen Link zum Kurs an. Vielen Dank.
MadHatter

Antworten:


15

Ich werde Ihre Frage zum beantworten , aber denken Sie daran, dass Ihre Frage eine Unterfrage einer größeren Frage ist, weshalb:δi(l)

ij(l)=kθki(l+1)δk(l+1)(ai(l)(1ai(l)))aj(l1)

Erinnerung an die Schritte in neuronalen Netzen:

  • Schritt 1: Vorwärtsausbreitung (Berechnung des )ai(l)

  • Schritt 2a: Rückwärtsausbreitung: Berechnung der Fehlerδi(l)

  • Schritt 2b: Rückwärtsausbreitung: Berechnung des Gradienten von J ( ) unter Verwendung der Fehler und des , & THgr; & dgr; ( l + 1 ) i a ( l ) iij(l)Θδi(l+1)ai(l)

  • Schritt 3: Gradientenabstieg: Berechnen Sie das neue mit den Gradienten( l ) i jθij(l)ij(l)

Erstens, zu verstehen , was die sindδi(l) , was sie darstellen und warum Andrew NG es darüber zu reden , müssen Sie verstehen , was Andrew eigentlich bei diesem pointand tun , warum wir all diese Berechnungen zu tun: Er ist die Berechnung Gradient von , der im Gradientenabstiegsalgorithmus verwendet werden soll.( l ) i j θ ( l ) i jij(l)θij(l)

Der Gradient ist definiert als:

ij(l)=Cθij(l)

Da wir diese Formel nicht direkt lösen können, werden wir sie mit ZWEI MAGISCHEN TRICKS ändern, um zu einer Formel zu gelangen, die wir tatsächlich berechnen können. Diese endgültige verwendbare Formel lautet:

ij(l)=θ(l+1)Tδ(l+1).(ai(l)(1ai(l)))aj(l1)

Um zu diesem Ergebnis zu gelangen, besteht der ERSTE MAGISCHE TRICK darin, dass wir den Gradienten von mit : θ ( l ) i j δ ( l ) iij(l)θij(l)δi(l)

δ ( L ) i

ij(l)=δi(l)aj(l1)
Mit definiert (nur für den L-Index) als:δi(L)

δi(L)=Czi(l)

Und dann der ZWEITE MAGISCHE TRICK unter Verwendung der Beziehung zwischen und , um die anderen Indizes zu definieren. δ ( l + 1 ) iδi(l)δi(l+1)

δi(l)=θ(l+1)Tδ(l+1).(ai(l)(1ai(l)))

Und wie gesagt, wir können endlich eine Formel schreiben, für die wir alle Begriffe kennen:

ij(l)=θ(l+1)Tδ(l+1).(ai(l)(1ai(l)))aj(l1)

DEMONSTRATION DES ERSTEN MAGISCHEN TRICK: ij(l)=δi(l)aj(l1)

Wir haben definiert:

ij(l)=Cθij(l)

Mit der Kettenregel für höhere Dimensionen (Sie sollten diese Eigenschaft der Kettenregel WIRKLICH lesen) können wir Folgendes schreiben:

ij(l)=kCzk(l)zk(l)θij(l)

Allerdings da:

zk(l)=mθkm(l)am(l1)

Wir können dann schreiben:

zk(l)θij(l)=θij(l)mθkm(l)am(l1)

Aufgrund der Linearität der Differenzierung [(u + v) '= u' + v '] können wir schreiben:

zk(l)θij(l)=mθkm(l)θij(l)am(l1)

mit:

ifk,mi,j,  θkm(l)θij(l)am(l1)=0

ifk,m=i,j,  θkm(l)θij(l)am(l1)=θij(l)θij(l)aj(l1)=aj(l1)

Dann gilt für k = i (ansonsten ist es eindeutig gleich Null):

zi(l)θij(l)=θij(l)θij(l)aj(l1)+mjθim(l)θij(l)aj(l1)=aj(l1)+0

Schließlich gilt für k = i:

zi(l)θij(l)=aj(l1)

Als Ergebnis können wir unseren ersten Ausdruck des Gradienten schreiben :ij(l)

ij(l)=Czi(l)zi(l)θij(l)

Welches ist gleichbedeutend mit:

ij(l)=Czi(l)aj(l1)

Oder:

ij(l)=δi(l)aj(l1)

DEMONSTRATION DES ZWEITEN MAGISCHEN TRICK : oder:δi(l)=θ(l+1)Tδ(l+1).(ai(l)(1ai(l)))

δ(l)=θ(l+1)Tδ(l+1).(a(l)(1a(l)))

Denken Sie daran, dass wir posierten:

δ(l)=Cz(l)   and   δi(l)=Czi(l)

Wiederum ermöglicht uns die Kettenregel für höhere Dimensionen zu schreiben:

δi(l)=kCzk(l+1)zk(l+1)zi(l)

Ersetzen von , haben wir:Czk(l+1)δk(l+1)

δi(l)=kδk(l+1)zk(l+1)zi(l)

Konzentrieren wir uns nun auf . Wir haben:zk(l+1)zi(l)

zk(l+1)=jθkj(l+1)aj(l)=jθkj(l+1)g(zj(l))

Dann leiten wir diesen Ausdruck bezüglich :zk(i)

zk(l+1)zi(l)=jθkj(l)g(zj(l))zi(l)

Aufgrund der Linearität der Ableitung können wir schreiben:

zk(l+1)zi(l)=jθkj(l)g(zj(l))zi(l)

Wenn j i, dann istθkj(l)g(zj(l))zi(l)=0

Als Konsequenz:

zk(l+1)zi(l)=θki(l)g(zi(l))zi(l)

Und dann:

δi(l)=kδk(l+1)θki(l)g(zi(l))zi(l)

Als g '(z) = g (z) (1-g (z)) haben wir:

δi(l)=kδk(l+1)θki(l)g(zi(l))(1g(zi(l))

Und als haben wir:g(zi(l)=ai(l)

δi(l)=kδk(l+1)θki(l+1)ai(l)(1ai(l))

Und schließlich mit der vektorisierten Notation:

ij(l)=[θ(l+1)Tδ(l+1)(ai(l)(1ai(l)))][aj(l1)]

1
Vielen Dank für Ihre Antwort. Ich habe dich gestimmt !! Könnten Sie bitte die Quellen zitieren, auf die Sie sich bezogen haben, um zur Antwort zu gelangen ... :)
Adithya Upadhya

@tmangin: Nach Andrew Ng Talk haben wir ist der Fehler des Knotens j in Schicht l. Wie haben Sie die Definition bekommen . δj(i)δj(i)=CZj(l)
Phuong

@phuong Eigentlich habe ich Recht zu fragen: Nur der mit dem höchsten "l" -Index L ist definiert als Während die Deltas mit niedrigeren "l" durch die folgende Formel definiert sind: δ ( L ) i = C.
δi(L)
δ ( l ) i =θ(l+1)Tδ(l+1). (a ( l ) i (1-a ( l ) i ))
δi(L)=Czi(l)
δi(l)=θ(l+1)Tδ(l+1).(ai(l)(1ai(l)))
tmangin

3
Ich empfehle dringend, die vektorielle Backprop- Notation zur Berechnung der Gradienten zu lesen .
CKM

Ihre endgültige verwendbare Formel ist nicht die von Andrew Ng, was es wirklich frustrierend macht, Ihrem Beweis zu folgen. Er hatte ∇ (l) ij = θ (l) Tδ (l + 1). ∗ (a (l) i (1 - a (l) i)) ∗ a (l - 1) j, nicht θ (l + 1) Tδ (l + 1)
Aziz Javed

0

Diese Berechnung hilft. Der einzige Unterschied zwischen diesem Ergebnis und Andrews Ergebnis besteht in der Definition von Theta. In Andrews Definition ist z (l + 1) = Theta (l) * a (l). Bei dieser Berechnung ist z (l + 1) = Theta (l + 1) * a (l). Eigentlich gibt es also keinen Unterschied.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.