Argel macio maxEdit
O nome “softmax” é enganador; a função não é um máximo suave (uma aproximação suave à função máxima), mas sim uma aproximação suave à função arg max: a função cujo valor é qual o índice que tem o máximo. Na verdade, o termo “softmax” também é utilizado para a função LogSumExp, que é um máximo de suavidade. Por esta razão, alguns preferem o termo mais preciso “softargmax”, mas o termo “softmax” é convencional na aprendizagem da máquina. Para esta seção, o termo “softargmax” é usado para enfatizar esta interpretação.
Formalmente, ao invés de considerar o arg max como uma função com saída categórica 1 , … , n {\displaystyle 1,\displaystyle 1,\displaystyle 1,n}
(correspondente ao índice), considere a função arg max com representação da saída em um ponto (assumindo que há um único arg máximo): a r g m a x ( z 1 , … , z n ) = ( y 1 , … , y n ) = ( 0 , … , 0 , 1 , 0 , … , 0 ) , {\i1}displaystyle \iorname {arg,max} (z_{1},{1},}dots ,z_{n})=(y_{1},}dots ,y_{n})=(0,{{1}dots ,0,1,0,}dots ,0),}
onde a coordenada de saída y i = 1 {\i}displaystyle y_{i}=1}
se e só se i {\\i1}displaystyle i
é o arg max de ( z 1 , … , z n ) {\i1}displaystyle (z_{1},\i}dots ,z_{n})}
, significando z i {\i}displaystyle z_{\i}}
é o valor máximo único de ( z 1 , … , z n ) {\i1}displaystyle (z_{1},\i}dots ,z_{n})}
. Por exemplo, nesta codificação um r g m a x ( 1 , 5 , 10 ) = ( 0 , 0 , 1 ) , {\i1}displaystyle {\i1}operatorname {\i} (1,5,10)=(0,0,1),}
uma vez que o terceiro argumento é o máximo.
Isso pode ser generalizado para múltiplos valores máximos de arg (múltiplos iguais a z i {\i}}
sendo o máximo) dividindo o 1 entre todos os args máximos; formalmente 1/k onde k é o número de argumentos assumindo o máximo. Por exemplo, a r g m a x ( 1 , 5 , 5 ) = ( 0 , 1 / 2 , 1 / 2 ) , {\i1}displaystyle {\i1}operatorname {arg,max} (1,5,5)=(0,1/2,1/2),}
uma vez que o segundo e terceiro argumentos são ambos o máximo. Caso todos os argumentos sejam iguais, este é simplesmente um r g m a x ( z , … , z ) = ( 1 / n , … , 1 / n ) . estilo de jogo do jogo…
Pontos z com múltiplos valores de arg max são pontos singulares (ou singularidades, e formam o conjunto singular) – estes são os pontos onde arg max é descontínuo (com uma descontinuidade de salto) – enquanto pontos com um único arg max são conhecidos como pontos não singulares ou regulares.
Com a última expressão dada na introdução, softargmax é agora uma aproximação suave de arg max: como β → ∞ {\\i1}beta {\i1}a {\i1}
, softargmax converge para arg max. Há várias noções de convergência de uma função; softargmax converge para arg max pointwise, significando para cada entrada fixa z como β → ∞ {\displaystyle \beta \beta \beta \beta \beta \beta}
, σ β ( z ) → a r g m a x ( z ) . (mathbf {z} ).}
No entanto, softargmax não converge uniformemente para arg max, o que significa intuitivamente que diferentes pontos convergem a taxas diferentes, e podem convergir arbitrariamente lentamente. Na verdade, o softargmax é contínuo, mas o arg max não é contínuo no conjunto singular onde duas coordenadas são iguais, enquanto o limite uniforme das funções contínuas é contínuo. A falha em convergir uniformemente é porque para entradas onde duas coordenadas são quase iguais (e uma é o máximo), o arg max é o índice de uma ou outra, então uma pequena mudança na entrada produz uma grande mudança na saída. Por exemplo, σ β ( 1 , 1.0001 ) → ( 0 , 1 ) , {\i1}sigma _{\i1.0001}(1,1.0001)}para (0,1),}
mas σ β ( 1 , 0.9999 ) → ( 1 , 0 ) , {\i1.0001){\i}(1,0 ) , {\i1.0001)}sigma _{\i}(1,0.9999)\a (1,0),}
e σ β ( 1 , 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,1)=1/2}
para todas as entradas: quanto mais próximos os pontos estão do conjunto singular ( x , x ) {\displaystyle (x,x)}
, quanto mais lentamente convergem. No entanto, o softargmax converge de forma compacta sobre o conjunto não individualizado.
Conversamente, como β → – ∞ {\\i1}-beta-apenas
, softargmax converge para arg min da mesma forma, onde aqui o conjunto singular é pontos com dois valores de arg min. Na linguagem da análise tropical, a softargmax é uma deformação ou “quantização” de arg max e arg min, correspondendo ao uso do log semiring em vez do max-plus semiring (respectivamente min-plus semiring), e recuperar o arg max ou arg min tomando o limite chama-se “tropicalização” ou “desquantização”.
É também o caso que, para qualquer fixo β, se uma entrada z i {\i {\i}}
é muito maior que os outros em relação à temperatura, T = 1 / β {\displaystyle T=1/\beta }
, a saída é aproximadamente a arg max. Por exemplo, uma diferença de 10 é grande em relação a uma temperatura de 1: σ ( 0 , 10 ) := σ 1 ( 0 , 10 ) = ( 1 / ( 1 + e 10 ) , e 10 / ( 1 + e 10 ) ) ≈ ( 0.00005 , 0,99995 ) {\\i1}sigma (0,10):=\i>>>>(1}(0,10)=>esquerda(1/(1+e^{10}),e^{10}/(1+e^{10})}direita)\i>approx (0,00005,0,99995)}
No entanto, se a diferença for pequena em relação à temperatura, o valor não é próximo do arg máximo. Por exemplo, uma diferença de 10 é pequena em relação a uma temperatura 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 β → ∞ {\i1}beta {\i1}a {\i1}infty {\i}
, a temperatura vai a zero, T = 1 / β → 0 {\\displaystyle T=1/\beta \a 0}
Teoria da ProbabilidadeEditar
Na teoria da probabilidade, a saída da função softargmax pode ser usada para representar uma distribuição categórica – ou seja, uma distribuição de probabilidade sobre K diferentes resultados possíveis.
Mecânica estatísticaEditar
Em mecânica estatística, a função softargmax é conhecida como a distribuição Boltzmann (ou distribuição Gibbs)::7 o conjunto de índices 1 , … , k {\displaystyle {1,\displaystyle ,k}}}
são os microstatos do sistema; as entradas z i {\i {\i}}
são as energias desse estado; o denominador é conhecido como a função de partição, muitas vezes denotada por Z; e o fator β é chamado de frio (ou beta termodinâmico, ou temperatura inversa).