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?
Antworten:
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).
Eine häufige Aktivierungsfunktion für Backprop ( hyperbolische Tangente ), bewertet von -2 bis 2:
quelle
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:
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.
quelle
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
, wobeia
undc
Konstanten 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.
quelle
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
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
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. 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.quelle
"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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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
quelle
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.
quelle
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 ).