Warum Softmax im Gegensatz zur Standardnormalisierung verwenden?


159

In der Ausgabeschicht eines neuronalen Netzwerks ist es typisch, die Softmax-Funktion zu verwenden, um eine Wahrscheinlichkeitsverteilung zu approximieren:

Geben Sie hier die Bildbeschreibung ein

Die Berechnung ist aufgrund der Exponenten teuer. Warum nicht einfach eine Z-Transformation durchführen, damit alle Ausgänge positiv sind, und dann normalisieren, indem alle Ausgänge durch die Summe aller Ausgänge dividiert werden?


8
Die Berechnung der Funktion ist aufgrund der Exponenten nicht teuer, sondern weil Sie jedes qj berechnen müssen. Die Potenzierung ist im Vergleich zum Gesamtaufwand für die Berechnung günstig.
Seppo Enarvi

Über welche Art von Z-Transformation sprichst du? Die Signalverarbeitungsbedeutung des Begriffs passt hier nicht, und das Ersetzen der Werte durch ihren Z-Score führt zu einer negativen Ausgabe, wenn die Eingabe unter dem Mittelwert liegt.
David Cian

Siehe auch: Stats.SE
Martin Thoma

Antworten:


166

Es gibt ein nettes Attribut von Softmax im Vergleich zur Standardnormalisierung.

Es reagiert auf eine geringe Stimulation (denken Sie an ein verschwommenes Bild) Ihres neuronalen Netzes mit ziemlich gleichmäßiger Verteilung und auf eine hohe Stimulation (dh große Zahlen, denken Sie an ein scharfes Bild) mit Wahrscheinlichkeiten nahe 0 und 1.

Während die Standardnormalisierung nicht wichtig ist, solange der Anteil gleich ist.

Schauen Sie sich an, was passiert, wenn Soft Max einen 10-mal größeren Eingang hat, dh Ihr neuronales Netz hat ein gestochen scharfes Bild und viele Neuronen wurden aktiviert

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

Und dann vergleichen Sie es mit der Standardnormalisierung

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?

16
Diese Antwort veranschaulicht am besten die Auswirkungen der Verwendung von Exponentiation, anstatt sich auf theoretische Grundlagen zu konzentrieren. (was toll ist). Es sollte am Anfang der oberen Antwort stehen. Nachdem Sie gesehen haben, wie und in welchem ​​Ausmaß die Potenzierung Werte verteilt, hilft die Top-Antwort zu erklären, warum Sie das wollen.
Ian Danforth

@ IanDanforth Ich stimme dir zu. sollte am Anfang sein.
Hitesh

11
Ich bin mir nicht sicher, warum diese Antwort am häufigsten gewählt wird. Warum entspricht [1,2] einem verschwommenen Bild, während [10,20] einem schärferen Bild entspricht? Dies ist lediglich eine Frage der Skalierung und beide Fälle sind im Wesentlichen gleich. Wenn überhaupt, sollte dies die Standardnormalisierung unterstützen, die die beiden Fälle korrekt als gleichwertig betrachtet.
user118967

Wenn die Werte bereits garantiert in [0, 1] liegen, gibt es dann noch einen Vorteil, Softmax zu nehmen, anstatt einfach durch die Summe zu dividieren?
Martin Thoma

58

Ich habe diese Frage seit Monaten. Es scheint, als hätten wir den Softmax nur geschickt als Ausgabefunktion erraten und dann die Eingabe in den Softmax als Log-Wahrscheinlichkeiten interpretiert. Wie Sie sagten, warum nicht einfach alle Ausgaben normalisieren, indem Sie durch ihre Summe dividieren? Die Antwort fand ich im Deep Learning-Buch von Goodfellow, Bengio und Courville (2016) in Abschnitt 6.2.2.

Nehmen wir an, unsere letzte verborgene Ebene gibt uns z als Aktivierung. Dann wird der Softmax definiert als

Sehr kurze Erklärung

Die exp in der Softmax-Funktion löscht den logarithmischen Wert des Kreuzentropieverlusts grob aus, wodurch der Verlust in z_i ungefähr linear ist. Dies führt zu einem ungefähr konstanten Gradienten, wenn das Modell falsch ist, so dass es sich schnell korrigieren kann. Ein falscher gesättigter Softmax verursacht also keinen verschwindenden Gradienten.

