Welche Aktivierungsfunktion für die Ausgabeebene?


44

Während die Auswahl der Aktivierungsfunktionen für die verborgene Ebene ziemlich klar ist (meistens Sigmoid oder Tanh), frage ich mich, wie ich mich für die Aktivierungsfunktion für die Ausgabeebene entscheiden soll. Häufige Auswahlmöglichkeiten sind lineare Funktionen, Sigmoidfunktionen und Softmaxfunktionen. Wann sollte ich welche verwenden?


2
In jüngerer Zeit wurde ReLU als Aktivierungsfunktion für versteckte Einheiten populär.
ijuneja

Antworten:


39
  • Regression: linear (da Werte nicht begrenzt sind)
  • Klassifizierung: Softmax (einfaches Sigmoid funktioniert auch, aber Softmax funktioniert besser)

Verwenden Sie einfaches Sigmoid nur, wenn Ihre Ausgabe mehrere "echte" Antworten zulässt, z. B. ein Netzwerk, das das Vorhandensein verschiedener Objekte in einem Bild überprüft. Mit anderen Worten, die Ausgabe ist keine Wahrscheinlichkeitsverteilung (muss nicht mit 1 summiert werden).


2
Softmax ist auch wichtig, wenn Sie mehrere Gruppen für die Klassifizierung haben
cdeterman

15
Ich denke, es ist falsch zu sagen, dass Softmax "besser" funktioniert als ein Sigmoid, aber Sie können Softmax in Fällen verwenden, in denen Sie kein Sigmoid verwenden können. Bei der binären Klassifizierung sind die logistische Funktion (Sigmoid) und die Softmax-Funktion gleich gut, aber die logistische Funktion ist mathematisch einfacher und daher die natürliche Wahl. Wenn Sie jedoch mehr als zwei Klassen haben, können Sie keine Skalarfunktion wie die logistische Funktion verwenden, da Sie mehr als eine Ausgabe benötigen, um die Wahrscheinlichkeiten für alle Klassen zu kennen. Daher verwenden Sie Softmax.
HelloGoodbye

1
Ich denke nicht, dass Softmax eine Aktivierung ist. Im Allgemeinen müssen Sie es aktivieren, bevor Sie es normalisieren (softmax).
Aaron

23

Ich komme vielleicht zu spät zur Party, aber es scheint, dass hier einige Dinge geklärt werden müssen.

g(x)CzCz

C(y,g(z))=12(yg(z))2g(x)=x

C(y,g(z))z=C(y,g(z))g(z)g(z)z=g(z)(12(yg(z))2)z(z)=(yg(z))1=g(z)y
Cz

Cz

Zweitens möchte ich hinzufügen, dass es viele Aktivierungsfunktionen gibt, die für die ausgeblendeten Ebenen verwendet werden können. Sigmoide (wie die logistische Funktion und der hyperbolische Tangens) haben sich in der Tat als gut erwiesen, aber wie von Jatin angegeben , verschwinden diese Verläufe, wenn Ihre Netzwerke zu tief werden. In diesem Fall sind ReLUs populär geworden. Ich möchte jedoch betonen, dass es viel mehr Aktivierungsfunktionen gibt und verschiedene Forscher immer wieder nach neuen suchen (z. B. Exponentielle Lineareinheiten (ELUs), Gaußsche Fehler Lineareinheiten (GELUs), ...) mit verschiedenen / bessere Eigenschaften

Fazit: Seien Sie einfach kreativ, wenn Sie nach den besten Aktivierungsfunktionen suchen. Probieren Sie verschiedene Dinge aus und sehen Sie, welche Kombinationen zu der besten Leistung führen.


Nachtrag: Für mehr Paare von Verlustfunktionen und Aktivierungen möchten Sie wahrscheinlich (kanonische) Linkfunktionen suchen


Warum ist das nicht die beste Antwort? verdammt intuitiv und völlig wissenschaftlich
Vikram Murthy

13

Sigmoid und Tanh sollten nicht als Aktivierungsfunktion für die verborgene Schicht verwendet werden. Dies ist auf das Problem des verschwindenden Gradienten zurückzuführen. Wenn sich Ihre Eingabe auf einer höheren Seite befindet (wo das Sigma flach wird), ist der Gradient nahe Null. Dies führt zu einem sehr langsamen oder fehlenden Lernen während der Rückübertragung, da die Gewichte mit sehr kleinen Werten aktualisiert werden.

Detaillierte Erklärung hier: http://cs231n.github.io/neural-networks-1/#actfun

Die beste Funktion für versteckte Ebenen ist daher ReLu.


11
Die Frage fragt nach der Ausgabeebene. -1
Euler_Salter

1
Einverstanden. Hinzugefügt die Antwort auf der ersten Zeile der Frage. Vielleicht hätte dies ein Kommentar statt einer Antwort sein sollen.
Jatin

Nun, aber würden Sie dann nicht auch das Problem "toter ReLU-Neuronen" bekommen? Außerdem kann das Vanishijg-Gradientenproblem durch Chargennormalisierung "gelöst" werden. Wenn Sie dennoch einige Neuronen wie bei ReLU-Aktivierungen "deaktivieren" möchten, können Sie Neuronen einfach durch Drop-Outs zufällig ausschalten. Also denke ich am Ende, es hängt alles vom Problem ab und benutze einfach das, was am besten funktioniert
Kevvy Kim

5

2,3,4,5,...

2,3,4,...

p(y=1)1p(y=1)=p(y=0)

Die Verwendung der Identitätsfunktion als Ausgabe kann hilfreich sein, wenn Ihre Ausgaben unbegrenzt sind. Der Gewinn oder Verlust eines Unternehmens für ein Quartal könnte auf beiden Seiten unbegrenzt sein.

ReLU- Einheiten oder ähnliche Varianten können hilfreich sein, wenn die Ausgabe oberhalb oder unterhalb der Grenze liegt. Wenn der Ausgang nur nicht negativ sein soll, ist es sinnvoll, eine ReLU-Aktivierung als Ausgangsfunktion zu verwenden.

[1,1]

Das Schöne an neuronalen Netzen ist, dass sie unglaublich flexibel sind.

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.