Glattes arg maxEdit
Der Name „softmax“ ist irreführend; die Funktion ist kein geglättetes Maximum (eine geglättete Annäherung an die Maximum-Funktion), sondern eine geglättete Annäherung an die arg max-Funktion: die Funktion, deren Wert derjenige Index ist, der das Maximum hat. Tatsächlich wird der Begriff „softmax“ auch für die eng verwandte LogSumExp-Funktion verwendet, die ein glattes Maximum ist. Aus diesem Grund bevorzugen einige den genaueren Begriff „softargmax“, aber der Begriff „softmax“ ist beim maschinellen Lernen üblich. In diesem Abschnitt wird der Begriff „softargmax“ verwendet, um diese Interpretation zu unterstreichen.
Anstatt arg max als eine Funktion mit kategorialem Ausgang 1 , … , n {\displaystyle 1,\dots ,n}
(entsprechend dem Index), betrachten Sie die arg max-Funktion mit einer Einpunkt-Darstellung des Ausgangs (unter der Annahme, dass es ein eindeutiges Maximum arg gibt): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , … , 0 ) , (z, … , z ) = ( 1 / n , … , 1 / n ). (z_{1},\dots ,z_{n})=(y_{1},\dots ,y_{n})=(0,\dots ,0,1,0,\dots ,0),}
wobei die Ausgabekoordinate y i = 1 {\displaystyle y_{i}=1}
wenn und nur wenn i {\displaystyle i}
das arg max von ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
, also z i {\displaystyle z_{i}}
ist der einzige Maximalwert von ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
. Zum Beispiel ist in dieser Kodierung a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
da das dritte Argument das Maximum ist.
Dies kann auf mehrere arg max-Werte verallgemeinert werden (mehrere gleiche z i {\displaystyle z_{i}}
ist das Maximum), indem man die 1 zwischen allen max-Argumenten teilt; formal 1/k, wobei k die Anzahl der Argumente ist, die das Maximum annehmen. Zum Beispiel: a r g m a x ( 1 , 5 , 5 ) = ( 0 , 1 / 2 , 1 / 2 ) , {\displaystyle \operatorname {arg\,max} (1,5,5)=(0,1/2,1/2),}
da das zweite und dritte Argument beide das Maximum sind. Falls alle Argumente gleich sind, ist dies einfach a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z , … , z ) = ( 1 / n , … , 1 / n ).
Punkte z mit mehreren arg max-Werten sind singuläre Punkte (oder Singularitäten, und bilden die singuläre Menge) – das sind die Punkte, in denen arg max unstetig ist (mit einer Sprungdiskontinuität) – während Punkte mit einem einzigen arg max als nicht-singuläre oder reguläre Punkte bezeichnet werden.
Mit dem letzten Ausdruck, der in der Einleitung gegeben wurde, ist softargmax nun eine glatte Approximation von arg max: als β → ∞ {\displaystyle \beta \to \infty }
, konvergiert softargmax gegen arg max. Es gibt verschiedene Begriffe für die Konvergenz einer Funktion; softargmax konvergiert punktweise zu arg max, d.h. für jede feste Eingabe z als β → ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\sigma _{\beta }(\mathbf {z} )\zu \operatorname {arg\,max} (\mathbf {z} )}.
Softargmax konvergiert jedoch nicht gleichmäßig zu arg max, was intuitiv bedeutet, dass verschiedene Punkte unterschiedlich schnell konvergieren und unter Umständen beliebig langsam konvergieren. Tatsächlich ist softargmax stetig, aber arg max ist an der singulären Menge, an der zwei Koordinaten gleich sind, nicht stetig, während der einheitliche Grenzwert von stetigen Funktionen stetig ist. Dass die Konvergenz nicht gleichmäßig ist, liegt daran, dass bei Eingaben, bei denen zwei Koordinaten fast gleich sind (und eine das Maximum ist), arg max der Index der einen oder der anderen Koordinate ist, so dass eine kleine Änderung der Eingabe zu einer großen Änderung der Ausgabe führt. Zum Beispiel σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\zu (0,1),}
aber σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\zu (1,0),}
und σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
für alle Eingaben: je näher die Punkte an der singulären Menge ( x , x ) liegen {\displaystyle (x,x)}
, desto langsamer konvergieren sie. Softargmax konvergiert jedoch kompakt auf der nicht-singulären Menge.
Umgekehrt, wenn β → – ∞ {\displaystyle \beta \to -\infty }
, konvergiert softargmax auf die gleiche Weise gegen arg min, wobei hier die singuläre Menge Punkte mit zwei arg min-Werten sind. In der Sprache der tropischen Analysis ist softargmax eine Deformation oder „Quantisierung“ von arg max und arg min, entsprechend der Verwendung des log-Semirings anstelle des max-plus-Semirings (bzw. min-plus-Semirings), und die Wiederherstellung von arg max oder arg min durch die Annahme des Grenzwertes wird „Tropikalisierung“ oder „Dequantisierung“ genannt.
Es ist auch der Fall, dass, für jedes feste β, wenn man z i {\displaystyle z_{i}}
viel größer ist als die anderen relativ zur Temperatur, T = 1 / β {\displaystyle T=1/\beta }
, ist die Ausgabe ungefähr der arg max. Zum Beispiel ist eine Differenz von 10 relativ zu einer Temperatur von 1 groß: σ ( 0 , 10 ) := σ 1 ( 0 , 10 ) = ( 1 / ( 1 + e 10 ) , e 10 / ( 1 + e 10 ) ) ≈ ( 0.00005 , 0.99995 ) {\displaystyle \sigma (0,10):=\sigma _{1}(0,10)=\left(1/(1+e^{10}),e^{10}/(1+e^{10})\right)\approx (0.00005,0.99995)}
Wenn jedoch die Differenz im Verhältnis zur Temperatur klein ist, liegt der Wert nicht in der Nähe des arg max. Zum Beispiel ist eine Differenz von 10 klein im Verhältnis zu einer Temperatur von 100:
σ 1 / 100 ( 0 , 10 ) = ( 1 / ( 1 + e 1 / 10 ) , e 1 / 10 / ( 1 + e 1 / 10 ) ) ≈ ( 0.475 , 0.525 ) . {\displaystyle \sigma _{1/100}(0,10)=\left(1/(1+e^{1/10}),e^{1/10}/(1+e^{1/10})\right)\approx (0.475,0.525).}
Als β → ∞ {\displaystyle \beta \to \infty }
, geht die Temperatur gegen Null, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, so dass schließlich alle Differenzen groß werden (relativ zu einer schrumpfenden Temperatur), was eine andere Interpretation für das Grenzverhalten liefert.
WahrscheinlichkeitstheorieBearbeiten
In der Wahrscheinlichkeitstheorie kann die Ausgabe der Funktion softargmax verwendet werden, um eine kategoriale Verteilung darzustellen – d. h. eine Wahrscheinlichkeitsverteilung über K verschiedene mögliche Ergebnisse.
Statistische MechanikBearbeiten
In der statistischen Mechanik ist die softargmax-Funktion als Boltzmann-Verteilung (oder Gibbs-Verteilung) bekannt::7 die Indexmenge 1 , … , k {\displaystyle {1,\dots ,k}}
sind die Mikrozustände des Systems; die Eingaben z i {\displaystyle z_{i}}
sind die Energien dieses Zustands; der Nenner wird als Verteilungsfunktion bezeichnet, die oft mit Z bezeichnet wird; und der Faktor β wird als Kälte (oder thermodynamisches Beta oder inverse Temperatur) bezeichnet.