Kurze Erklärung

Die beliebteste Methode zum Trainieren eines neuronalen Netzwerks ist die Maximum-Likelihood-Schätzung. Wir schätzen die Parameter Theta so, dass die Wahrscheinlichkeit der Trainingsdaten (Größe m) maximiert wird. Da die Wahrscheinlichkeit des gesamten Trainingsdatensatzes ein Produkt der Wahrscheinlichkeiten jeder Stichprobe ist, ist es einfacher, die Protokollwahrscheinlichkeit des Datensatzes und damit die Summe der Protokollwahrscheinlichkeit jeder durch k indizierten Stichprobe zu maximieren :

Jetzt konzentrieren wir uns hier nur auf den Softmax, wobei z bereits angegeben ist, damit wir ihn ersetzen können

wobei i die richtige Klasse der k-ten Stichprobe ist. Wenn wir nun den Logarithmus des Softmax nehmen, um die Log-Wahrscheinlichkeit der Stichprobe zu berechnen, erhalten wir:

, was für große Unterschiede in z ungefähr ungefähr ist

Zunächst sehen wir hier die lineare Komponente z_i. Zweitens können wir das Verhalten von max (z) für zwei Fälle untersuchen:

  1. Wenn das Modell korrekt ist, ist max (z) z_i. Somit asymptotisiert die logarithmische Wahrscheinlichkeit Null (dh eine Wahrscheinlichkeit von 1) mit einem wachsenden Unterschied zwischen z_i und den anderen Einträgen in z.
  2. Wenn das Modell falsch ist, ist max (z) ein anderes z_j> z_i. Das Hinzufügen von z_i hebt -z_j also nicht vollständig auf und die Log-Wahrscheinlichkeit ist ungefähr (z_i - z_j). Dies sagt dem Modell deutlich, was zu tun ist, um die Log-Wahrscheinlichkeit zu erhöhen: Erhöhen Sie z_i und verringern Sie z_j.

Wir sehen, dass die Gesamtprotokollwahrscheinlichkeit von Stichproben dominiert wird, bei denen das Modell falsch ist. Auch wenn das Modell wirklich falsch ist, was zu einem gesättigten Softmax führt, ist die Verlustfunktion nicht gesättigt. Es ist in z_j ungefähr linear, was bedeutet, dass wir einen ungefähr konstanten Gradienten haben. Dadurch kann sich das Modell schnell selbst korrigieren. Beachten Sie, dass dies beispielsweise beim mittleren quadratischen Fehler nicht der Fall ist.

Lange Erklärung

Wenn Ihnen der Softmax immer noch als willkürliche Wahl erscheint, können Sie sich die Rechtfertigung für die Verwendung des Sigmoid in der logistischen Regression ansehen:

Warum Sigmoidfunktion statt irgendetwas anderem?

Der Softmax ist die Verallgemeinerung des Sigmoid für Probleme mit mehreren Klassen, die analog gerechtfertigt sind.


Hallo, können Sie diese Aussage bitte erklären und wie konnten Sie sich annähern? ", was für große Unterschiede in z ungefähr ungefähr ist"
Londoner Typ

45

Ich habe die Erklärung hier als sehr gut empfunden: CS231n: Faltungsneurale Netze für die visuelle Erkennung.

An der Oberfläche scheint der Softmax-Algorithmus eine einfache nichtlineare Normalisierung (wir verbreiten die Daten mit Exponential) zu sein. Es gibt jedoch noch mehr.

Insbesondere gibt es ein paar verschiedene Ansichten ( gleicher Link wie oben ):

  1. Informationstheorie - Aus Sicht der Informationstheorie kann die Softmax-Funktion als Versuch angesehen werden, die Kreuzentropie zwischen den Vorhersagen und der Wahrheit zu minimieren.

  2. Probabilistische Sichtweise - Aus dieser Perspektive betrachten wir tatsächlich die Log-Wahrscheinlichkeiten. Wenn wir also eine Exponentiation durchführen, erhalten wir die Rohwahrscheinlichkeiten. In diesem Fall findet die Softmax-Gleichung die MLE (Maximum Likelihood Estimation)

