No classificador softmax, por que usar a função exp para fazer a normalização?

30

Por que usar o softmax em oposição à normalização padrão? Na área de comentários da resposta principal desta pergunta, @Kilian Batzner levantou duas perguntas que também me confundem bastante. Parece que ninguém dá uma explicação, exceto os benefícios numéricos.

Eu recebo os motivos para usar a Perda entre entropia, mas como isso se relaciona com o softmax? Você disse que "a função softmax pode ser vista como uma tentativa de minimizar a entropia cruzada entre as previsões e a verdade". Suponha que eu usaria a normalização padrão / linear, mas ainda usaria a Perda de entropia cruzada. Então, eu também tentaria minimizar a entropia cruzada. Então, como o softmax está vinculado à Entropia Cruzada, exceto pelos benefícios numéricos?

Quanto à visão probabilística: qual é a motivação para analisar probabilidades de log? O raciocínio parece um pouco com "Usamos e ^ x no softmax, porque interpretamos x como probabilidades logarítmicas". Com o mesmo raciocínio que poderíamos dizer, usamos e ^ e ^ e ^ x no softmax, porque interpretamos x como probabilidades log-log-log-probabilidades (Exagerando aqui, é claro). Recebo os benefícios numéricos do softmax, mas qual é a motivação teórica para usá-lo?

Hans
fonte
É diferenciável, leva a resultados não negativos (como seria necessário para uma probabilidade para que a entropia cruzada possa ser calculada) e se comporta como a função max, que é apropriada em uma configuração de classificação. Bem vindo ao site!
Emre
@Emre Thanks! Mas o que significa "se comporta como função máxima"? Além disso, se eu tiver outra função que também seja diferenciável, monótona aumente e leve a resultados não negativos, posso usá-la para substituir a função exp na fórmula?
Hans
Quando você normaliza usando , o maior argumento é mapeado para 1 enquanto o restante é mapeado para zero, devido ao crescimento da função exponencial. max
Emre

Respostas:

37

É mais do que apenas numérico. Um lembrete rápido do softmax:

P(y=j|x)=exjk=1Kexk

Onde é um vector de entrada com comprimento igual ao número de classes . A função softmax possui 3 propriedades muito agradáveis: 1. normaliza seus dados (gera uma distribuição de probabilidade adequada), 2. é diferenciável e 3. usa o exp que você mencionou. Alguns pontos importantes:xK

  1. A função de perda não está diretamente relacionada ao softmax. Você pode usar a normalização padrão e ainda usar entropia cruzada.

  2. Uma função "hardmax" (ou seja, argmax) não é diferenciável. O softmax fornece pelo menos uma quantidade mínima de probabilidade para todos os elementos no vetor de saída e, portanto, é bem diferenciável, daí o termo "soft" no softmax.

  3. Agora eu chego à sua pergunta. O no softmax é a função exponencial natural. Antes de normalizar, transformamos como no gráfico de :exex

função exponencial natural

Se é 0, então , se é 1, então e se é 2, agora ! Um grande passo! Isso é chamado de transformação não linear de nossas pontuações de log não normalizadas. A propriedade interessante da função exponencial combinada com a normalização no softmax é que altas pontuações em se tornam muito mais prováveis ​​que pontuações baixas.xy=1xy=2.7xy=7x

Um exemplo . Diga e sua pontuação é o vetor . A função argmax simples gera:x [ 2 , 4 , 2 , 1 ]K=4x[2,4,2,1]

[0 0,1,0 0,0 0]

