En el clasificador softmax, ¿por qué usar la función exp para hacer la normalización?

30

¿Por qué usar softmax en lugar de la normalización estándar? En el área de comentarios de la respuesta principal de esta pregunta, @Kilian Batzner planteó 2 preguntas que también me confunden mucho. Parece que nadie da una explicación, excepto los beneficios numéricos.

Obtengo las razones para usar la Pérdida de entropía cruzada, pero ¿cómo se relaciona eso con el softmax? Usted dijo "la función softmax puede verse como un intento de minimizar la entropía cruzada entre las predicciones y la verdad". Supongamos que usaría la normalización estándar / lineal, pero aún usaría la Pérdida de entropía cruzada. Entonces también trataría de minimizar la entropía cruzada. Entonces, ¿cómo se vincula el softmax con la entropía cruzada, excepto por los beneficios numéricos?

En cuanto a la visión probabilística: ¿cuál es la motivación para mirar las probabilidades de registro? El razonamiento parece ser un poco como "Usamos e ^ x en el softmax, porque interpretamos x como log-probabilties". Con el mismo razonamiento que podríamos decir, usamos e ^ e ^ e ^ x en el softmax, porque interpretamos x como log-log-log-probabilities (Exagerando aquí, por supuesto). Obtengo los beneficios numéricos de softmax, pero ¿cuál es la motivación teórica para usarlo?

Hans
fuente
Es diferenciable, conduce a resultados no negativos (como sería necesario para una probabilidad para que se pueda calcular la entropía cruzada), y se comporta como la función máxima, que es apropiada en una configuración de clasificación. Bienvenido al sitio!
Emre
@ Emre Gracias! Pero, ¿qué significa "se comporta como la función máxima"? Además, si tengo otra función que también es diferenciable, que aumenta de forma monótona y conduce a resultados no negativos, ¿puedo usarla para reemplazar la función exp en la fórmula?
Hans
Cuando normaliza el uso de , el argumento más grande se asigna a 1 mientras que el resto se asigna a cero, debido al crecimiento de la función exponencial. max
Emre

Respuestas:

37

Es más que solo numérico. Un recordatorio rápido del softmax:

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

Donde es un vector de entrada con una longitud igual al número de clases de . La función softmax tiene 3 propiedades muy agradables: 1. normaliza sus datos (genera una distribución de probabilidad adecuada), 2. es diferenciable y 3. utiliza la exp mencionada. Algunos puntos importantes:KxK

  1. La función de pérdida no está directamente relacionada con softmax. Puede usar la normalización estándar y aún usar la entropía cruzada.

  2. Una función "hardmax" (es decir, argmax) no es diferenciable. El softmax da al menos una mínima cantidad de probabilidad a todos los elementos en el vector de salida, por lo que es muy diferenciable, de ahí el término "soft" en softmax.

  3. Ahora llego a tu pregunta. La en softmax es la función exponencial natural. Antes de normalizar, transformamos como en el gráfico de :x e xexex

función exponencial natural

Si es 0, entonces , si es 1, entonces , y si es 2, ahora . Un gran paso! Esto es lo que se llama una transformación no lineal de nuestras puntuaciones de registro no normalizadas. La propiedad interesante de la función exponencial combinada con la normalización en el softmax es que las puntuaciones altas en vuelven mucho más probables que las bajas.y = 1 x y = 2.7 x y = 7 xxy=1xy=2.7xy=7x

Un ejemplo . Digamos , y su puntaje log es el vector . La función argmax simple genera:x [ 2 , 4 , 2 , 1 ]K=4x[2,4,2,1]

[0,1,0,0]