Zusammenfassend lässt sich sagen, dass die Softmax-Gleichung, obwohl sie beliebig zu sein scheint, NICHT ist. Es ist eigentlich eine ziemlich prinzipielle Methode zur Normalisierung der Klassifikationen, um die Kreuzentropie / negative Wahrscheinlichkeit zwischen Vorhersagen und der Wahrheit zu minimieren.


2
Um zu früheren Kommentaren hinzuzufügen, ist die Ableitung der Softmax-Funktion nur Softmax (1-Softmax)
Rouzbeh

11
Ich verstehe die Gründe für die Verwendung von Cross-Entropy Loss, aber wie hängt das mit dem Softmax zusammen? Sie sagten, "die Softmax-Funktion kann als Versuch angesehen werden, die Kreuzentropie zwischen den Vorhersagen und der Wahrheit zu minimieren". Angenommen, ich würde die Standard- / Linearnormalisierung verwenden, aber immer noch den Cross-Entropy-Verlust verwenden. Dann würde ich auch versuchen, die Kreuzentropie zu minimieren. Wie ist der Softmax mit der Cross-Entropy verbunden, abgesehen von den numerischen Vorteilen?
Kilian Batzner

18
Was die probabilistische Sichtweise betrifft: Was ist die Motivation, logarithmische Wahrscheinlichkeiten zu betrachten? Die Argumentation scheint ein bisschen wie "Wir verwenden e ^ x im Softmax, weil wir x als logarithmische Wahrscheinlichkeiten interpretieren" zu sein. Mit der gleichen Überlegung, die wir sagen könnten, verwenden wir e ^ e ^ e ^ x im Softmax, weil wir x als Log-Log-Log-Wahrscheinlichkeiten interpretieren (hier natürlich übertrieben). Ich bekomme die numerischen Vorteile von Softmax, aber was ist die theoretische Motivation, es zu verwenden?
Kilian Batzner

5
@KilianBatzner Wenn die Ausgabe eines Neurons eine logarithmische Wahrscheinlichkeit ist, ist die Summe der Ausgaben vieler Neuronen eine Multiplikation ihrer Wahrscheinlichkeiten. Das ist häufiger nützlich als eine Summe von Wahrscheinlichkeiten.
Alltom

1
@KilianBatzner Wenn Ihre Features aus verschiedenen Gaußschen Clustern stammen (auf Cluster pro Klasse), können Sie einen perfekten Klassifikator ableiten (logistische Regression). Es gibt einige zusätzliche Bedingungen, aber im Wesentlichen können Sie Softmax und Logs mit der Annahme begründen / ableiten, dass Sie Gauß-Cluster trennen möchten.
Maxy

16

Die Werte von q_i repräsentieren Log-Wahrscheinlichkeiten. Um die Wahrscheinlichkeitswerte wiederherzustellen, müssen Sie sie potenzieren.

Ein Grund dafür, dass statistische Algorithmen häufig Log-Likelihood-Loss-Funktionen verwenden, besteht darin, dass sie numerisch stabiler sind: Ein Produkt von Wahrscheinlichkeiten kann als sehr kleine Gleitkommazahl dargestellt werden. Unter Verwendung einer Log-Likelihood-Loss-Funktion wird ein Produkt von Wahrscheinlichkeiten zu einer Summe.

Ein weiterer Grund ist, dass Log-Wahrscheinlichkeiten natürlich auftreten, wenn Schätzer für Zufallsvariablen abgeleitet werden, von denen angenommen wird, dass sie aus multivariaten Gaußschen Verteilungen stammen. Siehe zum Beispiel den Maximum Likelihood (ML) -Schätzer und die Art und Weise, wie er mit den kleinsten Quadraten verbunden ist.

Als Nebenbemerkung denke ich, dass diese Frage eher für die CS Theory oder Computational Science Stack Exchanges geeignet ist.


12
q_i repräsentiert nicht implizit Log-Wahrscheinlichkeiten. Nur wenn wir den Softmax verwenden, gehen wir ausdrücklich davon aus, dass dies der Fall ist.
Tom

6

Wir betrachten ein Klassifizierungsproblem für mehrere Klassen. Das heißt, die vorhergesagte Variable ykann eine der kKategorien annehmen , wobei k > 2. In der Wahrscheinlichkeitstheorie wird dies normalerweise durch eine multinomiale Verteilung modelliert. Die multinomiale Verteilung gehört zu den exponentiellen Familienverteilungen. Wir können die Wahrscheinlichkeit P(k=?|x)anhand der Eigenschaften exponentieller Familienverteilungen rekonstruieren , sie stimmt mit der Softmax-Formel überein.

