Warum ist Tanh als Aktivierungsfunktion fast immer besser als Sigmoid?

33

In Andrew Ngs Kurs über Neuronale Netze und tiefes Lernen über Coursera sagt er, dass die Verwendung von fast immer der Verwendung von vorzuziehen ist .tanhsigmoid

Der Grund, den er angibt, ist, dass die Ausgaben mit center um 0 statt mit 's 0,5 erfolgen, und dies "erleichtert das Lernen für die nächste Schicht ein wenig".tanhsigmoid

  1. Warum zentriert die Aktivierung das Lernen der Ausgabegeschwindigkeit? Ich nehme an, dass er sich auf die vorherige Ebene bezieht, während das Lernen während des Backprop erfolgt.

  2. Gibt es irgendwelche anderen Eigenschaften, die bevorzugen? Würde der steilere Gradient das Verschwinden von Gradienten verzögern?tanh

  3. Gibt es Situationen, in denen vorzuziehen wäre?sigmoid

Matheleichte, intuitive Antworten bevorzugt.

Tom Hale
quelle
13
Eine Sigmoidfunktion ist S-förmig (daher der Name). Vermutlich handelt es sich um die logistische Funktion . Abgesehen von Maßstab und Position sind die beiden im Wesentlichen identisch: . Die eigentliche Wahl ist also, ob Sie Ausgaben im Intervall wünschen.ex1+exlogistic(x)=12+12tanh(x2)(1,1) oder im Intervall (0,1)
Henry

Antworten:

21

Yan LeCun und andere argumentieren in Efficient BackProp, dass

Die Konvergenz ist normalerweise schneller, wenn der Durchschnitt jeder Eingabevariable über den Trainingssatz nahe Null liegt. Betrachten Sie dazu den Extremfall, in dem alle Eingänge positiv sind. Die Gewichte für einen bestimmten Knoten in der ersten Gewichtsschicht werden um einen Betrag proportional zu δx aktualisiert, wobei δ der (skalare) Fehler an diesem Knoten und x der Eingangsvektor ist (siehe Gleichungen (5) und (10)). Wenn alle Komponenten eines Eingabevektors positiv sind, haben alle Aktualisierungen von Gewichten, die in einen Knoten eingehen, dasselbe Vorzeichen (dh Vorzeichen ( δ )). Verringern oder alle Zunahme Als Ergebnis können diese Gewichte nur alle zusammenfür ein gegebenes Eingabemuster. Wenn also ein Gewichtsvektor die Richtung ändern muss, kann dies nur durch Zickzack erfolgen, was ineffizient und daher sehr langsam ist.

Aus diesem Grund sollten Sie Ihre Eingaben so normalisieren, dass der Durchschnitt Null ist.

Die gleiche Logik gilt für mittlere Schichten:

Diese Heuristik sollte auf alle Ebenen angewendet werden. Dies bedeutet, dass der Durchschnitt der Ausgaben eines Knotens nahe Null sein soll, da diese Ausgaben die Eingaben für die nächste Ebene sind.

Postscript @craq weist darauf hin, dass dieses Zitat für ReLU (x) = max (0, x) keinen Sinn macht, was zu einer weit verbreiteten Aktivierungsfunktion geworden ist. Während ReLU das erste von LeCun erwähnte Zick-Zack-Problem vermeidet, löst es diesen zweiten Punkt von LeCun nicht, der sagt, es sei wichtig, den Durchschnitt auf Null zu bringen. Ich würde gerne wissen, was LeCun dazu zu sagen hat. In jedem Fall gibt es ein Papier namens Batch Normalization , das auf der Arbeit von LeCun aufbaut und eine Möglichkeit bietet, dieses Problem zu lösen:

Es ist seit langem bekannt (LeCun et al., 1998b; Wiesler & Ney, 2011), dass das Netzwerktraining schneller konvergiert, wenn seine Eingaben weiß werden - dh linear transformiert werden, um Mittelwerte und Einheitsvarianzen von Null zu haben, und dekorreliert werden. Da jede Schicht die von den darunter liegenden Schichten erzeugten Eingaben beobachtet, wäre es vorteilhaft, das gleiche Weißwerden der Eingaben jeder Schicht zu erzielen.


Übrigens, dieses Video von Siraj erklärt in 10 Minuten viel über Aktivierungsfunktionen.


