Smooth arg maxEdit
Numele „softmax” este înșelător; funcția nu este un maxim neted (o aproximare netedă a funcției de maxim), ci este mai degrabă o aproximare netedă a funcției arg max: funcția a cărei valoare este care index are maximul. De fapt, termenul „softmax” este utilizat, de asemenea, pentru funcția LogSumExp, strâns legată de aceasta, care este un maxim neted. Din acest motiv, unii preferă termenul mai precis „softargmax”, dar termenul „softmax” este convențional în învățarea automată. Pentru această secțiune, termenul „softargmax” este utilizat pentru a sublinia această interpretare.
În mod formal, în loc să considerăm arg max ca o funcție cu ieșire categorică 1 , … , n {\displaystyle 1,\dots ,n}
(corespunzătoare indicelui), să considerăm funcția arg max cu o reprezentare one-hot a ieșirii (presupunând că există un arg maxim unic): 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},\dots ,z_{n})=(y_{1},\dots ,y_{n})=(0,\dots ,0,1,0,\dots ,0),}
unde coordonata de ieșire y i = 1 {\displaystyle y_{i}=1}
dacă și numai dacă i {\displaystyle i}
este arg max al ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
, ceea ce înseamnă că z i {\displaystyle z_{i}}
este singura valoare maximă a ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
. De exemplu, în această codificare a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
, deoarece al treilea argument este maximul.
Acest lucru poate fi generalizat la mai multe valori arg max (mai multe valori egale z i {\displaystyle z_{i}}
fiind maximul) prin împărțirea lui 1 între toate argumentele max; în mod formal 1/k unde k este numărul de argumente care presupun maximul. De exemplu, a r g m a x ( 1 , 5 , 5 , 5 ) = ( 0 , 1 / 2 , 1 / 2 ) , {\displaystyle \operatorname {arg\,max} (1,5,5)=(0,1/2,1/2),}
, deoarece al doilea și al treilea argument sunt ambele maxime. În cazul în care toate argumentele sunt egale, aceasta este pur și simplu a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}
Punctele z cu valori multiple ale arg max sunt puncte singulare (sau singularități, și formează setul singular) – acestea sunt punctele în care arg max este discontinuu (cu o discontinuitate de salt) – în timp ce punctele cu un singur arg max sunt cunoscute ca puncte nesingulare sau regulate.
Cu ultima expresie dată în introducere, softargmax este acum o aproximare netedă a arg max: ca β → ∞ {\displaystyle \beta \to \infty }
, softargmax converge la arg max. Există diverse noțiuni de convergență a unei funcții; softargmax converge la arg max punctual, ceea ce înseamnă că pentru fiecare intrare fixă z ca β → ∞ {\displaystyle \beta \to \infty }
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
Cu toate acestea, softargmax nu converge uniform la arg max, ceea ce înseamnă, intuitiv, că puncte diferite converg cu viteze diferite și pot converge arbitrar de lent. De fapt, softargmax este continuă, dar arg max nu este continuă la setul singular în care două coordonate sunt egale, în timp ce limita uniformă a funcțiilor continue este continuă. Imposibilitatea de a converge uniform se datorează faptului că, pentru intrările în care două coordonate sunt aproape egale (și una dintre ele este maximă), arg max este indicele uneia sau al celeilalte, astfel încât o schimbare mică în intrare produce o schimbare mare în ieșire. De exemplu, σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
dar σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\ la (1,0),}
și σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
pentru toate intrările: cu cât punctele sunt mai apropiate de setul singular ( x , x ) {\displaystyle (x,x)}
, cu atât converg mai lent. Cu toate acestea, softargmax converge în mod compact pe setul nesingular.
În sens invers, pe măsură ce β → – ∞ {\displaystyle \beta \to -\infty }
, softargmax converge la arg min în același mod, unde aici setul singular este reprezentat de punctele cu două valori arg min. În limbajul analizei tropicale, softmax este o deformare sau „cuantificare” a arg max și arg min, corespunzând utilizării semiringului logaritmic în loc de semiringul max-plus (respectiv min-plus), iar recuperarea arg max sau arg min prin luarea limitei se numește „tropicalizare” sau „decuantificare”.
De asemenea, este cazul că, pentru orice β fixat, dacă se introduce z i {\displaystyle z_{i}}
este mult mai mare decât celelalte în raport cu temperatura, T = 1 / β {\displaystyle T=1/\beta }
, rezultatul este aproximativ arg max. De exemplu, o diferență de 10 este mare în raport cu o temperatură de 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)}
Cu toate acestea, dacă diferența este mică în raport cu temperatura, valoarea nu este apropiată de arg max. De exemplu, o diferență de 10 este mică în raport cu o temperatură de 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).}
Ca β → ∞ {\displaystyle \beta \to \infty }
, temperatura ajunge la zero, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, astfel încât, în cele din urmă, toate diferențele devin mari (în raport cu o temperatură care se micșorează), ceea ce oferă o altă interpretare pentru comportamentul limită.
Teoria probabilitățilorEdit
În teoria probabilităților, ieșirea funcției softargmax poate fi utilizată pentru a reprezenta o distribuție categorială – adică o distribuție de probabilitate pe K rezultate posibile diferite.
Mecanică statisticăEdit
În mecanica statistică, funcția softargmax este cunoscută sub numele de distribuția Boltzmann (sau distribuția Gibbs)::7 setul de indici 1 , … , k {\displaystyle {1,\dots ,k}}.
sunt microstatele sistemului; intrările z i {\displaystyle z_{i}}
sunt energiile acelei stări; numitorul este cunoscut sub numele de funcția de partiție, adesea notată cu Z; iar factorul β se numește răceală (sau beta termodinamic, sau temperatura inversă).