27 votos

¿Cuál es el papel de la temperatura en Softmax?

Recientemente estoy trabajando en CNN y quiero saber cuál es la función de la temperatura en la fórmula softmax. ¿Por qué deberíamos usar altas temperaturas para ver una distribución de probabilidad más suave?

La fórmula se puede ver a continuación:

$$\large P_i=\frac{e^{\frac{y_i}T}}{\sum_{k=1}^n e^{\frac{y_k}T}}$$

36voto

Kayton Knax Puntos 21

La temperatura es una forma de controlar la entropía de una distribución, preservando los rangos relativos de cada evento.


Si dos eventos $i$ y $j$ tienen probabilidades $p_i$ y $p_j$ en tu softmax, ajustar la temperatura preserva esta relación, siempre y cuando la temperatura sea finita:

$$p_i > p_j \Longleftrightarrow p'_i > p'_j$$


Calentar una distribución aumenta la entropía, acercándola a una distribución uniforme. (¡Pruébalo por ti mismo: construye una distribución simple como $\mathbf{y}=(3, 4, 5)$, luego divide todos los valores de $y_i$ por $T=1000000$ y observa cómo cambia la distribución.)

Enfriarla disminuye la entropía, acentuando los eventos comunes.

Pondré eso de otra manera. Es común hablar de la temperatura inversa $\beta=1/T$. Si $\beta = 0$, entonces has alcanzado una distribución uniforme. A medida que $\beta \to \infty$, alcanzas una distribución trivial con toda la masa concentrada en la clase de mayor probabilidad. Por eso se considera que softmax es una relajación suave de argmax.

5voto

yboren Puntos 26

La temperatura modificará la distribución de salida del mapeo.

Por ejemplo:

  • low temperaturas softmax probs : [0.01,0.01,0.98]

  • high temperaturas softmax probs : [0.2,0.2,0.6]

La temperatura es un sesgo en contra del mapeo. Agregando ruido a la salida. Cuanto mayor sea la temperatura, menos se parecerá a la distribución de entrada.

Piénselo vagamente como "difuminando" su salida.

2voto

Stuart Puntos 2041

Aumentar T por encima de 1 tiende a distribuir la probabilidad entre las entradas, mientras que disminuir T por debajo de 1 tiende a concentrar toda la probabilidad en la clase más probable.

En el límite en el que T alcanza el infinito (o incluso cientos, prácticamente hablando), todas las clases tendrán el mismo valor. En el límite en el que T llega a cero (o incluso 0.001), solo se seleccionará el valor máximo.

Incrementar la temperatura es una forma sencilla de corregir una red sobrecargada cuya salida máxima (incorporándose al softmax) está demasiado lejos de la siguiente salida más cercana.

El ajuste de temperatura 1/T escala efectivamente las entradas a la función softmax. Un T mayor que 1 acerca las entradas, y un T menor que 1 separa más las entradas. Dado que el Softmax divide la probabilidad de salida entre las entradas que están más cerca, acercando las entradas se distribuye la probabilidad entre las entradas.


Para responder a esta pregunta detalladamente, puede ser útil pensar cómo funciona el softmax sin temperatura.

Considera una capa softmax en la que solo dos entradas no son -infinito, y tienen valores 2 y 4.

Luego, al pasar por la capa softmax, el elemento más pequeño tendrá valor

$$\large P_i=\frac{e^{y_i}}{\sum_{k=1}^n e^{y_k}}=\frac{e^2}{e^2+e^4}=\frac{e^4}{e^4}\frac{e^{-2}}{e^{-2}+1} \approx e^-2 \approx \frac{1}{9}$$

¿Cómo cambia esto si las entradas son en cambio 12 y 14, ambas desplazadas la misma distancia a la derecha?

$$\large P_i=\frac{e^{y_i}}{\sum_{k=1}^n e^{y_k}}=\frac{e^{12}}{e^{12}+e^{14}}=\frac{e^{14}}{e^{14}}\frac{e^{-2}}{e^{-2}+1} \approx e^{-2} \approx \frac{1}{9}$$

No hace ninguna diferencia en absoluto: agregar una constante a todas las entradas resulta en un multiplicador constante después del exponencial que se puede sacar.

Ahora, ¿cómo cambia esto si aumentamos la distancia entre el 2 y el 4, por ejemplo, a 2 y 6:

$$\large P_i=\frac{e^{y_i}}{\sum_{k=1}^n e^{y_k}}=\frac{e^2}{e^2+e^6}=\frac{e^6}{e^6}\frac{e^{-4}}{e^{-4}+1} \approx e^{-4} \approx \frac{1}{81}$$

Cambiar la distancia entre la entrada máxima y las cercanas debajo de ella tiene un impacto importante en la salida: cuanto más cerca esté el segundo valor máximo del valor máximo, más se mezclarán los dos valores en la salida.

La "suavidad" de softmax está controlada por qué tan separadas están las entradas máximas. Una vez que están separadas en decenas o cientos, se convierte más en un hard-max en lugar de un softmax.

Lo que permite el campo de temperatura es controlar la distancia entre los valores que entran en la función softmax escalando directamente todo el conjunto.

Supongamos que queríamos suavizar el ejemplo más reciente anterior y acercar el 2 y el 6. Podríamos usar una temperatura de $T=2$:

$$\large P_i=\frac{e^{y_i}}{\sum_{k=1}^n e^{{y_k/T}}}=\frac{e^{2/2}}{e^{2/2}+e^{6/2}}=\frac{e^{1}}{e^{1}+e^{3}}=\frac{e^3}{e^3}\frac{e^{-2}}{e^{-2}+1} \approx e^{-2} \approx \frac{1}{9}$$

Aquí, la temperatura de $T = 2$ corta la distancia entre el 2 y el 6 a la mitad, suavizando la transición de uno a otro.

También podemos usar valores de T menores que 1 para AUMENTAR la distancia entre los valores que entran en softmax, y en el límite a medida que T->0, hacemos que el valor máximo esté infinitamente lejos del resto al entrar en la función exponencial. En código, esto se debe manejar como un caso especial que encuentra la salida máxima en lugar de seleccionar una salida de manera probabilística.

Entonces, los valores legales de T van desde 0 (elegir el máximo) hasta el infinito (donde todos los valores tendrían probabilidades iguales porque todos son 0 al entrar en softmax).

0voto

Mark Deven Puntos 108

Decidí agregar esta respuesta porque la temperatura en Softmax es un caso de maravilla:

De ¿Cómo depende la entropía de la ubicación y la escala?, tendríamos:

La entropía (diferencial) de $z=y\beta$ es la entropía de X más $\log()$.

Entonces, a medida que $\beta \to 0$, la entropía diferencial de $z$ tiende a $-\infty$.

Al mismo tiempo, a medida que $z$ tiende hacia una variante continua de distribución degenerada, la entropía de Shannon de la proyección $z_i$ ahora tiende hacia $\frac{1}{n}$.

Entonces, si bien la alta temperatura aumenta la entropía de Shannon para $z_i$, en realidad disminuye la entropía diferencial del vector de incrustación completo $z$.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X