Frage:
Warum ist eine Erhöhung der Nichtlinearität neuronaler Netze erwünscht?
user158528
2017-04-23 21:31:42 UTC
view on stackexchange narkive permalink

Auf der Wikipedia-Seite von Faltungs-Neuronalen Netzen wird angegeben, dass gleichgerichtete lineare Einheiten angewendet werden, um die Nichtlinearität der Entscheidungsfunktion und des gesamten Netzwerks zu erhöhen: https://en.wikipedia.org/wiki / Convolutional_neural_network # ReLU_layer

Warum ist eine Erhöhung der Nichtlinearität erwünscht?Welche Auswirkung hat dies auf die Gesamtleistung des Modells?

Sechs antworten:
DeltaIV
2018-03-22 03:44:56 UTC
view on stackexchange narkive permalink

Dieser Teil des Wikipedia-Artikels lässt zu wünschen übrig. Lassen Sie uns zwei Aspekte trennen:

Die Notwendigkeit nichtlinearer Aktivierungsfunktionen

Es ist offensichtlich, dass ein Feedforward-neuronales Netzwerk mit linearen Aktivierungsfunktionen und $ n $ span> -Schichten jeweils $ m $ hat span> versteckte Einheiten (der Kürze halber lineares neuronales Netzwerk) entspricht einem linearen neuronalen Netzwerk ohne versteckte Schichten. Beweis:

$$ y = h (\ mathbf {x}) = \ mathbf {b} _n + W_n (\ mathbf {b} _ {n-1} + W_ {n -1} (\ dots (\ mathbf {b} _1 + W_1 \ mathbf {x}) \ dots)) = \ mathbf {b} _n + W_n \ mathbf {b} _ {n-1} + W_nW_ {n- 1} \ mathbf {b} _ {n-2} + \ dots + W_nW_ {n-1} \ dots W_1 \ mathbf {x} = \ mathbf {b} '+ W' \ mathbf {x} $$ span>

Somit ist klar, dass das Hinzufügen von Schichten ("tief gehen") die Approximationsleistung eines linearen neuronalen Netzwerks überhaupt nicht erhöht , anders als bei einem nichtlinearen neuronalen Netzwerk.

Außerdem sind nichtlineare Aktivierungsfunktionen erforderlich, damit der universelle Approximationssatz für neuronale Netze gültig ist. Dieser Satz besagt, dass unter bestimmten Bedingungen für jede stetige Funktion $ f: [0,1] ^ d \ bis \ mathbb {R} $ span> und jede $ \ epsilon>0 $ span> gibt es ein neuronales Netzwerk mit einer verborgenen Schicht und einer ausreichend großen Anzahl versteckter Einheiten $ m $ span>, die approximiert $ f $ span> auf $ [0,1] ^ d $ span> gleichmäßig auf $ \ epsilon $ span>. Eine der Bedingungen für die Gültigkeit des universellen Approximationssatzes ist, dass das neuronale Netzwerk eine Zusammensetzung von nichtlinearen Aktivierungsfunktionen ist: Wenn nur lineare Funktionen verwendet werden, ist der Satz nicht mehr gültig. Daher wissen wir, dass es über Hyperwürfel einige kontinuierliche Funktionen gibt, die wir mit linearen neuronalen Netzen einfach nicht genau approximieren können.

Dank des Tensorflow-Spielplatzes können Sie die Grenzen linearer neuronaler Netze in der Praxis erkennen. Ich habe ein lineares neuronales Netzwerk mit 4 versteckten Schichten zur Klassifizierung aufgebaut. Wie Sie sehen können, kann das lineare neuronale Netzwerk unabhängig von der Anzahl der verwendeten Schichten nur lineare Trenngrenzen finden, da es einem linearen neuronalen Netzwerk ohne versteckte Schichten, d. H. Einem linearen Klassifizierer, entspricht.

Die Notwendigkeit von ReLU

Die Aktivierungsfunktion $ h (s) = \ max (0, cs) $ span> wird nicht verwendet, weil "sie die Nichtlinearität der Entscheidungsfunktion erhöht": was auch immer Das kann bedeuten, dass ReLU nicht nichtlinearer ist als $ \ tanh $ span>, Sigmoid usw. Der eigentliche Grund, warum es verwendet wird, ist, dass beim Stapeln von immer mehr Ebenen in a CNN wurde empirisch beobachtet, dass ein CNN mit ReLU viel einfacher und schneller zu trainieren ist als ein CNN mit $ \ tanh $ span> (die Situation mit einem Sigmoid ist noch schlimmer ). Wieso ist es so? Derzeit gibt es zwei Theorien:

  • $ \ tanh (s) $ span> hat das Problem verschwindender Gradient . Da die unabhängige Variable $ s $ span> an $ \ pm \ infty $ span> geht, die Ableitung von $ \ tanh (s) $ span> geht auf 0:

enter image description here

Dies bedeutet, dass die Farbverläufe kleiner werden, wenn mehr Ebenen gestapelt werden und kleiner. Seit dem Schritt im Gewichtsraum der Backpropagation Der Algorithmus ist proportional zur Größe des Gradienten und verschwindet Gradienten bedeuten, dass das neuronale Netzwerk nicht mehr trainiert werden kann. Dies äußert sich in exponentiell zunehmenden Trainingszeiten mit der Zunahme der Anzahl der Schichten. Im Gegenteil, die Die Ableitung von ReLU ist konstant (gleich $ c $ span>), wenn $ s>0 $ span>, egal wie viele Ebenen stapeln wir (es ist auch gleich 0, wenn $ s<0 $ span> führt, was dazu führt das Problem tote Neuronen , aber dies ist ein weiteres Problem).

  • Es gibt Theoreme, die garantieren, dass lokale Minima unter bestimmten Bedingungen globale Minima sind (siehe hier).Einige der Annahmen dieser Theoreme gelten nicht, wenn die Aktivierungsfunktion ein $ \ tanh $ span> oder ein Sigmoid ist, aber sie gelten, wenn die Aktivierungsfunktion eine ReLU ist.
+1 für "da es einem linearen neuronalen Netzwerk ohne verborgene Schichten entspricht, d. H. Einem linearen Klassifikator."als schöne Zusammenfassung des obigen Beweises
Aksakal
2018-03-21 23:49:48 UTC
view on stackexchange narkive permalink

Ich gebe Ihnen eine sehr lockere analogy (Hervorhebung ist hier wichtig), die Ihnen helfen kann, die Intuition zu verstehen. Es gibt dieses technische Zeichenwerkzeug, das als französische Kurve bezeichnet wird. Hier ein Beispiel:

enter image description here

Wir wurden geschult, um es in der High School in einer technischen Zeichenklasse zu verwenden. Heutzutage wird dieselbe Klasse mit CAD-Software unterrichtet, sodass Sie möglicherweise nicht darauf gestoßen sind. Sehen Sie, wie Sie sie in diesem Video verwenden.

Hier ist ein gerades Lineal:

enter image description here

Können Sie mit einem geraden Lineal eine gekrümmte Linie zeichnen? Natürlich kannst du! Es ist jedoch mehr Arbeit. Schauen Sie sich dieses Video an, um den Unterschied zu erkennen.

Es ist effizienter, eine französische Kurve zum Zeichnen gekrümmter Linien zu verwenden als mit einem geraden Lineal. Sie müssten viele kleine Linien machen, um mit letzteren eine glatte Kurve zu zeichnen. enter image description here

enter image description here

Beim maschinellen Lernen ist es nicht genau dasselbe, aber diese Analogie vermittelt Ihnen eine Vorstellung davon, warum nichtlineare Aktivierung in vielen Fällen besser funktioniert: Ihre Probleme sind nichtlinear, und nichtlineare Teile können effizienter sein, wenn Sie sie zu einer Lösung für kombinieren nichtlineare Probleme.