@elkout sagt: "Der wahre Grund, warum tanh gegenüber sigmoid (...) bevorzugt wird, ist, dass die Ableitungen des tanh größer sind als die Ableitungen des sigmoid."

Ich denke, das ist kein Problem. Ich habe nie gesehen, dass dies ein Problem in der Literatur ist. Wenn es Sie stört, dass eine Ableitung kleiner als eine andere ist, können Sie sie einfach skalieren.

σ(x)=11+ekxk=1k


Nitpick: Tanh ist auch eine Sigmoidfunktion . Jede Funktion mit einer S-Form ist ein Sigmoid. Was ihr als Sigmoid bezeichnet, ist die logistische Funktion. Der Grund, warum die Logistikfunktion populärer ist, sind historische Gründe. Es wird seit längerer Zeit von Statistikern verwendet. Außerdem glauben einige, dass es biologisch plausibler ist.

Ricardo Cruz
quelle
1
maxxσ(x)<maxxtanh(x)
σ(x)=σ(x)(1σ(x))0.25
0<σ(x)<1
tanh(x)=sech2(x)=2exp(x)+exp(x))1.0
Abgesehen davon habe ich gesagt, dass in den meisten Fällen die Ableitungen von tanh größer sind als die Ableitungen des Sigmoid. Dies geschieht meistens, wenn wir um die 0 sind. Sie können sich gerne diesen Link und die hier gegebenen klaren Antworten ansehen, in denen auch angegeben ist, dass die Derivate von normalerweise größer sind als die Derivate des . tanhsigmoid
Ekoulier
Moment mal ... das klingt plausibel, aber wenn mittlere Ebenen eine durchschnittliche Ausgabe von Null haben sollten, warum funktioniert ReLU dann so gut? Ist das nicht ein Widerspruch?
Craq
@ekoulier, die Ableitung von , die größer als ist, ist kein Problem. Sie können es einfach skalieren, wenn es Sie stört. tanhsigmoid
Ricardo Cruz
@craq, guter Punkt, ich denke, das ist in der Tat ein Fehler in LeCuns Argument. Ich habe einen Link zum Batch-Normalisierungspapier hinzugefügt, in dem mehr über dieses Problem und wie es verbessert werden kann, besprochen wird. Leider vergleicht dieses Papier relu nicht mit tanh, sondern nur relu mit logistic (Sigmoid).
Ricardo Cruz
14

Es ist nicht unbedingt besser als . Mit anderen Worten, es ist nicht das Zentrum einer Aktivierungsfunktion, die es besser macht. Die Idee hinter beiden Funktionen ist die gleiche und sie teilen auch einen ähnlichen "Trend". Es erübrigt sich zu erwähnen, dass die Funktion eine verschobene Version der -Funktion ist.sigmoidtanhsigmoid

Der wahre Grund, warum gegenüber bevorzugt wird , insbesondere wenn es um Big Data geht und Sie normalerweise Probleme haben, schnell das lokale (oder globale) Minimum zu finden, sind die Ableitungen des sind größer als die Ableitungen des . Mit anderen Worten, Sie minimieren Ihre Kostenfunktion schneller, wenn Sie als Aktivierungsfunktion verwenden.tanhsigmoidtanhsigmoidtanh

Aber warum hat der hyperbolische Tangens größere Ableitungen? Um Ihnen eine sehr einfache Vorstellung zu geben, können Sie die folgende Grafik betrachten:

Sigmoid vs Hyperbolic Tangent

Die Tatsache, dass der Bereich zwischen -1 und 1 im Vergleich zu 0 und 1 liegt, macht die Funktion für neuronale Netze praktischer. Abgesehen davon kann ich mit etwas Mathe beweisen, dass:

tanhx=2σ(2x)1

Und im Allgemeinen können wir beweisen, dass in den meisten Fällen .|tanh(x)x|>|σ(x)x|

