Arg max lisseEdit
Le nom « softmax » est trompeur ; la fonction n’est pas un maximum lisse (une approximation lisse de la fonction maximum), mais est plutôt une approximation lisse de la fonction arg max : la fonction dont la valeur est quel indice a le maximum. En fait, le terme « softmax » est également utilisé pour la fonction LogSumExp, très proche, qui est un maximum lisse. Pour cette raison, certains préfèrent le terme plus précis de « softargmax », mais le terme « softmax » est conventionnel en apprentissage automatique. Pour cette section, le terme « softargmax » est utilisé pour souligner cette interprétation.
Formellement, au lieu de considérer l’arg max comme une fonction avec une sortie catégorielle 1 , … , n {\displaystyle 1,\dots ,n}
(correspondant à l’indice), on considère la fonction arg max avec une représentation à un coup de la sortie (en supposant qu’il existe un arg maximum unique) : 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),}
où la coordonnée de sortie y i = 1 {\displaystyle y_{i}=1}
si et seulement si i {\displaystyle i}
est l’arg max de ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
, c’est-à-dire z i {\displaystyle z_{i}}
est l’unique valeur maximale de ( z 1 , … , z n ) {\displaystyle (z_{1},\dots ,z_{n})}
. Par exemple, dans cet encodage, a r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),}
puisque le troisième argument est le maximum.
Ceci peut être généralisé à plusieurs valeurs d’arg max (plusieurs z i égaux {\displaystyle z_{i}}.
étant le maximum) en divisant le 1 entre tous les args max ; formellement 1/k où k est le nombre d’arguments supposant le maximum. Par exemple, 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),}
puisque le deuxième et le troisième argument sont tous deux le maximum. Dans le cas où tous les arguments sont égaux, c’est simplement a r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).}
Les points z ayant plusieurs valeurs d’arg max sont des points singuliers (ou singularités, et forment l’ensemble singulier) – ce sont les points où arg max est discontinu (avec une discontinuité de saut) – tandis que les points ayant une seule arg max sont dits non singuliers ou réguliers.
Avec la dernière expression donnée dans l’introduction, softargmax est maintenant une approximation lisse de arg max : comme β → ∞ {\displaystyle \beta \to \infty }.
, softargmax converge vers arg max. Il existe différentes notions de convergence d’une fonction ; softargmax converge vers arg max de manière ponctuelle, ce qui signifie pour chaque entrée fixe z comme β → ∞ {\displaystyle \beta \to \infty }.
, σ β ( z ) → a r g m a x ( z ) . {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).}
Cependant, softargmax ne converge pas uniformément vers arg max, ce qui signifie intuitivement que différents points convergent à des vitesses différentes, et peuvent converger arbitrairement lentement. En fait, softargmax est continue, mais arg max n’est pas continue à l’ensemble singulier où deux coordonnées sont égales, alors que la limite uniforme des fonctions continues est continue. L’incapacité à converger uniformément est due au fait que pour les entrées où deux coordonnées sont presque égales (et l’une est le maximum), l’arg max est l’indice de l’une ou l’autre, de sorte qu’un petit changement dans l’entrée produit un grand changement dans la sortie. Par exemple, σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\displaystyle \sigma _{\beta }(1,1.0001)\to (0,1),}
mais σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\displaystyle \sigma _{\beta }(1,0.9999)\to (1,0),}
et σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
pour toutes les entrées : plus les points sont proches de l’ensemble singulier ( x , x ) {\displaystyle (x,x)}
, plus ils convergent lentement. Cependant, softargmax converge de manière compacte sur l’ensemble non singulier.
Conversement, comme β → – ∞ {\displaystyle \beta \to -\infty }
, softargmax converge vers arg min de la même manière, où ici l’ensemble singulier est constitué de points ayant deux valeurs d’arg min. Dans le langage de l’analyse tropicale, le softmax est une déformation ou une « quantification » de arg max et arg min, correspondant à l’utilisation du semiring log au lieu du semiring max-plus (respectivement min-plus), et récupérer le arg max ou arg min en prenant la limite est appelé « tropicalisation » ou « déquantification ».
Il est également le cas que, pour tout β fixé, si l’on entre z i {\displaystyle z_{i}}.
est beaucoup plus grande que les autres par rapport à la température, T = 1 / β {\displaystyle T=1/\beta }.
, la sortie est approximativement l’arg max. Par exemple, une différence de 10 est importante par rapport à une température 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)}
Cependant, si la différence est faible par rapport à la température, la valeur n’est pas proche de l’arg max. Par exemple, une différence de 10 est faible par rapport à une température 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).}
As β → ∞ {\displaystyle \beta \to \infty }
, la température devient nulle, T = 1 / β → 0 {\displaystyle T=1/\beta \to 0}
, donc finalement toutes les différences deviennent grandes (par rapport à une température qui rétrécit), ce qui donne une autre interprétation pour le comportement limite.
Théorie des probabilitésEdit
En théorie des probabilités, la sortie de la fonction softargmax peut être utilisée pour représenter une distribution catégorielle – c’est-à-dire une distribution de probabilité sur K différents résultats possibles.
Mécanique statistiqueEdit
En mécanique statistique, la fonction softargmax est connue sous le nom de distribution de Boltzmann (ou distribution de Gibbs) ::7 l’ensemble d’indices 1 , … , k {\displaystyle {1,\dots ,k}}.
sont les micro-états du système ; les entrées z i {\displaystyle z_{i}}
sont les énergies de cet état ; le dénominateur est connu comme la fonction de partition, souvent dénotée par Z ; et le facteur β est appelé la froideur (ou bêta thermodynamique, ou température inverse).