Benutzer:Jonzbonz/Problem des verschwindenden Gradienten
Das Problem des verschwindenden Gradienten (engl.
) tritt beim Trainieren von künstlichen Neuronalen Netzen, insbesondere bei rekurrenten neuronalen Netzen, mithilfe des Backpropagation-Verfahrens auf.
Beschreibung
Im Folgenden wird von einem Netz mit Schichten ausgegangen. In jeder Schicht befindet sich nur Neuron, das jeweils über ein Gewicht mit dem Neuron aus der nächsten Schicht verbunden ist. Diese Neuronen werden aufsteigend numeriert, beschreibt dabei die Verbindung von Neuron zu Neuron . Die benötigte Änderungen dieser Gewichte in einem Lernschritt berechnen sich über die Kettenregel wie folgt:
Dabei ist
- die beliebig wählbare Lernrate im Intervall ,
- die Funktion des Fehlers, den das Netz für eine bestimmte Eingabe gemacht hat,
- die beim Feedforward-Schritt ausgerechnete Aktivität des Neurons ,
- der gewünschte Output des Netzes.
Die Kettenregel muss so lange rekursiv angewendet werden, bis man beim Gewicht eines Output-Neurons ankommt, für das sich der Term berechnen lässt. Die Formel für das Gewichtsupdate enthält dann Faktoren der Art .
Diese sind für gängige Aktivierungsfunktionen (Sigmoide) im Intervall , daher gilt:
Wie man sieht verschwindet der Gradient des Gewichts mit steigender Netztiefe , man spricht vom Problem des verschwindenden Gradienten. Daher kann ein solches tiefes Netz nicht mehr effektiv trainiert werden.
Bei rekurrenten neuronalen Netzen tritt das Problem deshalb besonders stark auf, da diese mit einem leicht abgewandelten Algorithmus der Backpropagation through time trainiert werden. Hierbei wird das Netz "ausgerollt", was selbst für das einfachste rekurrente Netz bereits eine Repräsentation als unendlich tiefes Feedforward-Netz bedeutet.
Lösung des Problems
globale Lernverfahren
Globale Lernverfahren umgehen das Problem des verschwindenden Gradienten komplett, indem sie kein Gebrauch von Backpropagation machen und damit auch gar keine Gradienten ausrechnen.
Evolutionäre Algorithmen
Die Gewichte der Verbindungen zwischen den Neuronen können einfach zusammengenommen als Genom für einen evolutionären Algorithmus dienen. Dieser kann dann beliebige Netze trainieren, ohne dass das Problem des verschwindenden Gradienten auftritt (denn er betreibt keine Backpropagation). Diese Methode ist allerdings im Allgemeinen viel langsamer als das Lernen mit Backpropagation.
Particle Swarm Optimization
Simulated Annealing
Verwendung anderer Transferfunktionen
Für Transferfunktionen, bei denen das Problem und auch das verwandte Problem des Explodierenden Gradienten nicht auftreten soll, muss gelten, dass deren Ableitung den Wert annimmt. Für die Rectified Linear Unit (ReLU) gilt:
Die Ableitung dieser Transferfunktion ist also in einem bestimmten Wertebereich genau . Allerdings sind ReLUs nicht universell einsetzbar, da sie nur lineare Zusammenhänge abbilden können.
Backpropagation mit Cuttoff
Hierbei überlegt man sich einen Parameter und bricht die Backpropagation ab, sobald dieser Wert erreicht wird: