wake-up-neo.com

Warum muss eine nichtlineare Aktivierungsfunktion in einem neuronalen Backpropagation-Netzwerk verwendet werden?

Ich habe einige Dinge über neuronale Netze gelesen und verstehe das allgemeine Prinzip eines einschichtigen neuronalen Netzes. Ich verstehe die Notwendigkeit zusätzlicher Ebenen, aber warum werden nichtlineare Aktivierungsfunktionen verwendet?

Auf diese Frage folgt die folgende: Was ist eine Ableitung der Aktivierungsfunktion, die bei der Rückübertragung verwendet wird?

119
corazza

Der Zweck der Aktivierungsfunktion besteht darin, Nichtlinearität in das Netzwerk einzuführen

auf diese Weise können Sie eine Antwortvariable (auch als Zielvariable, Klassenbeschriftung oder Punktzahl bezeichnet) modellieren, die nicht linear mit ihren erklärenden Variablen variiert

nicht linear bedeutet, dass die Ausgabe nicht aus einer linearen Kombination der Eingaben reproduziert werden kann (was nicht mit der Ausgabe identisch ist, die zu einer geraden Linie gerendert wird). -das Wort dafür ist affin ).

eine andere Art, sich das vorzustellen: Ohne eine nichtlineare Aktivierungsfunktion im Netzwerk würde sich ein NN, egal wie viele Schichten es hat, einfach verhalten wie ein einschichtiges Perzeptron, da die Summierung dieser Schichten nur eine weitere lineare Funktion ergibt (siehe Definition oben).

>>> in_vec = NP.random.Rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Eine allgemeine Aktivierungsfunktion, die in Backprop ( hyperbolischer Tangens ) verwendet wird, wurde von -2 bis 2 ausgewertet:

enter image description here

151
doug

Eine lineare Aktivierungsfunktion kann jedoch in sehr begrenzten Fällen verwendet werden. Um die Aktivierungsfunktionen besser zu verstehen, ist es wichtig, das gewöhnliche kleinste Quadrat oder einfach die lineare Regression zu betrachten. Eine lineare Regression zielt darauf ab, die optimalen Gewichte zu finden, die in Kombination mit der Eingabe zu einem minimalen vertikalen Effekt zwischen der erklärenden und der Zielvariablen führen. Kurz gesagt, wenn die erwartete Ausgabe die unten gezeigte lineare Regression widerspiegelt, können lineare Aktivierungsfunktionen verwendet werden: (obere Abbildung). Aber wie in der zweiten Abbildung unten führt die lineare Funktion nicht zu den gewünschten Ergebnissen: (mittlere Abbildung). Eine nichtlineare Funktion, wie unten gezeigt, würde jedoch die gewünschten Ergebnisse liefern: (untere Abbildung) enter image description here

Aktivierungsfunktionen können nicht linear sein, da neuronale Netzwerke mit einer linearen Aktivierungsfunktion nur eine Schicht tief wirksam sind, unabhängig davon, wie komplex ihre Architektur ist. Die Eingabe in Netzwerke ist normalerweise eine lineare Transformation (Eingabe * Gewichtung), aber die reale Welt und die Probleme sind nicht linear. Um die eingehenden Daten nichtlinear zu machen, verwenden wir eine nichtlineare Zuordnung, die Aktivierungsfunktion genannt wird. Eine Aktivierungsfunktion ist eine Entscheidungsfunktion, die das Vorhandensein eines bestimmten neuronalen Merkmals bestimmt. Die Zuordnung erfolgt zwischen 0 und 1, wobei Null bedeutet, dass das Merkmal nicht vorhanden ist, und eins bedeutet, dass es vorhanden ist. Leider können die kleinen Änderungen in den Gewichten nicht in den Aktivierungswerten widergespiegelt werden, da sie nur 0 oder 1 annehmen können. Daher müssen nichtlineare Funktionen kontinuierlich und zwischen diesen Bereichen differenzierbar sein. Ein neuronales Netzwerk muss in der Lage sein, Eingaben von -infinity bis + infinite zu verarbeiten. Es sollte jedoch in der Lage sein, eine Zuordnung zu einer Ausgabe vorzunehmen, die in einigen Fällen zwischen {0,1} oder {-1,1} liegt Notwendigkeit für Aktivierungsfunktion. Nichtlinearität wird in Aktivierungsfunktionen benötigt, da in einem neuronalen Netzwerk eine nichtlineare Entscheidungsgrenze über nichtlineare Kombinationen von Gewicht und Eingaben erzeugt werden soll.

39
chibole

Wenn wir nur lineare Aktivierungsfunktionen in einem neuronalen Netzwerk zulassen, ist die Ausgabe nur eine lineare Transformation der Eingabe, was nicht ausreicht, um einen niverseller Funktionsapproximator zu bilden. Ein solches Netzwerk kann nur als Matrixmultiplikation dargestellt werden, und Sie könnten von einem solchen Netzwerk kein sehr interessantes Verhalten erhalten.

Dasselbe gilt für den Fall, dass alle Neuronen affine Aktivierungsfunktionen haben (dh eine Aktivierungsfunktion in der Form f(x) = a*x + c, wobei a und c Konstanten sind, was a ist Verallgemeinerung von linearen Aktivierungsfunktionen), die nur zu einer affinen Transformation von Eingabe zu Ausgabe führen, was ebenfalls nicht sehr aufregend ist.

Ein neuronales Netzwerk kann sehr gut Neuronen mit linearen Aktivierungsfunktionen enthalten, wie beispielsweise in der Ausgabeschicht, aber diese erfordern die Gesellschaft von Neuronen mit einer nichtlinearen Aktivierungsfunktion in anderen Teilen des Netzwerks.

Hinweis: Eine interessante Ausnahme ist DeepMinds synthetische Gradienten , für die sie ein kleines neuronales Netzwerk verwenden, um den Gradienten in der Rückausbreitung vorherzusagen Bestehen die Aktivierungswerte, stellen sie fest, dass sie mit einem neuronalen Netzwerk ohne versteckte Schichten und mit nur linearen Aktivierungen davonkommen können.

20
HelloGoodbye

Die vorliegende Arbeit verwendet das Stone-Weierstrass-Theorem und den Cosinus-Squasher von Gallant und White, um zu ermitteln, dass Standard-Multilayer-Feedforward-Netzwerkarchitekturen mit beliebigen Squashing-Funktionen nahezu jede interessierende Funktion mit jedem gewünschten Genauigkeitsgrad approximieren können, vorausgesetzt, es sind ausreichend viele versteckt Einheiten sind verfügbar. " ( Hornik et al., 1989, Neural Networks )

Eine Squashing-Funktion ist beispielsweise eine nichtlineare Aktivierungsfunktion, die wie die Sigmoid-Aktivierungsfunktion auf [0,1] abgebildet wird.

4
alfa

Es gibt Zeiten, in denen ein rein lineares Netzwerk nützliche Ergebnisse liefern kann. Angenommen, wir haben ein Netzwerk aus drei Ebenen mit Formen (3,2,3). Wenn Sie die mittlere Ebene auf nur zwei Dimensionen beschränken, erhalten Sie das Ergebnis, dass die "Ebene der besten Anpassung" im ursprünglichen dreidimensionalen Raum ist.

Es gibt jedoch einfachere Möglichkeiten, lineare Transformationen dieser Form zu finden, z. B. NMF, PCA usw. In diesem Fall verhält sich ein mehrschichtiges Netzwerk jedoch NICHT wie ein einschichtiges Perzeptron.

3
markemus

Ein vorwärtskoppelndes neuronales Netzwerk mit linearer Aktivierung und einer beliebigen Anzahl von verborgenen Schichten entspricht nur einem linearen neuronalen neuronalen Netzwerk ohne verborgene Schicht. Betrachten wir zum Beispiel das neuronale Netzwerk in Abbildung mit zwei versteckten Schichten und ohne Aktivierung enter image description here

y = h2 * W3 + b3 
  = (h1 * W2 + b2) * W3 + b3
  = h1 * W2 * W3 + b2 * W3 + b3 
  = (x * W1 + b1) * W2 * W3 + b2 * W3 + b3 
  = x * W1 * W2 * W3 + b1 * W2 * W3 + b2 * W3 + b3 
  = x * W' + b'

Wir können den letzten Schritt ausführen, da die Kombination mehrerer linearer Transformationen durch eine Transformation ersetzt werden kann und die Kombination mehrerer Verzerrungsterme nur eine einzige Verzerrung ist. Das Ergebnis ist dasselbe, selbst wenn wir eine lineare Aktivierung hinzufügen.

Wir könnten dieses neuronale Netz also durch ein einschichtiges neuronales Netz ersetzen. Dies kann auf n Schichten erweitert werden. Dies zeigt an, dass das Hinzufügen von Schichten die Approximationsleistung eines linearen neuronalen Netzes überhaupt nicht erhöht. Wir benötigen nichtlineare Aktivierungsfunktionen, um nichtlineare Funktionen zu approximieren, und die meisten Probleme der realen Welt sind sehr komplex und nichtlinear. In der Tat kann, wenn die Aktivierungsfunktion nicht linear ist, ein zweischichtiges neuronales Netzwerk mit einer ausreichend großen Anzahl von versteckten Einheiten als ein universeller Funktionsapproximator erwiesen werden.