El objetivo es argmax, pero no es diferenciable y no podemos entrenar nuestro modelo con él :( Una normalización simple, que es diferenciable, genera las siguientes probabilidades:

[0.2222,0.4444,0.2222,0.1111]

Eso está muy lejos de la argmax! :( Considerando que las salidas softmax:

[0.1025,0.7573,0.1025,0.0377]

¡Eso está mucho más cerca del argmax! Debido a que usamos el exponencial natural, aumentamos enormemente la probabilidad del puntaje más alto y disminuimos la probabilidad de los puntajes más bajos en comparación con la normalización estándar. De ahí el "max" en softmax.

vega
fuente
3
Gran información Sin embargo, en lugar de usar e, ¿qué pasa con el uso de una constante digamos 3 o 4? ¿El resultado será el mismo?
Cheok Yan Cheng
77
@CheokYanCheng, sí. Pero etiene una derivada más agradable;)
vega
He visto que el resultado de softmax se usa típicamente como las probabilidades de pertenecer a cada clase. Si la elección de 'e' en lugar de otra constante es arbitraria, no tiene sentido verla en términos de probabilidad, ¿verdad?
javierdvalle
@vega Lo siento, pero todavía no veo cómo eso responde la pregunta: ¿por qué no usar e ^ e ^ e ^ e ^ e ^ x por las mismas razones? Por favor explique
Gulzar
@jvalle no es lo eque lo hace interpretable como una probabilidad, es el hecho de que cada elemento de la salida softmax está limitado en [0,1] y las sumas completas a 1.
vega
2

Además de la explicación de vega,

definamos softmax genérico: donde es una constante> = 1

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

if , entonces estás bastante lejos de argmax como @vega mencionó.ψ=1

Supongamos ahora que , ahora estás bastante cerca de la argmax pero también tienes números realmente pequeños para valores negativos y números grandes para positivos. Estos números se desborda el límite aritmética de punto flotante con facilidad (por ejemplo límite máximo de float64 numpy es ). Además de eso, incluso si la selección es que es mucho más pequeña que , los marcos deberían implementar una versión más estable de softmax (multiplicando tanto el numerador como el denominador con constante ) ya que los resultados se vuelven demasiado pequeños para poder expresar con tanta precisiónψ=10010 308 ψ = e 100 C10308ψ=e100C

Por lo tanto, desea elegir una constante lo suficientemente grande como para aproximar bien argmax, y también lo suficientemente pequeña como para expresar estos números grandes y pequeños en los cálculos.

Y, por supuesto, también tiene un derivado bastante bueno.e

komunistbakkal
fuente
2

Esta pregunta es muy interesante. No sé la razón exacta pero creo que la siguiente razón podría usarse para explicar el uso de la función exponencial. Esta publicación está inspirada en la mecánica estadística y el principio de máxima entropía.

Explicaré esto usando un ejemplo con imágenes, que están constituidas por imágenes de la clase , imágenes de la clase , ..., y imágenes de la clase . Luego asumimos que nuestra red neuronal pudo aplicar una transformación no lineal en nuestras imágenes, de modo que podemos asignar un 'nivel de energía' a todas las clases. Suponemos que esta energía está en una escala no lineal que nos permite separar linealmente las imágenes.Nn1C1n2C2nKCKEk

La energía media está relacionada con las otras energías por la siguiente relación E¯Ek

NE¯=k=1KnkEk.()

Al mismo tiempo, vemos que la cantidad total de imágenes se puede calcular como la siguiente suma

N=k=1Knk.()

La idea principal del principio de máxima entropía es que el número de imágenes en las clases correspondientes se distribuye de tal manera que se maximice el número de combinaciones posibles de una distribución de energía dada. Para decirlo de manera más simple, el sistema no entrará en un estado en el que solo tenemos la clase tampoco entrará en un estado en el que tengamos la misma cantidad de imágenes en cada clase. Pero ¿por qué es esto así? Si todas las imágenes estuvieran en una clase, el sistema tendría una entropía muy baja. El segundo caso también sería una situación muy poco natural. Es más probable que tengamos más imágenes con energía moderada y menos imágenes con energía muy alta y muy baja.n1

La entropía aumenta con el número de combinaciones en las que podemos dividir las imágenes en las clases de imagen , , ..., con la energía correspondiente. Este número de combinaciones viene dado por el coeficiente multinomialNn1n2nK

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

Intentaremos maximizar este número asumiendo que tenemos infinitas imágenes . Pero su maximización también tiene restricciones de igualdad y . Este tipo de optimización se llama optimización restringida. Podemos resolver este problema analíticamente utilizando el método de multiplicadores de Lagrange. Introducimos los multiplicadores de Lagrange y para las restricciones de igualdad y presentamos la función Lagrange .N()()βαL(n1,n2,,nk;α,β)

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

Como asumimos también podemos suponer y usar la aproximación de Stirling para el factorialNnk

lnn!=nlnnn+O(lnn).

Tenga en cuenta que esta aproximación (los dos primeros términos) es solo asintótica, ¡no significa que esta aproximación convergerá apara .lnn!n

La derivada parcial de la función Lagrange con respecto a dará como resultadonk~

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

Si establecemos esta derivada parcial en cero, podemos encontrar

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

Si volvemos a poner esto en podemos obtener()

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

Si volvemos a poner esto en obtenemos algo que debería recordarnos la función softmax()

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

Si definimos como la probabilidad de la clase por obtendremos algo que es realmente similar a la función softmaxnk~/NCk~pk~

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

Por lo tanto, esto nos muestra que la función softmax es la función que maximiza la entropía en la distribución de imágenes. Desde este punto, tiene sentido usar esto como la distribución de imágenes. Si establecemos obtenemos exactamente la definición de la función softmax para la salida .βEk~=wkTxkth

MachineLearner
fuente