Warum sind nicht nullzentrierte Aktivierungsfunktionen ein Problem bei der Rückübertragung?


26

Ich habe hier folgendes gelesen :

  • Sigmoid-Ausgänge sind nicht nullzentriert . Dies ist unerwünscht, da Neuronen in späteren Verarbeitungsebenen in einem neuronalen Netzwerk (dazu bald mehr) Daten empfangen würden, die nicht nullzentriert sind. Dies hat Auswirkungen auf die Dynamik beim Gradientenabstieg, denn wenn die in ein Neuron eingehenden Daten immer positiv sind (z. B. elementweise in )), wird der Gradient auf den Gewichten während der Rückausbreitung entweder alle positiv oder alle negativ sein (abhängig vom Gradienten des gesamten Ausdrucks x>0f=wTx+bwf). Dies könnte unerwünschte Zick-Zack-Dynamiken in die Gradientenaktualisierungen für die Gewichte einführen. Beachten Sie jedoch, dass die endgültige Aktualisierung für die Gewichte variable Vorzeichen haben kann, sobald diese Verläufe über einen Datenstapel hinweg addiert wurden, wodurch dieses Problem etwas gemindert wird. Dies ist daher ein Nachteil, hat jedoch weniger schwerwiegende Konsequenzen als das oben beschriebene Problem der gesättigten Aktivierung.

Warum würde es bei w zu ausschließlich positiven oder ausschließlich negativen Verläufen führen, wenn alle x>0 (elementweise) wären ?w



2
Ich hatte auch genau die gleiche Frage beim Anschauen von CS231n-Videos.
U-Bahn-Match

Antworten:


28

f=wichxich+b
dfdwich=xich
dLdwich=dLdfdfdwich=dLdfxich

xich>0dLdwichdLdf


w1w2

Wenn unser Ziel zufällig im Nordosten liegt, können wir uns nur im Zick-Zack bewegen, um dorthin zu gelangen, genau wie beim parallelen Parken auf engem Raum. (Verzeih meine Zeichnung)

Bildbeschreibung hier eingeben

Daher können rein positive oder rein negative Aktivierungsfunktionen (relu, sigmoid) für die gradientenbasierte Optimierung schwierig sein. Um dieses Problem zu lösen, können wir die Daten im Voraus so normalisieren, dass sie wie bei der Batch / Layer-Normalisierung auf Null zentriert sind.

f=wich(xich+bich).
dLdwich=dLdf(xich-bich)
xich


Bitte korrigieren Sie mich, wenn ich falsch liege, aber der Wert von dL / df nicht von x, dh xT, transponiert werden sollte, da wir hier die Idee von Jacobin verwenden würden.
Chinmay

fwTx+bLwx

Ja, es ist ein großer Tippfehler von meinem Ende. Ich meinte df / dw .... aber ich denke, es hängt mehr vom Vektor x ab und ob es ein Zeilenvektor oder ein Spaltenvektor ist
chinmay

@dontloo Entschuldigung für die sehr späte Antwort, aber was ist das Problem mit den Farbverläufen mit dem gleichen Vorzeichen wie dL/dfWarum ist das eine schlechte Sache?
Floyd

1
@floyd hi ich habe gerade ein paar updates für deine
frage
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.