O argmax é o objetivo, mas não é diferenciável e não podemos treinar nosso modelo com ele :( Uma normalização simples, diferenciável, gera as seguintes probabilidades:

[0,2222,0,4444,0,2222,0.1111]

Isso é muito longe do argmax! :( Considerando que o softmax produz:

[0,1025,0,7573,0,1025,0,0377]

Isso é muito mais próximo do argmax! Como usamos o exponencial natural, aumentamos enormemente a probabilidade da maior pontuação e diminuímos a probabilidade das pontuações mais baixas quando comparadas à normalização padrão. Daí o "max" no softmax.

vega
fonte
3
Ótima informação. No entanto, em vez de usar e, que tal usar uma constante, dizer 3 ou 4? O resultado será o mesmo?
Cheok Yan Cheng
7
@CheokYanCheng, sim. Mas etem um derivado mais agradável;)
vega
Vi que o resultado do softmax é normalmente usado como probabilidade de pertencer a cada classe. Se a escolha de 'e' em vez de outra constante é arbitrária, não faz sentido vê-la em termos de probabilidade, certo?
javierdvalle
@ vega Desculpe, mas ainda não vejo como isso responde à pergunta: por que não usar e ^ e ^ e ^ e ^ e ^ x pelas mesmas razões? Por favor, explique
Gulzar
@jvalle não é eque torna mais interpretáveis como uma probabilidade, é o facto de cada elemento da saída softmax é delimitada em [0,1] e os inteiros somas para 1.
vega
2

Além da explicação de vega,

vamos definir softmax genérico: que é uma constante> = 1

P(y=j|x)=ψxjk=1Kψxk
ψ

se , você está bem longe do argmax como o @vega mencionado.ψ=1

Vamos agora assumir , agora você está bem próximo do argmax, mas também possui números muito pequenos para valores negativos e números grandes para positivos. Esses números ultrapassam o limite aritmético do ponto de flutuação facilmente (por exemplo, o limite máximo de numpy float64 é ). Além disso, mesmo que a seleção seja muito menor que , as estruturas devem implementar uma versão mais estável do softmax (multiplicando numerador e denominador pela constante ), pois os resultados se tornam pequenos demais para poder expressar com tanta precisão.ψ=10010 308 ψ = e 100 C10308ψ=e100C

Portanto, você deseja escolher uma constante grande o suficiente para aproximar bem o argmax e também pequena o suficiente para expressar esses números grandes e pequenos nos cálculos.

E, claro, também tem um derivado bastante bom.e

komunistbakkal
fonte
2

Esta questão é muito interessante. Não sei o motivo exato, mas acho que o seguinte motivo pode ser usado para explicar o uso da função exponencial. Este post é inspirado na mecânica estatística e no princípio da entropia máxima.

Vou explicar isso usando um exemplo com imagens, que são constituídas por imagens da classe , imagens da classe , ... e imagens da classe . Então assumimos que nossa rede neural foi capaz de aplicar uma transformação não linear em nossas imagens, de modo que podemos atribuir um 'nível de energia' a todas as classes. Assumimos que essa energia esteja em uma escala não linear que nos permita separar linearmente as imagens.Nn1C1n2C2nKCKEk

A energia média está relacionada às outras energias pelo seguinte relacionamento E¯Ek

NE¯=k=1KnkEk.()

Ao mesmo tempo, vemos que a quantidade total de imagens pode ser calculada como a seguinte soma

N=k=1Knk.()

A idéia principal do princípio da entropia máxima é que o número de imagens nas classes correspondentes seja distribuído de tal forma que o número de combinações possíveis para uma dada distribuição de energia seja maximizado. Em outras palavras, o sistema provavelmente não entrará em um estado em que apenas temos a classe mas também não entrará em um estado em que tenhamos o mesmo número de imagens em cada classe. Mas por que isso é assim? Se todas as imagens estivessem em uma classe, o sistema teria entropia muito baixa. O segundo caso também seria uma situação não natural. É mais provável que tenhamos mais imagens com energia moderada e menos imagens com energia muito alta e muito baixa.n1

A entropia aumenta com o número de combinações nas quais podemos dividir as imagens nas classes de imagens , , ..., com a energia correspondente. Esse número de combinações é dado pelo coeficiente multinomialNn1n2nK

(N!n1!,n2!,,nK!)=N!k=1Knk!.

Vamos tentar maximizar esse número assumindo que temos infinitas imagens . Mas sua maximização também tem restrições de igualdade e . Esse tipo de otimização é chamado de otimização restrita. Podemos resolver esse problema analiticamente usando o método dos multiplicadores de Lagrange. Introduzimos os multiplicadores Lagrange e para as restrições de igualdade e introduzimos o Lagrange Funktion .N()()βαL(n1,n2,,nk;α,β)

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

Como assumimos , também podemos assumir e usar a aproximação de Stirling para o fatorialNnk

lnn!=nlnnn+O(lnn).

Observe que essa aproximação (os dois primeiros termos) é apenas assintótica, não significa que essa aproximação irá convergir parapara .lnn!n

O derivado parcial da função de Lagrange com respeito resultará emnk~

Lnk~=lnnk~1α+βEk~.

Se definirmos essa derivada parcial como zero, podemos encontrar

nk~=exp(βEk~)exp(1+α).()

Se colocarmos isso de volta em , podemos obter()

exp(1+α)=1Nk=1Kexp(βEk).

Se colocarmos isso de volta em , obtemos algo que deve nos lembrar da função softmax()

nk~=exp(βEk~)1Nk=1Kexp(βEk).

Se definirmos como a probabilidade da classe por , obteremos algo que é realmente semelhante à função softmaxnk~/NCk~pk~

pk~=exp(βEk~)k=1Kexp(βEk).

Portanto, isso nos mostra que a função softmax é a função que maximiza a entropia na distribuição das imagens. A partir deste ponto, faz sentido usá-lo como a distribuição de imagens. Se , obteremos exatamente a definição da função softmax para a saída .βEk~=wkTxkth

MachineLearner
fonte