Há uma diferença entre probabilidades e probabilidades de log. Se a probabilidade de um evento for 0,36787944117, que é , a probabilidade do log será -1.1 / e
Portanto, se você recebe um monte de probabilidades de log não normalizadas e deseja recuperar as probabilidades originais, primeiro pega o expoente de todos os seus números, o que fornece probabilidades não normalizadas. Em seguida, você os normaliza como de costume. Matematicamente, isso é
pj= ezj∑EuezEu
pjjzEu
A pergunta óbvia é por que se preocupar em executar expoentes. Por que não usar
pj= zj∑EuzEu
em vez de?
Uma razão para isso é porque o softmax funciona bem com a perda de entropia cruzada, que é , onde é a distribuição verdadeira (os rótulos). Intuitivamente, o log é cancelado com o expoente, o que é muito útil para nós.- Eq[ logp ]q
Acontece que, se você considerar o gradiente da perda de entropia cruzada em relação às entradas do classificador , obterá
z⃗
p⃗ - 1j
quando o rótulo de verdade do solo estiver na classe e for o vetor quente quente correspondente. Essa é uma expressão muito agradável e leva a fácil interpretação e otimização.j1j
Por outro lado, se você tentar usar probabilidades não-normalizadas em vez de probabilidades de log não-normalizadas, você terminará com o gradiente
1∑EuzEu-1⃗ Tj1z
Essa expressão é muito menos agradável em termos de interpretabilidade e você também pode ver possíveis problemas numéricos quando está próximo de 0.z
Outro motivo para usar probabilidades de log pode ser visto na regressão logística, que é simplesmente um caso especial da classificação softmax. A forma da função sigmóide funciona bem porque, intuitivamente, à medida que você se move pelo espaço de recurso, a probabilidade de classes não varia linearmente com as entradas. A curva acentuada na função sigmóide, que enfatiza o limite acentuado entre duas classes, é realmente um resultado do termo exponencial que estamos aplicando às entradas do softmax.