Warum müssen Aktivierungsfunktionen im Kontext neuronaler Netze differenzierbar sein?

9

Warum sollte eine Aktivierungsfunktion eines neuronalen Netzwerks differenzierbar sein? Ist es unbedingt notwendig oder nur vorteilhaft?

nbro
quelle

Antworten:

3

Es ist fast zwingend erforderlich, eine differenzierbare Aktivierungsfunktion zu haben, es sei denn, Sie haben natürlich eine Alternative zum Training des Netzwerks, indem Sie den Fehler zurückgeben .

Parth Raghav
quelle
1
Bitte beantworten Sie die Fragen speziell mit Details und Argumenten, die Ihre Aussagen unterstützen.
nbro
Der Gleichrichter ist bei Null nicht differenzierbar, ist jedoch beim Training durch Rückausbreitung äußerst beliebt.
TC Proctor
3

Nein, es ist nicht erforderlich, dass eine Aktivierungsfunktion differenzierbar ist. Tatsächlich ist eine der beliebtesten Aktivierungsfunktionen, der Gleichrichter , bei Null nicht differenzierbar!

Dies kann zu Lernproblemen führen, da numerische Gradienten, die in der Nähe eines nicht differenzierbaren Punkts berechnet werden, falsch sein können. Der Abschnitt "Knicke" in diesen Vorlesungsunterlagen behandelt das Problem.

Ich weiß nicht genau, ob dies in der Praxis ein Problem ist und wie die Leute um sie herumkommen. Es gibt Möglichkeiten, diese falschen Verläufe für einige nicht differenzierbare Funktionen zu vermeiden, wie in den oben erwähnten Vorlesungsunterlagen erwähnt.

TC Proctor
quelle
2

Ausbildung

Während das "Ausführen" eines neuronalen Netzwerks mit beliebigen Aktivierungsfunktionen durchgeführt werden kann, möchten wir es normalerweise trainieren - dh seine Parameter so anpassen, dass das Ergebnis näher an dem liegt, was wir uns wünschen.

Dies geschieht üblicherweise durch Rückausbreitung und Variationen des Gradientenabfalls , was das Vorhandensein eines Gradienten erfordert - dh erfordert, dass die Aktivierungsfunktion differenzierbar ist. Die Anpassung jedes Parameters wird aus dem Gradienten der Aktivierungsfunktion (en) berechnet, auf die sich dieser Parameter auswirkt. Wenn Sie also keinen Gradienten erhalten können, kann dieser Ansatz nicht verwendet werden.

Peter ist
quelle
2

Lassen Sie uns Ihre Frage Punkt für Punkt durchgehen.

  • Sollte eine Aktivierungsfunktion differenzierbar sein?

Nein, es ist kein Zwang, differenzierbar zu sein. Wir verwenden Re-Lus, die einen nicht differenzierbaren Punkt bei 0 haben. Dies ist jedoch nur ein trivialer Fall, da der Punkt 0 niemals erreicht wird, wenn uns nicht die Präzisionspunkte ausgehen, um extrem weniger Zahlen zu bezeichnen.

Nehmen wir also ein anderes Beispiel, den Perceptron- Lernalgorithmus. In diesem Algorithmus gibt es keine zufriedenstellende Möglichkeit, die Leistung einer bestimmten Lösung zu bewerten. Wir haben also keine Kostenfunktion. Trotzdem können wir eine Lösung finden, wenn auch nicht die beste. Ich werde zu dem Punkt kommen, warum es später nicht verwendet wird.

