Du hast Recht. Zumn>1Die Multiplikation von Ableitungen geht nicht unbedingt auf Null, da jede Ableitung möglicherweise größer als eins sein kann (bis zun).
Aus praktischen Gründen sollten wir uns jedoch fragen, wie einfach es ist, diese Situation aufrechtzuerhalten (die Multiplikation von Derivaten von Null fernzuhalten). Welche erweist sich als ziemlich hart im Vergleich zu relu, die 1 - Derivat = gibt, speziell jetzt, wo es auch eine Chance Gefälle Explosion .
Einführung
Angenommen, wir haben K Derivate (stehen für Tiefe K) wie folgt multipliziert
g=∂f(x)∂x∣∣∣x=x1⋯∂f(x)∂x∣∣∣x=xK
jeweils mit unterschiedlichen Werten bewertet x1 zu xK. In einem neuronalen Netzwerk jeweilsxi ist eine gewichtete Summe der Ausgaben h aus der vorherigen Schicht, z x=wth.
Wie K erhöht, wollen wir wissen, was es braucht, um das Verschwinden von zu verhindern g. Zum Beispiel für den Fall vonf(x)=tanh(x)
wir können das nicht verhindern, weil jede Ableitung kleiner als eins ist, außer für x=0dh
∂f(x)∂x=∂tanh(x)∂x=1−tanh2(x)<1 for x≠0
Es gibt jedoch eine neue Hoffnung, die auf Ihrem Vorschlag basiert. Zumf(x)=tanh(nx), Derivat könnte bis gehen n>1dh
∂f(x)∂x=∂tanh(nx)∂x=n(1−tanh2(nx))<n for x≠0.
Wann sind die Kräfte ausgeglichen?
Hier ist der Kern meiner Analyse:
Wie weit x muss weg von 0 eine Ableitung kleiner als haben
1n aufheben n Welches ist die maximal mögliche Ableitung?
Der Vater x muss weg von 0desto schwieriger ist es, unten ein Derivat herzustellen 1nJe einfacher es ist, zu verhindern, dass die Multiplikation verschwindet. Diese Frage versucht die Spannung zwischen Gut zu analysieren xist nahe Null und schlecht xist weit von Null entfernt. Zum Beispiel, wenn gut und schlechtx's sind ausgeglichen, sie würden eine Situation wie schaffen
g=n×n×1n×n×1n×1n=1.
Im Moment versuche ich optimistisch zu sein, indem ich nicht willkürlich groß betrachte xi's, da kann auch einer von ihnen bringen g willkürlich nahe Null.
Für den Sonderfall von n=1, irgendein |x|>0 führt zu einer Ableitung <1/1=1Daher ist es fast unmöglich, das Gleichgewicht zu halten (zu verhindern g vom Verschwinden) als Tiefe K erhöht sich z
g=0.99×0.9×0.1×0.995⋯→0.
Für den allgemeinen Fall von n>1Wir gehen wie folgt vor
∂tanh(nx)∂x<1n⇒n(1−tanh2(nx))<1n⇒1−1n2<tanh2(nx)⇒1−1n2−−−−−−√<|tanh(nx)|⇒x>t1(n):=1ntanh−1(1−1n2−−−−−−√)or x<t2(n):=−t1(n)=1ntanh−1(−1−1n2−−−−−−√)
So für |x|>t1(n)ist die Ableitung kleiner als 1n. In Bezug auf die Größe kleiner als eins ergibt sich daher die Multiplikation zweier Ableitungen mitx1∈R und |x2|>t1(n) zum n>1 entspricht einer beliebigen Ableitung für n=1dh
(∂tanh(nx)∂x∣∣∣x=x1∈R×∂tanh(nx)∂x∣∣∣x=x2,|x2|>t1(n))≡∂tanh(x)∂x∣∣∣x=z,z∈R∖{0}.
Mit anderen Worten,
K erwähnte Paare von Derivaten für n>1 ist so problematisch wie K
Derivate für n=1.
Nun, um zu sehen, wie einfach (oder schwer) es ist zu haben |x|>t1(n), lasst uns planen t1(n) und t2(n) (Schwellenwerte sind für eine kontinuierliche aufgetragen n).
Wie Sie sehen können, um eine Ableitung zu haben ≥1/nwird das größte Intervall bei erreicht n=2, was immer noch eng ist! Dieses Intervall ist[−0.658,0.658]Bedeutung für |x|>0.658ist die Ableitung kleiner als 1/2. Hinweis: Ein etwas größeres Intervall ist erreichbar, wennn darf kontinuierlich sein.
Basierend auf dieser Analyse können wir nun zu einer Schlussfolgerung gelangen:
Verhindern gvom Verschwinden, etwa die Hälfte oder mehr vonximuss innerhalb eines Intervalls wie sein [−0.658,0.658]
Wenn also ihre Ableitungen mit der anderen Hälfte gepaart sind, würde die Multiplikation jedes Paares bestenfalls über eins liegen (erforderlich, dass neinx ist weit in große Werte), dh
(∂f(x)∂x∣∣∣x=x1∈R×∂f(x)∂x∣∣∣x=x2∈[−0.658,0.658])>1
In der Praxis dürfte es jedoch mehr als die Hälfte davon gebenxist außerhalb von [−0.658,0.658] oder ein paar xist mit großen Werten, die verursachen gauf Null verschwinden. Es gibt auch ein Problem mit zu vielenxist nahe Null, was ist
Zum n>1, zu viele xnahe Null könnte zu einem großen Gefälle führen g≫1 (möglicherweise bis zu nK), der die Gewichte in größere Werte verschiebt (explodiert) (wt+1=wt+λg), die die xist in größere Werte (xt+1=wtt+1ht+1) das Gute umwandeln xsteht auf (sehr) schlechte.
Wie groß ist zu groß?
Hier führe ich eine ähnliche Analyse durch, um zu sehen
Wie weit x muss weg von 0 eine Ableitung kleiner als haben
1nK−1 den anderen aufzuheben K−1 xNehmen wir an, sie sind sehr nahe bei Null und haben den maximal möglichen Gradienten erreicht?
Um diese Frage zu beantworten, leiten wir die folgende Ungleichung ab
∂tanh(nx)∂x<1nK−1⇒|x|>1ntanh−1(1−1nK−−−−−−√)
das zeigt zum Beispiel für die Tiefe K=50 und n=2, ein Wert außerhalb [−9.0,9.0] erzeugt eine Ableitung <1/249. Dieses Ergebnis gibt eine Vorstellung davon, wie einfach es für ein paar istxist um 5-10, um die Mehrheit der guten aufzuheben x's.
Einbahnstraßen-Analogie
Basierend auf den vorherigen Analysen konnte ich eine qualitative Analogie unter Verwendung einer Markov-Kette aus zwei Zuständen liefern [g≫0] und [g∼0] das modelliert grob das dynamische Verhalten des Gradienten g wie folgt
Wenn das System in den Status wechselt [g∼0]Es gibt nicht viel Gefälle, um die Werte wieder in den Zustand zu versetzen (zu ändern) [g≫0]. Dies ähnelt einer Einbahnstraße, die irgendwann passiert wird, wenn wir ihr genügend Zeit geben (ausreichend große Epochen), da keine Konvergenz des Trainings stattfindet (andernfalls haben wir eine Lösung gefunden, bevor ein verschwindender Gradient auftritt).
Eine weitergehende Analyse des dynamischen Verhaltens des Gradienten wäre möglich, indem eine Simulation an tatsächlichen neuronalen Netzen durchgeführt wird (die möglicherweise von vielen Parametern wie Verlustfunktion, Breite und Tiefe des Netzes und Datenverteilung abhängt) und erstellt wird
- Ein Wahrscheinlichkeitsmodell, das anhand einer Gradientenverteilung angibt, wie oft das Verschwinden auftritt g oder eine gemeinsame Verteilung (x, g) oder (w, g), oder
- Ein deterministisches Modell (Karte), das angibt, welche Anfangspunkte (Anfangswerte der Gewichte) zum Verschwinden des Gradienten führen. möglicherweise begleitet von Trajektorien von Anfangs- bis Endwerten.
Explodierendes Gradientenproblem
Wir haben den Aspekt "Verschwindender Gradient" von behandelt tanh(nx). Im Gegenteil, für den Aspekt " explodierender Gradient " sollten wir uns Sorgen machen, zu viele zu habenxist nahe Null, was möglicherweise einen Gradienten erzeugen könnte nK, was zu numerischer Instabilität führt. Für diesen Fall eine ähnliche Analyse basierend auf Ungleichheit
∂tanh(nx)∂x>1⇒|x|<1ntanh−1(1−1n−−−−−√)
shows that for n=2, around half or more of xi's should be outside of [−0.441,0.441] to have g around O(1) away from O(nK). This leaves an even smaller region on RK in which K tanh(nx) functions would work well together (neither vanished, nor exploded); reminding that tanh(x) does not have the exploding gradient problem.