In der Ausgabeschicht eines neuronalen Netzwerks ist es typisch, die Softmax-Funktion zu verwenden, um eine Wahrscheinlichkeitsverteilung zu approximieren:
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?
Antworten:
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
Und dann vergleichen Sie es mit der Standardnormalisierung
quelle
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:
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.
quelle
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 ):
Informationstheorie - Aus Sicht der Informationstheorie kann die Softmax-Funktion als Versuch angesehen werden, die Kreuzentropie zwischen den Vorhersagen und der Wahrheit zu minimieren.
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.
quelle
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.
quelle
Wir betrachten ein Klassifizierungsproblem für mehrere Klassen. Das heißt, die vorhergesagte Variable
y
kann eine derk
Kategorien annehmen , wobeik > 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 WahrscheinlichkeitP(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.
quelle
softmax
ist 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. Abersoftmax
ist eine Vektoroperation, es erzeugt einen normalisierten Vektor, es gibt innere Abhängigkeiten zwischen jedem Element.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.quelle
[0, 1, 3, 4]
dann teilen.Angenommen, wir ändern die Softmax-Funktion so, dass die Ausgabeaktivierungen durch gegeben sind
wo
c
ist eine positive Konstante. Beachten Sie, dass diesc=1
der Standard-Softmax-Funktion entspricht. Wenn wir jedoch einen anderen Wert von verwenden, erhaltenc
wir 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 wirc
an, wir erlauben groß zu werden, dhc→∞
. Was ist der Grenzwert für die Ausgangsaktivierungena^L_j
? Nach der Lösung dieses Problems sollte Ihnen klar sein, warum wir diec=1
Funktion als "erweichte" Version der Maximalfunktion betrachten. Dies ist der Ursprung des Begriffs "Softmax". Sie können den Details aus dieser Quelle folgen (Gleichung 83).quelle
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:
quelle
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
exp
und den sogenannten sphärischen Softmax, und stellten fest, dass sie manchmal eine bessere Leistung als gewöhnlich erbringensoftmax
.quelle