NNs können allgemein als reine Funktionsapproximatoren betrachtet werden. Normalerweise geben Sie ihm eine kontinuierliche Funktion. Der NN passt sie an, indem er Teile dieser Funktion verlängert, verschiebt und verzerrt, indem er nur die Parameter der Funktion und nicht die Art der Funktion selbst ändert, dh sie zerfällt in dieselbe Art einer Fourier-Reihe wie zuvor, mit nur Phasen- und Amplitudenunterschieden. Sie können eine NN auch in Zeilen eines zufälligen Suchpuzzles entwerfen. Sie geben jedem Knoten einer beispielsweise versteckten Schicht NN einen Teil der zu approximierenden Funktion, dh zwischen einigen Intervallen-a < x < bsagen. Angenommen, die Verbindungsgewichte für jede Ausgabeebene sind festgelegt. Sie können nur den Teil der Funktion (dh Teile, die wie eine Stichsäge von einer zu approximierenden Funktion gebrochen sind), den Sie einem Knoten geben möchten, aus Ihrer festen Teilekiste ändern. Sie sehen also, in diesem Fall versucht der NN fast alle Kombinationen, verschiedenen Knoten unterschiedliche Teile zuzuweisen, bis die Funktion perfekt angenähert ist. Sie sehen, dies kann auch eine Art des Lernens für NN ohne kontinuierliche Funktion sein.

  • Warum sollte eine Aktivierungsfunktion eines neuronalen Netzwerks differenzierbar sein?

Die Hauptvorteile der differenzierbaren Funktion sind die dahinter stehenden Mathematik. Mit einfacher Mathematik können Sie problemlos große Datenmengen verarbeiten. Tausende von Jahren mathematischer Theorien können angewendet werden, um die Funktionsweise Ihres NN zu überprüfen, vorherzusagen, wie es funktionieren wird, und um die besten Algorithmen auszuwählen. In diskreten, nicht differenzierbaren Aktivierungsfunktionen haben Sie keine realistische Möglichkeit, das Endergebnis vorherzusagen.

Geben Sie hier die Bildbeschreibung ein
Sagen Sie in einem Problem wie diesem, wenn Sie das Perzeptron-Lernalgo anwenden. Haben Sie eine realistische Möglichkeit, vorherzusagen, wo die endgültige Entscheidungsgrenze liegen wird? Wenn Sie es mit kontinuierlichen Methoden trainieren, können Sie die Kostenfunktion leicht gegen die Gewichte zeichnen, die globalen Minima überprüfen und die Gewichte ermitteln, die die endgültigen Gewichte darstellen. Wir haben es also leicht durch Zeichnen gelöst (es gibt auch bestimmte Matrixmethoden).

  • Ist es vorteilhaft, eine differenzierbare Aktivierungsfunktion zu haben? Warum?

Warum ist es also vorteilhaft?

-> Endgültige Antworten leicht vorhersehbar (wenn relativ kleiner Datensatz).

-> Einfach zu zeichnende Grafiken und Visualisierung der Funktionsweise Ihres NN sowie entsprechende Anpassung Ihrer Hyperparameter.

-> Einfach anzuwendende, bewährte mathematische Werkzeuge zum Testen / Bewerten der Wirksamkeit Ihres Algorithmus.

-> Keine plötzlichen Fehleränderungen und daher ändern sich auch Ihre Gewichte nicht plötzlich aufgrund von Streuwerten.

Dies sind alle Vorteile, die ich mir vorstellen kann, und ich bin mir sicher, dass es noch mehr gibt. Alle diese Tools sind nicht für diskrete Algorithmen verfügbar, wenn Sie denken (können nicht die volle Intuition vermitteln - zu lang).

Ich habe hier etwas mehr Intuition gegeben:

Was ist der Zweck einer Aktivierungsfunktion in neuronalen Netzen?

Fühlen Sie sich frei, alles hinzuzufügen, was ich verpasst habe, indem Sie die Antwort bearbeiten.

Hoffe das hilft!

DuttaA
quelle
1

Wie bereits gesagt, ist die Aktivierungsfunktion in jedem neuronalen Netz nahezu differenzierbar, um das Training zu erleichtern und die Tendenz zu einem bestimmten Ergebnis zu berechnen, wenn ein Parameter geändert wird. Ich wollte aber nur darauf hinweisen, dass die Ausgabefunktion nicht in allen Fällen differenzierbar sein muss. Wir können nicht-sigmoidale Ausgangsknoten (Hard-Limiter-Schwellenwert) haben, diese aber dennoch mit Backpropagation und Gradientenabstieg trainieren.

Programmierer
quelle