ekoulier
quelle
Warum sollte Prof. Ng sagen, dass es ein Vorteil ist, wenn die Ausgabe der Funktion im Durchschnitt bei ? 0
Tom Hale
2
Es ist nicht die Tatsache, dass der Durchschnitt bei 0 liegt, die schneller macht. Die Tatsache, dass der Wert um Null liegt, bedeutet, dass der Bereich auch größer ist (im Vergleich zu 0,5 im Fall von ), was zu größeren Ableitungen führt, was fast immer zu einer schnelleren Konvergenz zum Minimum führt. Ich hoffe, dass es jetzt klar ist. Ng ist richtig, dass wir die Funktion bevorzugen, weil sie um 0 zentriert ist, aber er hat nur nicht die vollständige Begründung angegeben. tanhsigmoidtanh
Ekoulier
Zero-Zentrierung ist wichtiger als - Verhältnis, weil es um die Verteilung der Aktivierungen skews und das schadet die Leistung. Wenn Sie und kleinere Lernrate nehmen, lernt es auf Augenhöhe mit . 2xsigmoid(x) - 0.52xtanh
Maxim
@Maxim Welches "es" verzerrt die Verteilung von Aktivierungen, Nullzentrierung oder ? Wenn die Nullzentrierung eine gute Sache ist, habe ich immer noch nicht das Gefühl, dass das "Warum" davon beantwortet wurde. 2x
Tom Hale
3

Beantwortung des bisher nicht angesprochenen Teils der Frage:

Andrew Ng sagt, dass die Verwendung der logistischen Funktion (allgemein als Sigmoid bekannt) nur in der letzten Schicht eines binären Klassifizierungsnetzwerks Sinn macht.

Da der Output des Netzwerks voraussichtlich zwischen und , ist die Logistik eine perfekte Wahl, da der Bereich genau . Keine Skalierung und Verschiebung von erforderlich.01(0,1)tanh

Tom Hale
quelle
Für die Ausgabe ist die logistische Funktion sinnvoll, wenn Sie Wahrscheinlichkeiten erstellen möchten, da können wir uns alle einig sein. Es wird diskutiert, warum Tanh als Aktivierung für die mittleren Schichten der logistischen Funktion vorgezogen wird.
Ricardo Cruz
Woher wissen Sie, dass das OP dies beabsichtigt hat? Es scheint, dass er eine allgemeine Frage stellte.
Tom Hale
2

Alles hängt im Wesentlichen von den Ableitungen der Aktivierungsfunktion ab. Das Hauptproblem bei der Sigmoid-Funktion besteht darin, dass der Maximalwert ihrer Ableitung 0,25 beträgt. Dies bedeutet, dass die Aktualisierung der Werte von W und b gering sein wird.

Die Tanh-Funktion hingegen hat eine Ableitung von bis zu 1,0, wodurch die Aktualisierungen von W und b viel größer werden.

Dies macht die tanh-Funktion fast immer besser als Aktivierungsfunktion (für versteckte Schichten) als die Sigmoid-Funktion.

Um dies selbst zu beweisen (zumindest in einem einfachen Fall), habe ich ein einfaches neuronales Netzwerk codiert und Sigmoid, Tanh und Relu als Aktivierungsfunktionen verwendet. Dann habe ich aufgezeichnet, wie sich der Fehlerwert entwickelt hat und das habe ich bekommen.

Bildbeschreibung hier eingeben

Das vollständige Notizbuch, das ich geschrieben habe, ist hier https://www.kaggle.com/moriano/a-showcase-of-how-relus-can-speed-up-the-learning

Wenn es hilft, sind hier die Diagramme der Ableitungen der tanh-Funktion und der Sigmoid-Funktion (achten Sie auf die vertikale Achse!)

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Juan Antonio Gomez Moriano
quelle
(-1) Obwohl dies eine interessante Idee ist, steht sie nicht für sich allein. Insbesondere sind die meisten Optimierungsmethoden, die für DL / NN verwendet werden, Gradientenmethoden erster Ordnung, die eine Lernrate . Wenn die maximale Ableitung in Bezug auf eine Aktivierungsfunktion zu klein ist, kann man leicht die Lernrate erhöhen. α
Cliff AB
Gehen Sie nicht das Risiko ein, keine stabile Lernkurve mit einer höheren Lernrate zu haben?
Juan Antonio Gomez Moriano
Wenn die Ableitungen stabiler sind, ist es weniger wahrscheinlich, dass eine Erhöhung der Lernrate die Schätzung destabilisiert.
Cliff AB
Das ist ein guter Punkt. Haben Sie einen Link, über den ich mehr darüber erfahren kann?
Juan Antonio Gomez Moriano