Was ist der Unterschied zwischen hyperbolischen Tangenten- und Sigmoidneuronen?

8

Zwei übliche Aktivierungsfunktionen, die beim tiefen Lernen verwendet werden, sind die hyperbolische Tangentenfunktion und die Sigmoidaktivierungsfunktion. Ich verstehe, dass die hyperbolische Tangente nur eine Neuskalierung und Übersetzung der Sigmoidfunktion ist:

tanh(z)=2σ(z)- -1 .

Gibt es einen signifikanten Unterschied zwischen diesen beiden Aktivierungsfunktionen und insbesondere wann ist eine der anderen vorzuziehen ?

Mir ist klar, dass in einigen Fällen (wie beim Schätzen von Wahrscheinlichkeiten) Ausgaben im Bereich von [0,1]] bequemer sind als Ausgaben im Bereich von [- -1,1]] . Ich möchte wissen, ob es andere Unterschiede als die Zweckmäßigkeit gibt, die die beiden Aktivierungsfunktionen unterscheiden.

bpachev
quelle

Antworten:

3

Ich halte es nicht für sinnvoll, Aktivierungsfunktionen basierend auf den gewünschten Eigenschaften der Ausgabe zu bestimmen. Sie können einfach einen Kalibrierungsschritt einfügen, der den 'Neuronalen Netzwerk-Score' den Einheiten zuordnet, die Sie tatsächlich verwenden möchten (Dollar, Wahrscheinlichkeit usw.).

Daher denke ich, dass die Präferenz zwischen verschiedenen Aktivierungsfunktionen hauptsächlich auf die unterschiedlichen Eigenschaften dieser Aktivierungsfunktionen zurückzuführen ist (z. B. ob sie kontinuierlich differenzierbar sind oder nicht). Da es nur eine lineare Transformation zwischen den beiden gibt, bedeutet dies meiner Meinung nach, dass es keinen bedeutenden Unterschied zwischen ihnen gibt.

Matthew Graves
quelle
2

Sigmoid> Hyperbolische Tangente:

Wie Sie bereits erwähnt haben, ist die Anwendung von Sigmoid in den Fällen, in denen wir einen Wahrscheinlichkeitswert am Ausgang benötigen, möglicherweise bequemer als eine hyperbolische Tangente (wie @ matthew-graves sagt, können wir dies mit einem einfachen Mapping- / Kalibrierungsschritt beheben). In anderen Schichten macht dies keinen Sinn.

Hyperbolische Tangente> Sigmoid:

tanh(0)=0tanh'(0)=1tanh'(z)z=0σ(0)=0,5σ'(0)=0,25und sinusförmig ) lässt das Netzwerk effizient lernen, selbst wenn seine Gewichte mit kleinen Werten initialisiert werden. In anderen Fällen (zB Sigmoid und relu ) diese kleinen Anfangswerte können problematisch sein.

Weiterführende Literatur:

Random-Walk-Initialisierung für das Training sehr tiefer Feedforward-Netzwerke

Borhan Kazimipour
quelle