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


139

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

Dieser Frage folgt die folgende: Was ist eine Ableitung der Aktivierungsfunktion, die bei der Backpropagation verwendet wird?


beste Antwort von allen hier in künstlicher Intelligenz
eusoubrasileiro

Antworten:


167

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

Auf diese Weise können Sie eine Antwortvariable (auch als Zielvariable, Klassenbezeichnung oder Punktzahl bezeichnet) modellieren, die sich nicht linear mit ihren erklärenden Variablen ändert

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

Eine andere Art, es zu betrachten: Ohne eine nichtlineare Aktivierungsfunktion im Netzwerk würde sich ein NN, egal wie viele Schichten es hatte, wie ein einschichtiges Perzeptron verhalten, da das Summieren dieser Schichten nur eine weitere lineare Funktion ergeben würde (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 häufige Aktivierungsfunktion für Backprop ( hyperbolische Tangente ), bewertet von -2 bis 2:

Geben Sie hier die Bildbeschreibung ein


15
Warum sollten wir die Linearität beseitigen wollen?
Corazza

17
Wenn die Daten, die wir modellieren möchten, nicht linear sind, müssen wir dies in unserem Modell berücksichtigen.
Doug

38
Ein Satz Antwort: << egal wie viele Schichten sich wie ein einzelnes Perzeptron verhalten würden (weil lineare Funktionen zusammen nur eine lineare Funktion ergeben). >> . Nett!
Autonome

12
Dies ist ein wenig irreführend - wie eski erwähnte, sind gleichgerichtete lineare Aktivierungsfunktionen äußerst erfolgreich, und wenn unser Ziel nur darin besteht, Funktionen zu modellieren / zu approximieren, ist die Beseitigung der Nichtlinearität bei allen Schritten nicht unbedingt die richtige Antwort. Mit genügend linearen Teilen können Sie nahezu jede nichtlineare Funktion mit einem hohen Maß an Genauigkeit approximieren. Ich fand dies eine gute Erklärung dafür, warum gleichgerichtete Lineareinheiten funktionieren: stats.stackexchange.com/questions/141960/…
Tegan

11
@tegan Rectified linearen Aktivierungsfunktionen sind nicht-linear. Ich bin mir nicht sicher, was Ihr Kommentar mit der Antwort zu tun hat.
Endolith

49

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:

Geben Sie hier die Bildbeschreibung ein

Aktivierungsfunktionen können nicht linear sein, da neuronale Netze 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 * Gewicht), aber die reale Welt und die Probleme sind nicht linear. Um die eingehenden Daten nichtlinear zu machen, verwenden wir eine nichtlineare Zuordnung, die als Aktivierungsfunktion bezeichnet wird. Eine Aktivierungsfunktion ist eine Entscheidungsfunktion, die das Vorhandensein eines bestimmten neuronalen Merkmals bestimmt. Es wird zwischen 0 und 1 abgebildet, wobei Null das Fehlen des Merkmals bedeutet, während Eins das Vorhandensein des Merkmals bedeutet. Leider können sich die kleinen Änderungen der Gewichte nicht in den Aktivierungswerten widerspiegeln, da sie nur 0 oder 1 annehmen können. Daher müssen nichtlineare Funktionen kontinuierlich und zwischen diesem Bereich differenzierbar sein. Ein neuronales Netzwerk muss in der Lage sein, Eingaben von -infinity bis + infinite zu übernehmen, es sollte jedoch in der Lage sein, sie einer Ausgabe zuzuordnen, die in einigen Fällen zwischen {0,1} oder zwischen {-1,1} liegt - also die Notwendigkeit für die Aktivierungsfunktion. In Aktivierungsfunktionen wird Nichtlinearität benötigt, da das Ziel in einem neuronalen Netzwerk darin besteht, eine nichtlineare Entscheidungsgrenze über nichtlineare Kombinationen von Gewicht und Eingaben zu erzeugen.


1
+ Eins, dann kann abgeleitet werden, dass eine nichtlineare Funktion verwendet wird, um eine perfekte Grenze festzulegen?
Islam

1
Ja genau. Wenn nur 0 oder 1 erzeugt wird, kann es 0,4 oder 0,78 erzeugen, wodurch es über den Grenzbereich kontinuierlich wird.
Chibole

3
Ein neuronales Netzwerk muss in der Lage sein, Eingaben von -infinity bis + infinite zu übernehmen, aber es sollte in der Lage sein, sie einer Ausgabe zuzuordnen, die zwischen {0,1} oder zwischen {-1,1} liegt ... das erinnert mich Diese ReLU-Einschränkung besteht darin, dass sie nur in ausgeblendeten Schichten eines neuronalen Netzwerkmodells verwendet werden sollte.
Cloud Cho

21

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

