Warum wird die Softmax-Funktion verwendet, um Wahrscheinlichkeiten zu berechnen, obwohl wir jeden Wert durch die Summe des Vektors teilen können?

20

Durch Anwenden der Softmax-Funktion auf einen Vektor werden "Wahrscheinlichkeiten" und Werte zwischen 0 und . 1

Wir können aber auch jeden Wert durch die Summe der Vektoren dividieren, wodurch Wahrscheinlichkeiten und Werte zwischen0 und .1

Ich habe die Antwort hier gelesen , aber es heißt, dass der Grund darin liegt, dass sie differenzierbar ist, obwohl beide Funktionen differenzierbar sind.

Floyd
quelle
1
Ich denke, es ist besser, wenn Sie sich zuerst die logistische Regression ansehen. Ihr 'Ziel' ist es, monoton in (0,1) umzuwandeln . Dies ist die logistische Funktion. Beachten Sie, dass jede kumulative (Wahrscheinlichkeits-) Verteilungsfunktion auf der realen Linie auch funktioniert - siehe Probit-Regression, die die Normalverteilungsfunktion verwendet. (,)
Seanv507

Antworten:

36

Die von Ihnen vorgeschlagene Funktion hat eine Singularität, wenn die Summe der Elemente Null ist.

Angenommen, Ihr Vektor ist [1,13,23] . Dieser Vektor hat eine Summe von 0, daher ist keine Division definiert. Die Funktion ist hier nicht unterscheidbar.

Wenn eines oder mehrere der Elemente des Vektors negativ ist, die Summe jedoch ungleich Null ist, ist Ihr Ergebnis keine Wahrscheinlichkeit.

Angenommen, Ihr Vektor ist [1,0,2] . Dies hat eine Summe von 1, so dass das Anwenden Ihrer Funktion zu [1,0,2] ist kein Wahrscheinlichkeitsvektor, da sie negative Elemente und Elemente über 1 enthält.

Aus einer breiteren Sicht können wir die spezifische Form der Softmax-Funktion aus der Perspektive der Ausweitung der binären logistischen Regression auf den Fall von drei oder mehr kategorialen Ergebnissen motivieren.

Wenn Sie beispielsweise Absolutwerte oder Quadrate verwenden, wie in den Kommentaren vorgeschlagen, bedeutet dies, dass x und x die gleiche vorhergesagte Wahrscheinlichkeit haben. Dies bedeutet, dass das Modell nicht identifiziert wird . Im Gegensatz dazu ist exp(x) für alle reellen x monoton und positiv , sodass das Softmax-Ergebnis (1) ein Wahrscheinlichkeitsvektor ist und (2) das multinomiale logistische Modell identifiziert wird.

Sycorax sagt Reinstate Monica
quelle
Ich danke dir sehr. Wir können beide Probleme lösen, indem wir durch die Summe der absoluten Werte dividieren.
Floyd
2
Nein. Was passiert, wenn Sie die absoluten Werte beider meiner Beispiele addieren und dann durch diese Summe dividieren?
Sycorax sagt Reinstate Monica
Wirklich danke dir. Ich verstehe es jetzt. aber wir können dieses Problem lösen , indem sie den Absolutwert des Zählers Einnahme oder vielleicht Berechnung für jeden Wert in dem Vektor. Ich versuche nicht hartnäckig zu sein, ich finde es einfach komisch, dass Leute eine komplexe Funktion erfunden haben, obwohl es einfachere gibt, Wahrscheinlichkeiten zu berechnen. Ich kenne nicht viel Mathe, also gibt es vielleicht noch andere mathematische Eigenschaftenxi2/sum(X2)
Floyd
8
[0,0,0]
8
xi2/jxj2|xi|/j|xj|exp(x)
4

Softmax besteht aus zwei Komponenten:

  1. Transformiere die Komponenten zu e ^ x. Dies ermöglicht es dem neuronalen Netzwerk, mit logarithmischen Wahrscheinlichkeiten anstatt mit gewöhnlichen Wahrscheinlichkeiten zu arbeiten. Dies macht aus der gemeinsamen Operation der Multiplikation von Wahrscheinlichkeiten eine Addition, was für die auf linearer Algebra basierende Struktur neuronaler Netze weitaus natürlicher ist.

  2. Normalisieren Sie ihre Summe auf 1, da dies die Gesamtwahrscheinlichkeit ist, die wir benötigen.

Eine wichtige Konsequenz davon ist, dass der Bayes-Satz für ein solches Netzwerk sehr natürlich ist, da es sich nur um die Multiplikation von Wahrscheinlichkeiten handelt, die durch den Nenner normalisiert werden.

Der einfache Fall eines einschichtigen Netzwerks mit Softmax-Aktivierung entspricht der logistischen Regression.

Der Spezialfall des Zweikomponenten-Softmax entspricht der Sigmoid-Aktivierung, die daher bei nur zwei Klassen beliebt ist. In der Klassifikation mit mehreren Klassen wird softmax verwendet, wenn sich die Klassen gegenseitig ausschließen, und komponentenweise wird sigmoid verwendet, wenn sie unabhängig sind.

CodesInChaos
quelle