Warum Softmax im Gegensatz zur Standardnormalisierung verwenden? Im Kommentarbereich der oberen Antwort auf diese Frage hat @Kilian Batzner zwei Fragen aufgeworfen, die mich ebenfalls sehr verwirren. Es scheint, dass niemand eine Erklärung abgesehen von numerischen Vorteilen gibt.
Ich habe die Gründe für die Verwendung von Cross-Entropy Loss herausgefunden, 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. Dann würde ich auch versuchen, die Cross-Entropy zu minimieren. Wie ist der Softmax mit Ausnahme der numerischen Vorteile mit der Cross-Entropy verknüpft?
Was die Wahrscheinlichkeitssicht betrifft: Was ist die Motivation, Log-Wahrscheinlichkeiten zu betrachten? Die Argumentation scheint ein bisschen zu sein wie "Wir verwenden e ^ x im Softmax, weil wir x als Log-Wahrscheinlichkeiten interpretieren". Mit der gleichen Überlegung könnten wir sagen, wir verwenden e ^ e ^ e ^ x im Softmax, weil wir x als log-log-log-Wahrscheinlichkeiten interpretieren (hier natürlich übertreiben). Ich habe die numerischen Vorteile von softmax, aber was ist die theoretische Motivation dafür?
Antworten:
Es ist mehr als nur numerisch. Eine kurze Erinnerung an den Softmax:
Dabei ist ein Eingabevektor mit einer Länge, die der Anzahl der Klassen . Die Softmax-Funktion hat 3 sehr schöne Eigenschaften: 1. Sie normalisiert Ihre Daten (gibt eine korrekte Wahrscheinlichkeitsverteilung aus), 2. ist differenzierbar und 3. sie verwendet die von Ihnen erwähnte exp. Einige wichtige Punkte:Kx K
Die Verlustfunktion steht nicht in direktem Zusammenhang mit softmax. Sie können die Standardnormalisierung verwenden und trotzdem die Kreuzentropie verwenden.
Eine "Hardmax" -Funktion (dh Argmax) ist nicht unterscheidbar. Der Softmax gibt allen Elementen im Ausgabevektor mindestens eine minimale Wahrscheinlichkeit und ist daher gut differenzierbar, daher der Begriff "soft" in softmax.
Jetzt komme ich zu deiner Frage. Das in softmax ist die natürliche Exponentialfunktion. Bevor wir normalisieren, transformieren wir wie im Diagramm von :x e xe x ex
Wenn 0 ist, dann ist , wenn 1 ist, dann ist und wenn 2 ist, dann ist ! Ein großer Schritt! Dies ist eine nichtlineare Transformation unserer nicht normalisierten Log-Scores. Die interessante Eigenschaft der Exponentialfunktion in Kombination mit der Normalisierung im Softmax ist, dass hohe Werte in viel wahrscheinlicher werden als niedrige Werte.y = 1 x y = 2,7 x y = 7 xx y=1 x y=2.7 x y=7 x
Ein Beispiel . Sagen Sie und Ihr Log-Score ist Vektor . Die einfachen argmax-Funktionsausgaben:x [ 2 , 4 , 2 , 1 ]K=4 x [2,4,2,1]
Der Argmax ist das Ziel, aber es ist nicht differenzierbar und wir können unser Modell nicht damit trainieren: (Eine einfache Normalisierung, die differenzierbar ist, gibt die folgenden Wahrscheinlichkeiten aus:
Das ist wirklich weit weg vom Argmax! :( Während die Softmax-Ausgänge:
Das kommt dem argmax viel näher! Da wir das natürliche Exponential verwenden, erhöhen wir die Wahrscheinlichkeit der größten Punktzahl enorm und verringern die Wahrscheinlichkeit der niedrigeren Punktzahlen im Vergleich zur Standardnormalisierung. Daher das "max" in softmax.
quelle
e
mit einer Konstante, sagen wir 3 oder 4 , anstatt sie zu verwenden ? Wird das Ergebnis dasselbe sein?e
aber ein schöneres Derivat;)e
das macht es interpretierbar als eine Wahrscheinlichkeit, ist es die Tatsache ist , jedes Element des softmax Ausgangs begrenzt ist in [0,1] und den ganzen Summen 1.Zusätzlich zu Vegas Erklärung,
Definieren wir den generischen Softmax: wobei eine Konstante> = 1 istP(y=j|x)=ψxj∑Kk=1ψxk ψ
Wenn , dann sind Sie ziemlich weit von Argmax entfernt, wie von @vega erwähnt.ψ=1
Nehmen wir jetzt an, , jetzt sind Sie ziemlich nah am Argmax, aber Sie haben auch wirklich kleine Zahlen für negative Werte und große Zahlen für positive. Diese Zahlen überlaufen die Schwimmerkommaarithmetik Grenze leicht (zB maximale Grenze von numpy float64 sind ). Darüber hinaus sollten Frameworks eine stabilere Version von softmax (Multiplikation von Zähler und Nenner mit Konstante ) implementieren , selbst wenn die Auswahl was viel kleiner als , da die Ergebnisse zu klein werden, um ausgedrückt werden zu können mit solcher Präzision.ψ=100 10308 ψ=e 100 C
Sie möchten also eine Konstante auswählen, die groß genug ist, um sich Argmax gut anzunähern, und die klein genug ist, um diese großen und kleinen Zahlen in Berechnungen auszudrücken.
Und natürlich hat auch ziemlich nette Ableitungen.e
quelle
Diese Frage ist sehr interessant. Ich kenne den genauen Grund nicht, aber ich denke, der folgende Grund könnte verwendet werden, um die Verwendung der Exponentialfunktion zu erklären. Dieser Beitrag ist inspiriert von der statistischen Mechanik und dem Prinzip der maximalen Entropie.
Ich werde dies anhand eines Beispiels mitN Bildern erläutern , die aus n1 Bildern der Klasse C1 , n2 Bildern der Klasse C2 , ... und nK Bildern der Klasse CK . Dann gehen wir davon aus, dass unser neuronales Netzwerk in der Lage war anzuwenden auf unseren Bildern nicht - lineare Transformation, so dass wir ein ‚Energieniveau‘ können zuweisen Ek für alle Klassen. Wir gehen davon aus, dass diese Energie nichtlinear ist, wodurch wir die Bilder linear trennen können.
Die mittlere EnergieE¯ ist mit dem anderen Energien bezogen Ek durch die folgende Beziehung
NE¯=∑k=1KnkEk.(∗)
Gleichzeitig sehen wir, dass die Gesamtanzahl der Bilder als folgende Summe berechnet werden kann
Die Grundidee des Maximum-Entropy-Prinzips ist, dass die Anzahl der Bilder in den entsprechenden Klassen so verteilt wird, dass die Anzahl der möglichen Kombinationen für eine gegebene Energieverteilung maximiert wird. Einfacher ausgedrückt wird das System nicht sehr wahrscheinlich in einen Zustand übergehen, in dem wir nur die Klassen1 es wird auch nicht in einen Zustand übergehen, in dem wir in jeder Klasse die gleiche Anzahl von Bildern haben. Aber warum ist das so? Wenn alle Bilder in einer Klasse wären, hätte das System eine sehr niedrige Entropie. Der zweite Fall wäre ebenfalls eine sehr unnatürliche Situation. Es ist wahrscheinlicher, dass wir mehr Bilder mit mäßiger Energie und weniger Bilder mit sehr hoher und sehr niedriger Energie haben.
Die Entropie nimmt mit der Anzahl der Kombinationen zu, in denen wir dieN Bilder mit entsprechender Energie in die n1 , n2 , ..., nK aufteilen können . Diese Anzahl von Kombinationen ist durch den Multinomialkoeffizienten gegeben
Wir werden versuchen, diese Zahl zu maximieren, vorausgesetzt, wir haben unendlich viele BilderN→∞ . Seine Maximierung hat aber auch Gleichheitsbeschränkungen (∗) und (∗∗) . Diese Art der Optimierung wird als eingeschränkte Optimierung bezeichnet. Wir können dieses Problem mithilfe der Methode der Lagrange-Multiplikatoren analytisch lösen. Wir führen die Lagrange-Multiplikatoren β und α für die Gleichheitsbedingungen ein und wir führen die Lagrange-Funktion L(n1,n2,…,nk;α,β) .
Da wirN→∞ haben, können wir auch nk→∞ annehmen und die Stirling-Näherung für die Fakultät verwenden
Beachten Sie, dass diese Näherung (die ersten beiden Terme) nur asymptotisch ist. Dies bedeutet jedoch nicht, dass diese Näherung gegenlnn! konvergiert ! für n→∞ .
Die partielle Ableitung der Lagrange-Funktion in Bezug aufnk~ führt zu
Wenn wir diese partielle Ableitung auf Null setzen, können wir finden
If we put this back into(∗∗∗) we get something that should remind us of the softmax function
If we definenk~/N as the probability of class Ck~ by pk~ we will obtain something that is really similar to the softmax function
Hence, this shows us that the softmax function is the function that is maximizing the entropy in the distribution of images. From this point, it makes sense to use this as the distribution of images. If we setβEk~=wTkx we exactly get the definition of the softmax function for the kth output.
quelle