Das Gleiche gilt für den Fall, dass alle Neuronen affine Aktivierungsfunktionen haben (dh eine Aktivierungsfunktion in der Form f(x) = a*x + c, wobei aund cKonstanten sind, was eine Verallgemeinerung linearer Aktivierungsfunktionen ist), die nur zu einer affinen Transformation von Eingabe zu Ausgabe führen , was auch 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 bilden die synthetischen Gradienten von DeepMind , für die sie ein kleines neuronales Netzwerk verwenden, um den Gradienten im Backpropagation-Durchlauf angesichts der Aktivierungswerte vorherzusagen, und sie stellen fest, dass sie mit der Verwendung eines neuronalen Netzwerks ohne versteckte Schichten und mit davonkommen können nur lineare Aktivierungen.


1
Funktionen höherer Ordnung können mit linearen Aktivierungsfunktionen unter Verwendung mehrerer versteckter Schichten angenähert werden. Der universelle Approximationssatz ist spezifisch für MLPs mit nur einer verborgenen Schicht.
Eski

Eigentlich glaube ich, dass Sie in Ihrer Aussage über affine Aktivierungsfunktionen, die zu einer affinen Transformation führen, richtig sind, aber die Tatsache, dass die Transformation durch Backpropagation (oder auf andere Weise) gelernt wird, macht sie für die ursprüngliche Frage nicht völlig nutzlos.
Eski

4
@eski Nein, Sie können Funktionen höherer Ordnung nicht nur mit linearen Aktivierungsfunktionen approximieren. Sie können nur lineare (oder affine, wenn Sie in jeder außer der letzten Ebene einen zusätzlichen konstanten Knoten haben) Funktionen und Transformationen modellieren, egal wie viele Ebenen Sie haben haben.
HelloGoodbye

Ist es richtig zu sagen, dass der Hauptzweck der Aktivierungsfunktion darin besteht, dem neuronalen Netzwerk zu ermöglichen, eine nichtlineare Entscheidungsgrenze zu erzeugen?
stackoverflowuser2010

@ stackoverflowuser2010 Das wäre eine Möglichkeit, es zu betrachten. Eine Aktivierungsfunktion bietet jedoch noch mehr. Der Wikipedia-Artikel über Aktivierungsfunktionen listet mehrere Aktivierungsfunktionen auf, von denen alle (bis auf eine) nichtlinear sind, und vergleicht verschiedene Eigenschaften, die eine Aktivierungsfunktion haben kann.
HelloGoodbye

9

Ein vorwärts gerichtetes 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 der Abbildung mit zwei verborgenen Schichten und ohne Aktivierung Geben Sie hier die Bildbeschreibung ein

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 Bias-Terme nur eine einzige Bias ist. Das Ergebnis ist das gleiche, auch wenn wir eine lineare Aktivierung hinzufügen.

Wir könnten dieses neuronale Netz also durch ein einschichtiges neuronales Netz ersetzen. Dies kann auf nSchichten 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. Wenn die Aktivierungsfunktion nicht linear ist, kann tatsächlich nachgewiesen werden, dass ein zweischichtiges neuronales Netzwerk mit einer ausreichend großen Anzahl versteckter Einheiten ein universeller Funktionsapproximator ist.


5

"Die vorliegende Arbeit verwendet das Stone-Weierstrass-Theorem und den Cosinus-Squasher von Gallant and White, um zu etablieren, dass Standard-Mehrschicht-Feedforward-Netzwerkarchitekturen unter Verwendung von Abritrary-Squashing-Funktionen praktisch jede interessierende Funktion mit jedem gewünschten Genauigkeitsgrad approximieren können, vorausgesetzt, es sind ausreichend viele verborgen 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.


3

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

Es gibt jedoch einfachere Möglichkeiten, lineare Transformationen dieser Form wie NMF, PCA usw. zu finden. Dies ist jedoch ein Fall, in dem sich ein mehrschichtiges Netzwerk NICHT so verhält wie ein einschichtiges Perzeptron.


2

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.

Lineare Aktivierungsfunktionen können jedoch in sehr begrenzten Fällen verwendet werden, in denen Sie keine versteckten 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 ausgeführt werden kann. Mit anderen Worten, es verhält sich wie eine einzelne Schicht.

Es gibt auch einige wünschenswertere Eigenschaften für Aktivierungsfunktionen wie die kontinuierliche Differenzierbarkeit . Da wir Backpropagation verwenden, muss die von uns generierte Funktion jederzeit differenzierbar sein. Ich rate Ihnen von der Wikipedia - Seite für Aktivierungsfunktionen zu überprüfen , hier ein besseres Verständnis für das Thema zu haben.


2

Hier finden Sie einige gute Antworten. Es wird gut sein, auf das Buch "Mustererkennung und maschinelles Lernen" von Christopher M. Bishop hinzuweisen. Es ist ein Buch, auf das es sich zu beziehen lohnt, um einen tieferen Einblick in verschiedene ML-bezogene Konzepte zu erhalten. Auszug aus Seite 229 (Abschnitt 5.1):

