Smooth arg maxEdit
Formellt sett, istället för att betrakta arg max som en funktion med kategorisk utgång 1 , … , n {\displaystyle 1,\dots ,n}
(motsvarande indexet), betrakta arg max-funktionen med en enstaka representation av utgången (förutsatt att det finns ett unikt maximum arg): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 0 , 1 , 0 , … , 0 ) , {\displaystyle \operatorname {arg\,max} (z_{1},\dots ,z_{n})=(y_{1},\dots ,y_{n})=(0,\dots ,0,1,0,\dots ,0),}
där utdatakoordinaten y i = 1 {\displaystyle y_{i}=1}}
om och endast om i {\displaystyle i}
är arg max av ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
, vilket innebär att z i {\displaystyle z_{i}}
är det unika maximala värdet av ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
. Till exempel, i denna kodning a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
eftersom det tredje argumentet är maximum.
Detta kan generaliseras till flera arg max-värden (flera lika z i {\displaystyle z_{i}}
som är maximum) genom att dividera 1 mellan alla args max; formellt 1/k där k är antalet argument som antar maximum. Till exempel, 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),}
eftersom både det andra och det tredje argumentet är maximum. Om alla argument är lika är detta helt enkelt a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}
Punkter z med flera arg max-värden är singulära punkter (eller singulariteter, och bildar den singulära mängden) – detta är de punkter där arg max är diskontinuerlig (med en hoppdiskontinuitet) – medan punkter med en enda arg max är kända som icke-singulära eller regelbundna punkter.
Med det sista uttrycket som gavs i inledningen är softargmax nu en jämn approximation av arg max: som β → ∞ {\displaystyle \beta \to \infty }
konvergerar softargmax mot arg max. Det finns olika begrepp om konvergens för en funktion; softargmax konvergerar till arg max punktvis, vilket innebär att för varje fast inmatning z som β → ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
Softargmax konvergerar dock inte enhetligt mot arg max, vilket intuitivt innebär att olika punkter konvergerar olika snabbt och kan konvergera godtyckligt långsamt. I själva verket är softargmax kontinuerlig, men arg max är inte kontinuerlig vid den singulära mängden där två koordinater är lika, medan den enhetliga gränsen för kontinuerliga funktioner är kontinuerlig. Att konvergensen inte är enhetlig beror på att för ingångar där två koordinater är nästan lika (och den ena är maximalt) är arg max indexet för den ena eller den andra, så en liten förändring i ingången ger en stor förändring i utgången. Till exempel σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
men σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\till (1,0),}
och σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
för alla ingångar: ju närmare punkterna ligger den singulära mängden ( x , x ) {\displaystyle (x,x)}
, desto långsammare konvergerar de. Softargmax konvergerar dock kompakt i den icke-singulära mängden.
Tvärtom, när β → – ∞ {\displaystyle \beta \to -\infty }
, konvergerar softargmax till arg min på samma sätt, där den singulära mängden här är punkter med två arg min-värden. På språket för tropisk analys är softmax en deformation eller ”kvantisering” av arg max och arg min, vilket motsvarar att man använder log-semiring i stället för max-plus-semiring (respektive min-plus-semiring), och att återfå arg max eller arg min genom att ta gränsen kallas ”tropikalisering” eller ”dekvantisering”.
Det är också så att, för varje fast β, om man matar in z i {\displaystyle z_{i}}
är mycket större än de andra i förhållande till temperaturen, T = 1 / β {\displaystyle T=1/\beta }
är resultatet ungefär arg max. Till exempel är en skillnad på 10 stor i förhållande till en temperatur på 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)=\left(1/(1+e^{10}),e^{10}/(1+e^{10})\right)\approx (0.00005,0.99995)}
Om skillnaden är liten i förhållande till temperaturen är värdet dock inte nära arg max. Till exempel är en skillnad på 10 liten i förhållande till en temperatur på 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).}
As β → ∞ {\displaystyle \beta \to \infty }
går temperaturen mot noll, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, så till slut blir alla skillnader stora (i förhållande till en krympande temperatur), vilket ger en annan tolkning av gränsbeteendet.
SannolikhetsteoriRedigera
I sannolikhetsteori kan resultatet av softargmax-funktionen användas för att representera en kategorisk fördelning – det vill säga en sannolikhetsfördelning över K olika möjliga utfall.
Statistisk mekanikRedigera
I statistisk mekanik är softargmax-funktionen känd som Boltzmann-fördelningen (eller Gibbs-fördelningen)::7 indexuppsättningen 1 , … , k {\displaystyle {1,\dots ,k}}
är systemets mikrotillstånd; ingångarna z i {\displaystyle z_{i}}
är energierna i det tillståndet; nämnaren är känd som fördelningsfunktionen, ofta betecknad med Z; och faktorn β kallas för köld (eller termodynamisk beta, eller omvänd temperatur).