Por que a função softmax é usada para calcular probabilidades, embora possamos dividir cada valor pela soma do vetor?

20

A aplicação da função softmax em um vetor produzirá "probabilidades" e valores entre e . 01

Mas também podemos dividir cada valor pela soma do vetor e isso produzirá probabilidades e valores entre e .01

Eu li a resposta aqui, mas diz que a razão é porque é diferenciável, embora Ambas as funções sejam diferenciáveis.

floyd
fonte
1
Eu acho que é melhor se você olhar primeiro para a regressão logística. seu 'objetivo' é transformar monotonicamente em (0,1). É isso que a função logística faz. Observe que qualquer função de distribuição cumulativa (probabilidade) na linha real também funciona - consulte regressão probit que usa a função de distribuição normal. (,)
seanv507 30/07

Respostas:

36

A função que você propõe tem uma singularidade sempre que a soma dos elementos é zero.

Suponha que seu vetor seja . Este vetor tem uma soma de 0, portanto, a divisão não está definida. A função não é diferenciável aqui.[1,13,23]

Além disso, se um ou mais dos elementos do vetor forem negativos, mas a soma for diferente de zero, seu resultado não será uma probabilidade.

Suponha que seu vetor seja . Isso tem uma soma de 1, portanto, a aplicação de sua função resulta em , que não é um vetor de probabilidade porque possui elementos negativos e elementos que excedem 1.[1,0,2][1,0,2]

Tendo uma visão mais ampla, podemos motivar a forma específica da função softmax da perspectiva de estender a regressão logística binária para o caso de três ou mais resultados categóricos.

Fazer coisas como tomar valores absolutos ou quadrados, como sugerido nos comentários, significa que e têm a mesma probabilidade prevista; isso significa que o modelo não está identificado . Por outro lado, é monotônico e positivo para todo real ; portanto, o resultado do softmax é (1) um vetor de probabilidade e (2) o modelo logístico multinomial é identificado.xxexp(x)x

Sycorax diz restabelecer Monica
fonte
Muito obrigado. Podemos resolver os dois problemas dividindo pela soma dos valores absolutos, certo?
floyd 30/07
2
Não. O que acontece se você somar os valores absolutos dos dois exemplos e depois dividir por essa soma?
Sycorax diz Reinstate Monica
muito obrigado. Agora eu entendi. mas podemos resolver esse problema usando o valor absoluto do numerador ou talvez calculando para cada valor no vetor. Não estou tentando ser teimoso, apenas acho estranho que as pessoas tenham inventado uma função complexa, embora existam outras mais simples para calcular probabilidades. Eu não sei muita matemática, então talvez haja outras propriedades matemáticasxi2/sum(X2)
floyd
8
Sua proposta ainda falha para . Razões adicionais para a função softmax estão relacionadas às suas propriedades como uma generalização da regressão logística binária para o caso de múltiplos resultados. Temos vários tópicos sobre isso, como stats.stackexchange.com/questions/349418/…[0,0,0]
Sycorax diz Reinstate Monica
8
Além do argumento da Sycorax, aplicar ounão possui a propriedade desejada de que reduzir um elemento vetorial sempre reduzirá sua contribuição de probabilidade. Reduzir elementos negativos aumentaria sua contribuição. tem a propriedade legal de que sua saída é positiva para todas as entradas reais e é monotônica em toda a linha real. xi2/jxj2|xi|/j|xj|exp(x)
Bridgeburners 30/07
4

Softmax tem dois componentes:

  1. Transforme os componentes em e ^ x. Isso permite que a rede neural trabalhe com probabilidades logarítmicas, em vez de probabilidades comuns. Isso transforma a operação comum de multiplicar probabilidades em adição, o que é muito mais natural para a estrutura baseada em álgebra linear de redes neurais.

  2. Normalize a soma deles para 1, pois essa é a probabilidade total de que precisamos.

Uma conseqüência importante disso é que o teorema de bayes é muito natural para essa rede, pois é apenas a multiplicação de probabilidades normalizadas pelo denominador.

O caso trivial de uma rede de camada única com ativação softmax é equivalente à regressão logística.

O caso especial do softmax de dois componentes é equivalente à ativação sigmóide, que é popular quando existem apenas duas classes. Na classificação de várias classes, o softmax é usado se as classes são mutuamente exclusivas e o sigmóide em componentes é usado se forem independentes.

CodesInChaos
fonte