tanh vs. sigmoid im neuronalen Netz


16

Ich entschuldige mich im Voraus für die Tatsache, dass ich immer noch auf dem Laufenden bin. Ich versuche die Vor- und Nachteile der Verwendung von tanh (Karte -1 bis 1) vs. sigmoid (Karte 0 bis 1) für meine Neuronenaktivierungsfunktion zu verstehen. Nach meiner Lektüre klang es wie eine Kleinigkeit mit geringfügigen Unterschieden. In der Praxis finde ich für meine Probleme, dass das Sigmoid leichter zu trainieren ist und seltsamerweise scheint das Sigmoid die allgemeine Lösung besser zu finden. Damit meine ich, dass die Sigmoid-Version, wenn sie mit dem Training fertig ist, gut mit dem Referenzdatensatz (nicht trainiert) abschneidet, wobei die Tanh-Version in der Lage zu sein scheint, die richtigen Antworten auf die Trainingsdaten zu erhalten, während sie mit der Referenz schlecht abschneidet. Dies gilt für dieselbe Netzwerkarchitektur.

Eine Intuition, die ich habe, ist, dass es mit dem Sigmoid für ein Neuron einfacher ist, sich fast vollständig auszuschalten und somit keine Eingabe für nachfolgende Schichten zu liefern. Das Tanh hat es hier schwerer, da es seine Eingaben perfekt löschen muss, sonst gibt es der nächsten Ebene immer einen Wert. Vielleicht ist diese Intuition jedoch falsch.

Langer Beitrag. Fazit, was ist der Handel, und sollte es einen großen Unterschied machen?

Antworten:


23

In Symon Haykins "Neural Networks: A Comprehensive Foundation" Buch gibt es die folgende Erklärung, aus der ich zitiere:

Um die Lernzeit zu minimieren, sollte die Verwendung von Eingaben mit einem Mittelwert ungleich Null vermieden werden. Was nun den Signalvektor betrifft, der an ein Neuron in der ersten verborgenen Schicht eines mehrschichtigen Perzeptrons angelegt wird, ist es leicht, den Mittelwert von jedem Element von x vor seiner Anwendung auf das Netzwerk zu entfernen . Aber was ist mit den Signalen, die an die Neuronen in den verbleibenden verborgenen und Ausgangsschichten des Netzwerks angelegt werden? Die Antwort auf diese Frage liegt in der Art der im Netzwerk verwendeten Aktivierungsfunktion. Wenn die Aktivierungsfunktion nicht symmetrisch ist, wie im Fall der Sigmoidfunktion, ist die Ausgabe jedes Neurons auf das Intervall [ 0 , 1 ] beschränkt . Eine solche Wahl führt zu einer systematischen Verzerrungxx[0,1]für jene Neuronen, die sich jenseits der ersten Schicht des Netzwerks befinden. Um dieses Problem zu überwinden, müssen wir eine antisymmetrische Aktivierungsfunktion wie die hyperbolische Tangensfunktion verwenden. Mit dieser letzteren Wahl kann die Ausgabe jedes Neurons sowohl positive als auch negative Werte im Intervall annehmen , in welchem ​​Fall es wahrscheinlich ist, dass sein Mittelwert Null ist. Wenn die Netzwerkkonnektivität groß ist, kann das Backpropagation-Lernen mit antisymmetrischen Aktivierungsfunktionen zu einer schnelleren Konvergenz führen als ein ähnlicher Prozess mit nicht symmetrischen Aktivierungsfunktionen, für den es auch empirische Belege gibt (LeCun et al. 1991).[-1,1]

Die zitierte Referenz ist:

  • Y. LeCun, I. Kanter und SASolla: "Eigenschaften zweiter Ordnung von Fehleroberflächen: Lernzeit und Verallgemeinerung", Advances in Neural Information Processing Systems, vol. 3, S. 918-924, 1991.

Eine weitere interessante Referenz ist die folgende:

  • Y. LeCun, L. Bottou, G. Orr und K. Müller: " Efficient BackProp ", in Orr, G. und Müller K. (Hrsg.), Neuronale Netze: Tricks of the Trade, Springer, 1998

Die ReLU-Neuronen scheinen trotz ihrer Vorurteile recht gut zu funktionieren. Hast du irgendwelche Gedanken dazu?
Ark-Kun

@ Ark-Kun, ich weiß nicht viel über ReLU-Neuronen, aber ich kann Sie auf dieses Papier verweisen, in dem die Autoren die Vorteile einer solchen Aktivierungsfunktion erläutern. X. Glorot, A. Bordes und Y. Bengio „Deep spärlich Gleichrichter neuronale Netze AISTATS 2011. jmlr.org/proceedings/papers/v15/glorot11a/glorot11a.pdf
tiagotvv

1

Diese beiden Aktivierungsfunktionen sind sehr ähnlich, aber versetzt. Mein ursprüngliches Netzwerk hatte keine Vorurteile. Seit dem Hinzufügen von Verzerrungen ist alles viel stabiler. Aufgrund meiner Erfahrung würde ich sagen, dass der eine oder andere aus komplexen, möglicherweise nicht bekannten Gründen für eine bestimmte Anwendung besser geeignet ist, aber der richtige Ansatz besteht darin, Verzerrungsterme einzuschließen, damit die Abhängigkeit vom Aktivierungsversatz verringert oder beseitigt werden kann.


0

Tanh

L=-1nich(yichLog(pich)+(1-yich)Log(1-pich))

yichichpichich

pichTanh Funktion ist, erhalten Sie Logarithmen mit negativen Werten. Daher sind Sigmoid-Aktivierungsfunktionen am Ausgang in diesen Fällen die bessere Wahl.


Sie können sie jedoch skalieren. tanh (X) -1 teilt die Ableitung und hat nicht das Problem der negativen Protokolle
Pablo Arnau González
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.