ReLU-Neuronen geben Null aus und haben für alle negativen Eingaben Null-Ableitungen. Wenn die Gewichte in Ihrem Netzwerk immer zu negativen Eingaben in ein ReLU-Neuron führen, trägt dieses Neuron effektiv nicht zum Training des Netzwerks bei. Mathematisch gesehen ist der Gradientenbeitrag zu den Gewichtsaktualisierungen, die von diesem Neuron ausgehen, immer Null (einige Details finden Sie im mathematischen Anhang).
Wie hoch ist die Wahrscheinlichkeit, dass Ihre Gewichte negative Zahlen für alle Eingaben in ein bestimmtes Neuron produzieren? Es ist im Allgemeinen schwer zu beantworten, aber eine Möglichkeit, wie dies passieren kann, besteht darin, ein Update der Gewichte zu umfangreich zu gestalten. Es sei daran erinnert, dass neuronale Netze typischerweise durch Minimieren einer Verlustfunktion in Bezug auf die Gewichte unter Verwendung eines Gradientenabfalls trainiert werden . Das heißt, die Gewichte eines neuronalen Netzwerks sind die "Variablen" der Funktion (der Verlust hängt vom Datensatz ab, aber nur implizit: Es ist typischerweise die Summe über jedes Trainingsbeispiel, und jedes Beispiel ist effektiv eine Konstante). Da der Gradient einer Funktion immer in die Richtung des steilsten Anstiegs zeigt, müssen wir nur den Gradienten von berechnenL(W)LLin Bezug auf die Gewichte und in die entgegengesetzte Richtung ein wenig bewegen, dann spülen und wiederholen. Auf diese Weise enden wir in einem (lokalen) mindestens bis . Wenn Ihre Eingaben ungefähr auf der gleichen Skala liegen, können Sie daher bei einem großen Schritt in Richtung des Verlaufs Gewichte erhalten, die ähnliche Eingaben ergeben, die möglicherweise negativ sind.WL
Im Allgemeinen hängt das, was passiert, davon ab, wie Informationen durch das Netzwerk fließen. Sie können sich vorstellen, dass die Werte, die Neuronen im Laufe des Trainings produzieren, schwanken und es den Gewichten ermöglichen, den gesamten Datenfluss durch einige von ihnen zu unterbrechen. (Manchmal kann es jedoch vorkommen, dass diese ungünstigen Konfigurationen aufgrund von Gewichtsaktualisierungen früher im Netzwerk verbleiben!). Ich habe diese Idee in einem Blogbeitrag über die Gewichtsinitialisierung - die ebenfalls zu diesem Problem beitragen kann - und ihre Beziehung zum Datenfluss untersucht. Ich denke, mein Punkt hier kann durch eine Handlung aus diesem Artikel veranschaulicht werden:
Das Diagramm zeigt Aktivierungen in einem 5-Schicht-Mehrschicht-Perceptron mit ReLU-Aktivierungen nach einem Durchlauf durch das Netzwerk mit verschiedenen Initialisierungsstrategien. Sie sehen, dass abhängig von der Gewichtskonfiguration die Ausgänge Ihres Netzwerks gedrosselt werden können.
Mathematischer Anhang
Mathematisch ist, wenn die Verlustfunktion Ihres Netzwerks ist, die Ausgabe des ten Neurons in der ten Schicht, ist das ReLU-Neuron und ist die lineare Eingabe in die -ste Schicht, dann durch die Kettenregel die Ableitung des Verlusts in Bezug auf ein Gewicht, das das te und - st Schichten istLx(i)jjif(s)=max(0,s)s(i)j(i+1)i(i+1)
∂L∂w(i)jk=∂L∂x(i+1)k∂x(i+1)k∂w(i)jk.
Der erste Term rechts kann rekursiv berechnet werden. Der zweite Term auf der rechten Seite ist der einzige Ort, an dem das Gewicht direkt beteiligt ist und in den unterteilt werden kannw(i)jk
∂x(i+1)k∂w(i)jk=∂f(s(i)j)∂s(i)j∂s(i)j∂w(i)jk=f′(s(i)j)x(i)j.
Daraus können Sie ersehen, dass, wenn die Ausgaben immer negativ sind, die in das Neuron führenden Gewichte nicht aktualisiert werden und das Neuron nicht zum Lernen beiträgt.