Wenn Sie der Meinung sind, dass das Problem durch eine andere als die multinomiale Verteilung modelliert werden kann, können Sie zu einer Schlussfolgerung gelangen, die sich von softmax unterscheidet.

Weitere Informationen und eine formale Ableitung finden Sie in den CS229-Vorlesungsunterlagen (9.3 Softmax-Regression) .

Ein nützlicher Trick, der normalerweise für Softmax ausgeführt wird, ist: softmax (x) = softmax (x + c) , softmax ist gegenüber konstanten Offsets in der Eingabe unveränderlich.

Geben Sie die Bildbeschreibung ein


Wie funktioniert es als Aktivierungsfunktion, da es den gleichen Wert für 'x' und 'x + c' zurückgibt?
Suresh Pokharel

1
Genau genommen softmaxist dies keine Aktivierungsfunktion. Die Aktivierungsfunktion ist eine elementweise Operation, bei der ein Tensor elementweise eine nichtlineare Operation ausführt, um einen weiteren Tensor zu erzeugen. Aber softmaxist eine Vektoroperation, es erzeugt einen normalisierten Vektor, es gibt innere Abhängigkeiten zwischen jedem Element.
GabrielChu

5

Ich denke, einer der Gründe kann sein, mit den negativen Zahlen und der Division durch Null umzugehen, da exp (x) immer positiv und größer als Null sein wird.

Zum Beispiel a = [-2, -1, 1, 2], wenn die Summe 0 ist, können wir Softmax verwenden, um eine Division durch Null zu vermeiden.


3
Normalerweise würden Sie das Minimum subtrahieren und dann durch das Maximum / die Summe dividieren. In Ihrem Fall würde sich das [0, 1, 3, 4]dann teilen.
Ubershmekel

1
@ubershmekel Dies führt zu dem Problem, dass der Klasse mit der kleinsten Punktzahl immer eine Wahrscheinlichkeit von 0 zugewiesen wird.
Alessandro Power

4

Angenommen, wir ändern die Softmax-Funktion so, dass die Ausgabeaktivierungen durch gegeben sind Geben Sie hier die Bildbeschreibung ein

wo cist eine positive Konstante. Beachten Sie, dass dies c=1der Standard-Softmax-Funktion entspricht. Wenn wir jedoch einen anderen Wert von verwenden, erhalten cwir eine andere Funktion, die dem Softmax qualitativ qualitativ ziemlich ähnlich ist. Zeigen Sie insbesondere, dass die Ausgabeaktivierungen wie beim üblichen Softmax eine Wahrscheinlichkeitsverteilung bilden. Nehmen wir can, wir erlauben groß zu werden, dh c→∞. Was ist der Grenzwert für die Ausgangsaktivierungen a^L_j? Nach der Lösung dieses Problems sollte Ihnen klar sein, warum wir die c=1Funktion als "erweichte" Version der Maximalfunktion betrachten. Dies ist der Ursprung des Begriffs "Softmax". Sie können den Details aus dieser Quelle folgen (Gleichung 83).


Für mich ist die Idee einer "erweichten" Version der Maximalfunktion der beste einfache Weg, um die Verwendung von Softmax zu rechtfertigen.
Taschuhka

3

Wenn Sie zur Antwort von Piotr Czapla hinzufügen, ist die Wahrscheinlichkeit für die maximale Eingabe bei gleichem Anteil und im Vergleich zu den anderen Eingaben umso größer, je größer die Eingabewerte sind:

Geben Sie hier die Bildbeschreibung ein


2

Die Wahl der Softmax-Funktion scheint irgendwie willkürlich, da es viele andere mögliche Normalisierungsfunktionen gibt. Es ist daher unklar, warum der Log-Softmax-Verlust besser abschneiden würde als andere Verlustalternativen.

Aus " Eine Untersuchung von Softmax-Alternativen, die zur Familie der sphärischen Verluste gehören " https://arxiv.org/abs/1511.05042

Die Autoren untersuchten einige andere Funktionen, darunter die Taylor-Expansion expund den sogenannten sphärischen Softmax, und stellten fest, dass sie manchmal eine bessere Leistung als gewöhnlich erbringen softmax.

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.