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?
Respostas:
É mais do que apenas numérico. Um lembrete rápido do softmax:
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:x K
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.
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.
Agora eu chego à sua pergunta. O no softmax é a função exponencial natural. Antes de normalizar, transformamos como no gráfico de :e x ex
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.x y= 1 x y= 2,7 x y= 7 x
Um exemplo . Diga e sua pontuação é o vetor . A função argmax simples gera:x [ 2 , 4 , 2 , 1 ]K= 4 x [ 2 , 4 , 2 , 1 ]
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:
Isso é muito longe do argmax! :( Considerando que o softmax produz:
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.
fonte
e
, que tal usar uma constante, dizer 3 ou 4? O resultado será o mesmo?e
tem um derivado mais agradável;)e
que 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.Além da explicação de vega,
vamos definir softmax genérico: que é uma constante> = 1P(y=j|x)=ψxj∑Kk=1ψ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.ψ=100 10 308 ψ = e 100 C10308 ψ=e 100 C
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
fonte
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.N n1 C1 n2 C2 nK CK Ek
A energia média está relacionada às outras energias pelo seguinte relacionamentoE¯ Ek NE¯=∑k=1KnkEk.(∗)
Ao mesmo tempo, vemos que a quantidade total de imagens pode ser calculada como a seguinte soma
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 multinomialN n1 n2 nK
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;α,β)
Como assumimos , também podemos assumir e usar a aproximação de Stirling para o fatorialN→∞ nk→∞
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~
Se definirmos essa derivada parcial como zero, podemos encontrar
Se colocarmos isso de volta em , podemos obter(∗∗)
Se colocarmos isso de volta em , obtemos algo que deve nos lembrar da função softmax(∗∗∗)
Se definirmos como a probabilidade da classe por , obteremos algo que é realmente semelhante à função softmaxnk~/N Ck~ pk~
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~=wTkx kth
fonte