Gladde arg maxEdit
De naam “softmax” is misleidend; de functie is geen glad maximum (een gladde benadering van de maximumfunctie), maar is eerder een gladde benadering van de arg max-functie: de functie waarvan de waarde is welke index het maximum heeft. In feite wordt de term “softmax” ook gebruikt voor de nauw verwante LogSumExp functie, die een glad maximum is. Om deze reden verkiezen sommigen de meer nauwkeurige term “softargmax”, maar de term “softmax” is conventioneel in machineleren. In deze paragraaf wordt de term “softargmax” gebruikt om deze interpretatie te benadrukken.
In plaats van de arg max te beschouwen als een functie met categorische output 1 , … , n {{{{{{{{{{{{{{{{{{{{{{{}}}}}},n}
(overeenkomend met de index), beschouw dan de arg max functie met één-hot weergave van de uitvoer (ervan uitgaande dat er een uniek maximum arg is): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , … , 0 ) , {{displaystyle \operatorname {arg,max} (z_{1},punten ,z_{n})=(y_{1},punten ,y_{n})=(0,punten ,0,1,0,punten ,0),}
waarbij de uitgangscoördinaat y i = 1 {\displaystyle y_{i}=1}
als en slechts als i {\displaystyle i}
de arg max is van ( z 1 , … , z n ) {\displaystyle (z_{1},\dots,z_{n})}
, wat betekent dat z i {\displaystyle z_{i}}
de unieke maximumwaarde is van ( z 1 , … , z n ) {\displaystyle (z_{1},\dots,z_{n})}
. Bijvoorbeeld, in deze codering a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {{displaystyle \operatorname {arg,max} (1,5,10)=(0,0,1),}
aangezien het derde argument het maximum is.
Dit kan worden veralgemeend tot meerdere arg max waarden (meerdere gelijke z i {\displaystyle z_{i}}
die het maximum zijn) door de 1 te delen tussen alle max args; formeel 1/k waarbij k het aantal argumenten is dat het maximum veronderstelt. Bijvoorbeeld, a r g m a x ( 1 , 5 , 5 ) = ( 0 , 1 / 2 , 1 / 2 ) , {{{arg,max}} (1,5,5)=(0,1/2,1/2),}
aangezien het tweede en derde argument beide het maximum zijn. In het geval dat alle argumenten gelijk zijn, is dit eenvoudigweg a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {argumenten,max} (z,punten,z)=(1/n,punten,1/n).}
Punten z met meerdere arg max waarden zijn singuliere punten (of singulariteiten, en vormen de singuliere verzameling) – dit zijn de punten waar arg max discontinu is (met een sprongdiscontinuïteit) – terwijl punten met een enkele arg max bekend staan als niet-singuliere of regelmatige punten.
Met de laatste uitdrukking uit de inleiding is softargmax nu een gladde benadering van arg max: als β → ∞ {displaystyle β-bèta β tot β-infty }
, convergeert softargmax naar arg max. Er zijn verschillende noties van convergentie van een functie; softargmax convergeert naar arg max puntgewijs, dat wil zeggen voor elke vaste invoer z als β → ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
Softargmax convergeert echter niet uniform naar arg max, wat intuïtief betekent dat verschillende punten met verschillende snelheden convergeren, en willekeurig langzaam kunnen convergeren. In feite is softargmax continu, maar arg max is niet continu op de singuliere verzameling waar twee coördinaten gelijk zijn, terwijl de uniforme limiet van continue functies wel continu is. Het niet uniform convergeren komt omdat voor inputs waar twee coördinaten bijna gelijk zijn (en één het maximum is), de arg max de index is van de ene of de andere, dus een kleine verandering in input geeft een grote verandering in output. Bijvoorbeeld, σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\naar (0,1),}
maar σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)†tot (1,0),}
en σ β ( 1 , 1 ) = 1 / 2 {{\displaystyle \sigma _{\beta }(1,1)=1/2}
voor alle ingangen: hoe dichter de punten bij de singuliere verzameling ( x , x ) liggen {\displaystyle (x,x)}
, hoe langzamer ze convergeren. Softargmax convergeert echter wel compact op de niet-singuliere verzameling.
Omgekeerd geldt dat als β → – ∞ {displaystyle \beta \to -\infty }
, convergeert softargmax op dezelfde manier naar arg min, waarbij de singuliere verzameling hier punten zijn met twee arg min waarden. In de taal van de tropische analyse is de softmax een vervorming of “quantisatie” van arg max en arg min, wat overeenkomt met het gebruik van de log semiring in plaats van de max-plus semiring (respectievelijk min-plus semiring), en het terugvinden van de arg max of arg min door de limiet te nemen wordt “tropicalisatie” of “dequantisatie” genoemd.
Het is ook zo dat, voor elke vaste β, als men z i invoert {displaystyle z_{i}}
veel groter is dan de andere in verhouding tot de temperatuur, T = 1 / β {Displaystyle T=1/β}
, is de uitvoer ongeveer de arg max. Bijvoorbeeld, een verschil van 10 is groot ten opzichte van een temperatuur van 1: σ ( 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)=links(1/(1+e^{10}),e^{10}/(1+e^{10})\rechts)\af (0,00005,0,99995)}
Als het verschil echter klein is in verhouding tot de temperatuur, ligt de waarde niet in de buurt van de arg max. Bijvoorbeeld, een verschil van 10 is klein ten opzichte van een temperatuur van 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 β → ∞ {\an5}
, gaat de temperatuur naar nul, T = 1 / β → 0 {Displaystyle T=1/ \beta \to 0}
, dus uiteindelijk worden alle verschillen groot (ten opzichte van een krimpende temperatuur), wat een andere interpretatie geeft voor het limietgedrag.
WaarschijnlijkheidstheorieEdit
In de waarschijnlijkheidsleer kan de output van de softargmax-functie worden gebruikt om een categorische verdeling weer te geven – dat wil zeggen, een waarschijnlijkheidsverdeling over K verschillende mogelijke uitkomsten.
Statistische mechanicaEdit
In de statistische mechanica is de softargmax-functie bekend als de Boltzmann-verdeling (of Gibbs-verdeling)::7 de indexverzameling 1 , … , k {1,\dots,k}}
zijn de microtoestanden van het systeem; de ingangen z i {\displaystyle z_{i}}
zijn de energieën van die toestand; de noemer staat bekend als de verdelingsfunctie, vaak aangeduid met Z; en de factor β wordt de koude genoemd (of thermodynamische bèta, of inverse temperatuur).