Wenn die Aktivierungsfunktionen aller versteckten Einheiten in einem Netzwerk als linear angenommen werden, können wir für jedes solche Netzwerk immer ein äquivalentes Netzwerk ohne versteckte Einheiten finden. Dies folgt aus der Tatsache, dass die Zusammensetzung aufeinanderfolgender linearer Transformationen selbst eine lineare Transformation ist. Wenn jedoch die Anzahl der versteckten Einheiten kleiner als die Anzahl der Eingabe- oder Ausgabeeinheiten ist, sind die Transformationen, die das Netzwerk erzeugen kann, nicht die allgemeinsten möglichen linearen Transformationen von Eingaben zu Ausgaben, da Informationen bei der Dimensionsreduzierung am verloren gehen versteckte Einheiten. In Abschnitt 12.4.2 zeigen wir, dass Netzwerke linearer Einheiten zu einer Hauptkomponentenanalyse führen. Im Allgemeinen besteht jedoch wenig Interesse an mehrschichtigen Netzwerken linearer Einheiten.


1

Wie ich mich erinnere, werden Sigmoidfunktionen 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 Ableitungen verwendet werden.


7
Wie ich mich erinnere, möchte die Funktion immer noch monoton ansteigen. Also keine Funktion.
Novak

1

Ein geschichtetes NN mehrerer Neuronen kann verwendet werden, um linear untrennbare Probleme zu lernen. Zum Beispiel kann die XOR-Funktion mit zwei Schichten mit einer Schrittaktivierungsfunktion erhalten werden.


0

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

Neuronale Netze werden bei der Mustererkennung richtig eingesetzt? Und das Finden von Mustern ist eine sehr nichtlineare Technik.

Nehmen wir aus Gründen der Argumentation an, wir verwenden für jedes einzelne Neuron eine lineare Aktivierungsfunktion y = wX + b und setzen so etwas wie wenn y> 0 -> Klasse 1, sonst Klasse 0.

Jetzt können wir unseren Verlust mithilfe des quadratischen Fehlerverlusts berechnen und zurückgeben, damit 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 verborgene 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, was zu den folgenden Möglichkeiten führt: 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

Wenn C auftritt, bedeutet dies, dass unser Klassifizierungs- / Vorhersageproblem höchstwahrscheinlich ein einfaches lineares / logistisches Regressor-basiertes Problem war und überhaupt kein neuronales Netzwerk benötigte!

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


-3

Es ist überhaupt keine Voraussetzung. Tatsächlich ist die gleichgerichtete lineare Aktivierungsfunktion in großen neuronalen Netzen sehr nützlich. Die Berechnung des Gradienten ist viel schneller und führt zu Sparsity, indem eine Mindestgrenze auf 0 gesetzt wird.

Weitere Informationen finden Sie im Folgenden: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Bearbeiten:

Es gab einige Diskussionen darüber, ob die gleichgerichtete lineare Aktivierungsfunktion als lineare Funktion bezeichnet werden kann.

Ja, es ist technisch gesehen eine nichtlineare Funktion, da sie am Punkt x = 0 nicht linear ist. Es ist jedoch immer noch richtig zu sagen, dass sie an allen anderen Punkten linear ist. Ich denke also nicht, dass es so nützlich ist, hier zu picken.

Ich hätte die Identitätsfunktion wählen können und es wäre immer noch wahr, aber ich habe ReLU wegen seiner jüngsten Beliebtheit als Beispiel gewählt.


8
Die gleichgerichtete lineare Aktivierungsfunktion ist (trotz ihres Namens) ebenfalls nicht linear. Es ist nur linear für positive Werte
Plankalkül

4
Sie sind technisch korrekt, es ist nicht linear über die gesamte Domäne, insbesondere bei x = 0 (es ist tatsächlich linear für x <0, da f (x) = 0 eine lineare Funktion ist). Es ist auch nicht differenzierbar, so dass die Gradientenfunktion auch nicht vollständig berechenbar ist, aber in der Praxis sind diese technischen Details leicht zu überwinden.
Eski

4
Er ist nicht nur technisch korrekt, er hat auch Recht in der Praxis (oder so ähnlich). Es ist die Nichtlinearität der ReLU, die sie nützlich macht. Wenn sie linear gewesen wären, hätten sie eine Aktivierungsfunktion auf dem Formular f(x) = a*x(da dies die einzige Art von linearer Aktivierungsfunktion ist), die als Aktivierungsfunktion unbrauchbar ist (es sei denn, Sie kombinieren sie mit nichtlinearen Aktivierungsfunktionen ).
HelloGoodbye

10
Rectified Linear Unit (ReLU) ist nicht linear, und es ist nicht nur ein "kleines Detail", das die Leute nicht auswählen, es ist ein wichtiger Grund, warum es von Anfang an nützlich ist. Ein neuronales Netzwerk mit der Identitätsmatrix oder einer regulären linearen Einheit, die als Aktivierungsfunktion verwendet wird, wäre nicht in der Lage, nichtlineare Funktionen zu modellieren. Nur weil es über 0 linear ist, heißt das nicht, dass es praktisch eine lineare Funktion ist. Eine undichte ReLU ist auch unter 0 "linear", aber es ist immer noch keine lineare Funktion und kann definitiv nicht einfach durch die Identitätsfunktion ersetzt werden. Nichtlinearität ist definitiv eine Voraussetzung.
Essam Al-Mansouri

3
Es ist eigentlich ein Konzept, das als stückweise lineare Funktion bezeichnet wird.
Eski
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.