Arg maxEdit
Il nome “softmax” è fuorviante; la funzione non è un massimo liscio (un’approssimazione liscia alla funzione di massimo), ma è piuttosto un’approssimazione liscia alla funzione arg max: la funzione il cui valore è quale indice ha il massimo. In effetti, il termine “softmax” è usato anche per la funzione LogSumExp, strettamente correlata, che è un massimo liscio. Per questo motivo, alcuni preferiscono il termine più accurato “softargmax”, ma il termine “softmax” è convenzionale nel machine learning. Per questa sezione, il termine “softargmax” è usato per sottolineare questa interpretazione.
Formalmente, invece di considerare l’arg max come una funzione con uscita categorica 1 , … , n {\displaystyle 1,\punti ,n}
(corrispondente all’indice), si consideri la funzione arg max con rappresentazione one-hot dell’uscita (supponendo che ci sia un unico arg max): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , … , 0 ) , {\an8}(*)…{\an8}(*)…{\an8}(*)…{\an8}…{\an8} (z_{1},\punti ,z_{n})=(y_{1},\punti ,y_{n})=(0,\punti ,0,1,0,\punti ,0),}
dove la coordinata di uscita y i = 1 {\displaystyle y_{i}=1}
se e solo se i {\displaystyle i}
è l’arg max di ( z 1 , … , z n ) {\displaystyle (z_{1},\punti ,z_{n})}
, cioè z i {displaystyle z_{i}
è l’unico valore massimo di ( z 1 , … , z n ) {\displaystyle (z_{1},\punti ,z_{n})}
. Per esempio, in questa codifica a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
poiché il terzo argomento è il massimo.
Questo può essere generalizzato a più valori di arg max (più valori uguali z i {\displaystyle z_{i}}
essendo il massimo) dividendo l’1 tra tutti gli argomenti max; formalmente 1/k dove k è il numero di argomenti che assumono il massimo. Per esempio, 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),}
poiché il secondo e il terzo argomento sono entrambi il massimo. Nel caso in cui tutti gli argomenti siano uguali, questo è semplicemente a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\punti ,z)=(1/n,\punti ,1/n).}
I punti z con più valori di arg max sono punti singolari (o singolarità, e formano l’insieme singolare) – questi sono i punti in cui arg max è discontinuo (con una discontinuità di salto) – mentre i punti con un solo arg max sono noti come punti non singolari o regolari.
Con l’ultima espressione data nell’introduzione, softargmax è ora un’approssimazione liscia di arg max: come β → ∞ {displaystyle \beta \infty }
, softargmax converge ad arg max. Ci sono varie nozioni di convergenza di una funzione; softargmax converge ad arg max in modo puntiforme, cioè per ogni input fisso z come β → ∞ {displaystyle \beta \infty }
, σ β ( z ) → a r g m a x ( z ) . {\a6}(\mathbf {z})\sigma _{beta }(\mathbf {z})\sigma _(\mathbeta})\sigma _(\mathbf {z}) a \operatorname {arg\a,max} (\mathbf {z} ).}
Tuttavia, softargmax non converge uniformemente ad arg max, il che significa intuitivamente che punti diversi convergono a velocità diverse, e possono convergere arbitrariamente lentamente. Infatti, softargmax è continuo, ma arg max non è continuo nell’insieme singolare dove due coordinate sono uguali, mentre il limite uniforme delle funzioni continue è continuo. La mancata convergenza uniforme è dovuta al fatto che per gli input in cui due coordinate sono quasi uguali (e una è il massimo), l’arg max è l’indice di uno o dell’altro, quindi un piccolo cambiamento nell’input produce un grande cambiamento nell’output. Per esempio, σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\a (0,1),}
ma σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\a (1,0),}
e σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
per tutti gli ingressi: più i punti sono vicini all’insieme singolare ( x , x ) {\displaystyle (x,x)}
, più lentamente convergono. Tuttavia, softargmax converge in modo compatto sull’insieme non singolare.
Conversamente, come β → – ∞ {displaystyle \beta \a -infty }
, softargmax converge ad arg min nello stesso modo, dove qui l’insieme singolare è costituito da punti con due valori di arg min. Nel linguaggio dell’analisi tropicale, la softmax è una deformazione o “quantizzazione” di arg max e arg min, corrispondente all’uso del semiring log al posto del semiring max-plus (rispettivamente min-plus), e recuperare l’arg max o arg min prendendo il limite è chiamato “tropicalizzazione” o “dequantizzazione”.
E’ anche il caso che, per qualsiasi β fisso, se si immette z i {displaystyle z_{i}}
è molto più grande degli altri rispetto alla temperatura, T = 1 / β {displaystyle T=1/\beta }
, l’uscita è approssimativamente l’arg max. Ad esempio, una differenza di 10 è grande rispetto a una temperatura di 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)=\sinistra(1/(1+e^{10}),e^{10}/(1+e^{10})\destra)\approx (0.00005,0.99995)}
Tuttavia, se la differenza è piccola rispetto alla temperatura, il valore non è vicino all’arg max. Per esempio, una differenza di 10 è piccola rispetto a una temperatura di 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).}
Come β → ∞ {displaystyle \beta \a \infty }
, la temperatura va a zero, T = 1 / β → 0 {displaystyle T=1/\beta \to 0}
, così alla fine tutte le differenze diventano grandi (rispetto ad una temperatura che si riduce), il che dà un’altra interpretazione del comportamento limite.
Teoria della probabilitàModifica
Nella teoria della probabilità, l’output della funzione softargmax può essere usato per rappresentare una distribuzione categorica – cioè una distribuzione di probabilità su K diversi risultati possibili.
Meccanica statisticaModifica
Nella meccanica statistica, la funzione softargmax è nota come distribuzione di Boltzmann (o distribuzione di Gibbs)::7 l’insieme degli indici 1 , … , k {\displaystyle {1,\punti ,k}}
sono i microstati del sistema; gli ingressi z i {\displaystyle z_{i}
sono le energie di quello stato; il denominatore è noto come funzione di partizione, spesso indicato con Z; e il fattore β è chiamato freddezza (o beta termodinamico, o temperatura inversa).