En la capa de salida de una red neuronal, es típico usar la función softmax para aproximar una distribución de probabilidad:
Esto es costoso de calcular debido a los exponentes. ¿Por qué no simplemente realizar una transformación Z para que todas las salidas sean positivas y luego normalizar simplemente dividiendo todas las salidas por la suma de todas las salidas?
Respuestas:
Hay un buen atributo de Softmax en comparación con la normalización estándar.
Reacciona a una baja estimulación (piense en una imagen borrosa) de su red neuronal con una distribución bastante uniforme y a una alta estimulación (es decir, números grandes, piense en una imagen nítida) con probabilidades cercanas a 0 y 1.
Si bien la normalización estándar no importa, siempre que la proporción sea la misma.
Eche un vistazo a lo que sucede cuando soft max tiene una entrada 10 veces mayor, es decir, su red neuronal obtuvo una imagen nítida y se activaron muchas neuronas
Y luego compárelo con la normalización estándar
fuente
He tenido esta pregunta por meses. Parece que simplemente adivinamos el softmax como una función de salida y luego interpretamos la entrada al softmax como probabilidades de registro. Como dijiste, ¿por qué no simplemente normalizar todos los resultados dividiéndolos por su suma? Encontré la respuesta en el libro Deep Learning de Goodfellow, Bengio y Courville (2016) en la sección 6.2.2.
Digamos que nuestra última capa oculta nos da z como una activación. Entonces el softmax se define como
Muy corta explicación
La exp en la función softmax cancela aproximadamente el registro en la pérdida de entropía cruzada, causando que la pérdida sea aproximadamente lineal en z_i. Esto conduce a un gradiente aproximadamente constante, cuando el modelo está equivocado, lo que le permite corregirse rápidamente. Por lo tanto, un softmax saturado incorrecto no causa un gradiente de fuga.
Breve explicación
El método más popular para entrenar una red neuronal es la Estimación de máxima verosimilitud. Estimamos los parámetros theta de una manera que maximiza la probabilidad de los datos de entrenamiento (de tamaño m). Como la probabilidad de todo el conjunto de datos de entrenamiento es un producto de las probabilidades de cada muestra, es más fácil maximizar la probabilidad logarítmica del conjunto de datos y, por lo tanto, la suma de la probabilidad logarítmica de cada muestra indexada por k:
Ahora, solo nos centramos en el softmax aquí con z ya dado, por lo que podemos reemplazar
siendo yo la clase correcta de la késima muestra. Ahora, vemos que cuando tomamos el logaritmo del softmax, para calcular la probabilidad logarítmica de la muestra, obtenemos:
, que para grandes diferencias en z se aproxima aproximadamente a
Primero, vemos el componente lineal z_i aquí. En segundo lugar, podemos examinar el comportamiento de max (z) para dos casos:
Vemos que la probabilidad de registro general estará dominada por muestras, donde el modelo es incorrecto. Además, incluso si el modelo es realmente incorrecto, lo que conduce a un softmax saturado, la función de pérdida no se satura. Es aproximadamente lineal en z_j, lo que significa que tenemos un gradiente aproximadamente constante. Esto permite que el modelo se corrija rápidamente. Tenga en cuenta que este no es el caso del error cuadrático medio, por ejemplo.
Larga explicación
Si el softmax todavía le parece una elección arbitraria, puede echar un vistazo a la justificación para usar el sigmoide en la regresión logística:
¿Por qué la función sigmoidea en lugar de cualquier otra cosa?
El softmax es la generalización del sigmoide para problemas multiclase justificados de manera análoga.
fuente
La explicación aquí me pareció muy buena: CS231n: Redes neuronales convolucionales para el reconocimiento visual.
En la superficie, el algoritmo softmax parece ser una normalización no lineal simple (estamos difundiendo los datos con exponencial). Sin embargo, hay más que eso.
Específicamente, hay un par de vistas diferentes (el mismo enlace que el anterior ):
Teoría de la información: desde la perspectiva de la teoría de la información, la función softmax puede verse como un intento de minimizar la entropía cruzada entre las predicciones y la verdad.
Vista probabilística: desde esta perspectiva, de hecho, estamos observando las probabilidades de registro, por lo tanto, cuando realizamos la exponenciación, terminamos con las probabilidades brutas. En este caso, la ecuación softmax encuentra el MLE (Estimación de probabilidad máxima)
En resumen, aunque la ecuación softmax parece que podría ser arbitraria, NO lo es. En realidad, es una forma más bien basada en principios de normalizar las clasificaciones para minimizar la probabilidad de entropía cruzada / negativa entre las predicciones y la verdad.
fuente
Los valores de q_i representan log-verosimilitudes. Para recuperar los valores de probabilidad, debe exponerlos.
Una razón por la cual los algoritmos estadísticos a menudo usan funciones de pérdida de probabilidad logarítmica es que son más estables numéricamente: un producto de probabilidades puede representarse como un número de coma flotante muy pequeño. Usando una función de pérdida de probabilidad logarítmica, un producto de probabilidades se convierte en una suma.
Otra razón es que las probabilidades de registro ocurren naturalmente cuando se obtienen estimadores para variables aleatorias que se supone que se extraen de distribuciones gaussianas multivariadas. Vea, por ejemplo, el estimador de máxima verosimilitud (ML) y la forma en que está conectado a los mínimos cuadrados.
Como nota al margen, creo que esta pregunta es más apropiada para la teoría de CS o intercambios de pila de ciencia computacional.
fuente
Estamos viendo un problema de clasificación multiclase. Es decir, la variable predicha
y
puede tomar una de lask
categorías, dondek > 2
. En la teoría de la probabilidad, esto generalmente está modelado por una distribución multinomial. La distribución multinomial es un miembro de distribuciones familiares exponenciales. Podemos reconstruir la probabilidadP(k=?|x)
usando propiedades de distribuciones familiares exponenciales, coincide con la fórmula softmax.Si cree que el problema puede ser modelado por otra distribución, que no sea multinomial, entonces podría llegar a una conclusión que es diferente de softmax.
Para obtener más información y una derivación formal, consulte las notas de clase CS229 (9.3 Regresión Softmax) .
Además, un truco útil que generalmente se realiza para softmax es: softmax (x) = softmax (x + c) , softmax es invariante a los desplazamientos constantes en la entrada.
fuente
softmax
no es una función de activación. La función de activación es una operación basada en elementos: dar un elemento tensor que realiza una operación no lineal de manera inteligente para producir otro tensor. Perosoftmax
es una operación vectorial, produce un vector normalizado, hay dependencias internas entre cada elemento.Creo que una de las razones puede ser tratar con los números negativos y la división por cero, ya que exp (x) siempre será positivo y mayor que cero.
Por ejemplo, para que
a = [-2, -1, 1, 2]
la suma sea 0, podemos usar softmax para evitar la división por cero.fuente
[0, 1, 3, 4]
luego dividir.Supongamos que cambiamos la función softmax para que las activaciones de salida estén dadas por
donde
c
es una constante positiva Tenga en cuenta quec=1
corresponde a la función softmax estándar. Pero si usamos un valor diferente dec
obtenemos una función diferente, que sin embargo es cualitativamente bastante similar al softmax. En particular, demuestre que las activaciones de salida forman una distribución de probabilidad, al igual que para el softmax habitual. Supongamos que permitimosc
llegar a ser grande, es decir,c→∞
. ¿Cuál es el valor límite para las activaciones de salidaa^L_j
? Después de resolver este problema, debe quedar claro por qué pensamos en lac=1
función como una versión "suavizada" de la función máxima. Este es el origen del término "softmax". Puede seguir los detalles de esta fuente (ecuación 83).fuente
Agregando a la respuesta de Piotr Czapla, cuanto mayores son los valores de entrada, mayor es la probabilidad de la entrada máxima, para la misma proporción y en comparación con las otras entradas:
fuente
De " Una exploración de las alternativas de Softmax que pertenecen a la familia de pérdida esférica " https://arxiv.org/abs/1511.05042
Los autores exploraron algunas otras funciones, como la expansión de Taylor
exp
y el llamado softmax esférico, y descubrieron que a veces pueden funcionar mejor de lo habitualsoftmax
.fuente