2
xashru

Um die Logik hinter nichtlinearen Aktivierungsfunktionen zu verstehen, sollten Sie zunächst verstehen, warum Aktivierungsfunktionen verwendet werden. Im Allgemeinen erfordern Probleme der realen Welt nichtlineare Lösungen, die nicht trivial sind. Wir brauchen also einige Funktionen, um die Nichtlinearität zu erzeugen. Grundsätzlich besteht eine Aktivierungsfunktion darin, diese Nichtlinearität zu erzeugen, während Eingabewerte in einen gewünschten Bereich abgebildet werden.

Die linearen Aktivierungsfunktionen können jedoch in sehr wenigen Fällen verwendet werden, in denen Sie keine verborgenen Ebenen wie die lineare Regression benötigen. Normalerweise ist es sinnlos, ein neuronales Netzwerk für diese Art von Problemen zu generieren, da dieses Netzwerk unabhängig von der Anzahl der verborgenen Schichten eine lineare Kombination von Eingaben generiert, die in nur einem Schritt erfolgen kann. Mit anderen Worten, es verhält sich wie eine einzelne Ebene.

Es gibt auch einige wünschenswertere Eigenschaften für Aktivierungsfunktionen wie kontinuierliche Differenzierbarkeit . Da wir Backpropagation verwenden, muss die erzeugte Funktion an jedem Punkt differenzierbar sein. Ich rate Ihnen dringend, auf der Wikipedia-Seite nach Aktivierungsfunktionen von hier zu suchen, um das Thema besser zu verstehen.

Ein geschichtetes NN aus mehreren Neuronen kann verwendet werden, um linear untrennbare Probleme zu lernen. Zum Beispiel kann die Funktion XOR mit zwei Ebenen mit Schrittaktivierungsfunktion erhalten werden.

1
david

Wie ich mich erinnere, werden Sigmoid-Funktionen verwendet, weil ihre Ableitung, die in den BP-Algorithmus passt, leicht zu berechnen ist, etwas Einfaches wie f (x) (1-f (x)). Ich erinnere mich nicht genau an die Mathematik. Tatsächlich kann jede Funktion mit Derivaten verwendet werden.

1
Anton

Lassen Sie mich es Ihnen so einfach wie möglich erklären:

Neuronale Netze werden bei der Mustererkennung richtig eingesetzt? Das Auffinden von Mustern ist eine sehr nichtlineare Technik.

Nehmen wir zum Zwecke des Arguments an, wir verwenden eine lineare Aktivierungsfunktion y = wX + b für jedes einzelne Neuron und setzen so etwas wie y> 0 -> Klasse 1, sonst Klasse 0.

Jetzt können wir unseren Verlust mithilfe des quadratischen Fehlerverlusts berechnen und zurückpropagieren, sodass das Modell gut lernt, richtig?

FALSCH.

  • Für die letzte ausgeblendete Ebene lautet der aktualisierte Wert w {l} = w {l} - (alpha) * X.

  • Für die vorletzte ausgeblendete Ebene lautet der aktualisierte Wert w {l-1} = w {l-1} - (alpha) * w {l} * X.

  • Für die i-te letzte ausgeblendete Ebene lautet der aktualisierte Wert w {i} = w {i} - (alpha) * w {l} ... * w {i + 1} * X.

Dies führt dazu, dass wir alle Gewichtsmatrizen miteinander multiplizieren, wodurch sich die folgenden Möglichkeiten ergeben: A) w {i} ändert sich kaum aufgrund des verschwindenden Gradienten B) w {i} ändert sich dramatisch und ungenau aufgrund des explodierenden Gradienten C) w {i} ändert sich gut genug, um uns eine gute Passform zu geben

Falls C eintritt, bedeutet dies, dass unser Klassifizierungs-/Vorhersageproblem höchstwahrscheinlich ein einfaches lineares/logistisches Regressorbasiertes Problem war und niemals ein neuronales Netzwerk erforderlich war!

Unabhängig davon, wie robust oder gut überarbeitet Ihr NN ist, wenn Sie eine lineare Aktivierungsfunktion verwenden, werden Sie niemals in der Lage sein, nichtlineare Probleme zu lösen, die eine Mustererkennung erfordern

0
Kaustubh J