mochte dein Beispiel +1.Es wird jedoch davon ausgegangen, dass wir eine Kurve und keine Linie zeichnen möchten.Übrigens, macht es Ihnen etwas aus, das Lineal kleiner zu machen?
@hxd1011, für ein lineares Modell, eine "Linie", es gibt keine Notwendigkeit in ML, eine einfache lineare Regression reicht aus
Ja, aber viele Leute denken, lineare Regression und logistische Regression seien "maschinelles Lernen".
@hxd1011, unterrichten sie beide in ML-Klassen, da die Ebenen in ML der Regression sehr ähnlich sind, wenn es darum geht, Eingaben in Ausgaben umzuwandeln.
Es ist ein bisschen mehr als das.1) Ein beliebig tiefes neuronales Netzwerk mit linearen Aktivierungsfunktionen (auch als lineares neuronales Netzwerk bezeichnet) entspricht einem linearen neuronalen Netzwerk ohne versteckte Schichten.Das Hinzufügen von "viel mehr Schichten" ("tief gehen") hilft also überhaupt nicht bei der Approximationsleistung des linearen neuronalen Netzwerks.
2) Das Hinzufügen von Neuronen ("weit gehen") hilft nur so viel.Der universelle Approximationssatz neuronaler Netze gilt nicht für lineare neuronale Netze, daher wissen wir, dass es Kontinuumsfunktionen über Hyperwürfeln gibt, die wir mit einem linearen neuronalen Netz niemals auf die gewünschte Genauigkeit annähern können, egal wie viele Schichten und/ oder Einheiten, die wir hinzufügen.
+1 Ich weiß, dass es technische Einwände gegen diese Antwort geben wird, aber das Bild ist einprägsam und gleicht die Tatsache, dass es eine Analogie ist, mehr als aus.
Ich bin mir bei dieser Analogie nicht sicher (oder ich interpretiere sie falsch).Es scheint mir, dass die ReLU-Aktivierungsfunktion, nach der das OP fragt, eher der Verwendung eines Lineals zur Approximation einer Kurve mit kleinen, geraden Segmenten und weniger der französischen Kurve ähnelt (weil die Verwendung linearer Kombinationen und Zusammensetzungen wie in neuronalen Netzen ergibtstückweise lineare Funktionen).Das Wichtigste wäre dann die Tatsache, dass Sie Kurven erstellen dürfen, die insgesamt nicht gerade sind, und nicht die Teile, aus denen Sie sie zusammensetzen, nicht wahr?
@user20160, Die Tatsache, dass ReLU stückweise linear ist, ist in dieser Diskussion nicht wichtig.Wichtig ist, dass es nicht linear ist.Die Tatsache, dass es lineare Teile hat, spielt eine Rolle in Bezug auf die Rechengeschwindigkeit und anschließend die Optimierungseffizienz.
noblebadger
2018-03-21 23:29:02 UTC
view on stackexchange narkive permalink

Warum ist eine Erhöhung der Nichtlinearität erwünscht?

Einfach ausgedrückt: Je „nichtlinearer“ unsere Entscheidungsfunktion ist, desto komplexer können Entscheidungen getroffen werden. In vielen Fällen ist dies erwünscht, da es unwahrscheinlich ist, dass die Entscheidungsfunktion, die wir mit dem neuronalen Netzwerk modellieren, eine lineare Beziehung zur Eingabe hat. Wenn mit ReLU, einer nichtlinearen Aktivierungsfunktion, mehr Neuronen in den Schichten vorhanden sind, sollte die Ausgabe des Netzwerks eine nichtlineare Beziehung zur Eingabe haben. "Eingabe" sind in diesem Fall die gewundenen Bildsegmente.

Welche Auswirkungen hat dies auf die Gesamtleistung des Modells?

Das hängt vom Problem ab. Berücksichtigung von CNNs: Wenn die Beziehung zwischen der Klasse, die Sie vorhersagen möchten, und in diesem Fall gewundenen Bildsegmenten "nicht linear" ist, dann Die Leistung des Netzwerks wird verbessert, wenn die vollständig verbundenen Schichten (Entscheidungsfunktion) nichtlineare Aktivierungsfunktionen (wie ReLU) haben. Wenn Sie mehr Ebenen stapeln, erhöht sich auch Ihre Nichtlinearität.

Haitao Du
2018-03-21 23:49:56 UTC
view on stackexchange narkive permalink

Weil das lineare Modell nur eine begrenzte "Kapazität" zur Ausführung der Aufgabe hat.Betrachten Sie den hier gezeigten Datensatz Warum funktioniert Feature Engineering?, wir können keine Linie ziehen, um zwei Klassen zu trennen.

Andererseits werden die Klassifizierungsaufgaben mithilfe der nichtlinearen Transformation (Feature Engineering) einfach.

Bei neuronalen Netzen handelt es sich normalerweise um ein sehr großes und komplexes System, das eine nichtlineare Transformation der Originaldaten verwendet, um eine bessere Leistung zu erzielen.

Andrew Matuk
2019-04-16 13:37:46 UTC
view on stackexchange narkive permalink

es hängt von Ihrer Aufgabe ab.Wenn Sie lineare Daten verarbeiten (z. B. Textverarbeitung), benötigen Sie tatsächlich keine Nichtlinearität.Die meisten Signalverarbeitungsaufgaben (Bild / Audio) sind jedoch nicht linear. Dort müssen nichtlineare Ebenen vorhanden sein.

Aaron
2017-04-24 09:32:57 UTC
view on stackexchange narkive permalink

Das klingt so, als ob es von jemandem geschrieben wurde, der nicht weiß, wovon er spricht.Eine Nichtlinearität ist wichtig, da sich die nachfolgenden Schichten gegenseitig aufbauen können.Zwei aufeinanderfolgende lineare Schichten haben die gleiche Leistung (sie können genau den gleichen Satz von Funktionen darstellen) wie eine einzelne lineare Schicht.Zwei aufeinanderfolgende nichtlineare Schichten können mehr Funktionen darstellen als eine einzelne nichtlineare Schicht.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...