Redes neuronales artificiales: ¿por qué utilizamos la función softmax para la capa de salida?

Los problemas de clasificación pueden aprovechar la condición de que las clases sean mutuamente excluyentes, dentro de la arquitectura de la red neuronal.

Por ejemplo, en la tarea de reconocimiento de dígitos MNIST, tendríamos 10 clases diferentes. Por lo tanto, la dimensión de la capa de salida es 10. Idealmente, la mejor predicción es si la probabilidad es 1.0 para un solo nodo de salida, y la probabilidad de que el resto de los nodos de salida sea cero.

Deberíamos incorporar dicho mecanismo dentro de la arquitectura. La mejor arquitectura para tal requisito es la salida de capa máxima, que proporcionará una probabilidad de 1.0 para la salida máxima de la capa anterior y la probabilidad de que el resto del nodo de salida se considere cero. Pero dicha capa de salida no será diferenciable, por lo tanto, será difícil de entrenar.

Alternativamente, si utilizamos la función Softmax como capa de salida, casi funcionará como la capa Max y será diferente de entrenar por descenso de gradiente. La función exponencial aumentará la probabilidad del valor máximo de la capa anterior en comparación con otro valor. Además, la suma de todos los resultados será igual a 1.0 siempre.

Finalmente, una capa softmax entrenada en los dígitos escritos a mano generará una probabilidad separada para cada uno de los diez dígitos, y todas las probabilidades sumarán 1.

CS231n Redes neuronales convolucionales para reconocimiento visual

Tutorial de aprendizaje profundo – Regresión de Softmax

Capa Softmax en una red neuronal

¿Cómo funciona la función softmax en el campo AI?

¿Cuál es la intuición detrás de la función SoftMax?

¿Qué es la regresión softmax?

Regresión Softmax

Tutorial de aprendizaje de características y aprendizaje profundo sin supervisión

CS231n Redes neuronales convolucionales para reconocimiento visual

Digamos que nuestra última capa oculta nos da z como una activación. Entonces el softmax se define como

Muy breve 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 enfocamos 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:

  1. Si el modelo es correcto, max (z) será z_i. Por lo tanto, el logaritmo de probabilidad asintota a cero con una diferencia creciente entre z_i y las otras entradas en z.
  2. Si el modelo es incorrecto, max (z) será otro z_j> z_i. Por lo tanto, la adición de z_i no cancela completamente -z_j y la pérdida es aproximadamente – (z_j – z_i).

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 aún 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 forma análoga.

Encontré esto en la web cuando estaba aprendiendo sobre la función sofmax. Esta es la respuesta del libro Deep Learning de Bengio, Goodfellow y Courville (2016) en la sección 6.2.2.

La elección de softmax parece una forma arbitraria de normalizar los datos, pero no lo es. La clase de salida generalmente se modela como una distribución de probabilidad. Para un problema de dos clases, la distribución de salida condicionada a sus entradas generalmente se modela como Bernoulli:

[matemáticas] y | x; \ theta \ sim \ text {Bernoulli} (\ phi) [/ matemáticas]

Del mismo modo, en un problema de varias clases, la distribución de salida condicionada a sus entradas se modela como una distribución multinomial. Ambas distribuciones son miembros de la familia exponencial y se pueden escribir como

[matemáticas] p (y; \ eta) = b (y) \ exp (\ eta ^ TT (y) – a (n)) [/ matemáticas]

El parámetro [math] \ eta [/ math] se llama parámetro natural. En un modelo lineal generalizado (GLM), se supone que [math] \ eta_i [/ ​​math] (para el vector valorado [math] \ eta [/ math]) está relacionado linealmente con la entrada como

[matemáticas] \ eta_i = \ theta_i ^ T x [/ matemáticas]

Con este supuesto, se puede demostrar que el mapeo desde el estadístico suficiente a los parámetros de distribución es solo el sigmoide en el caso de regresión logística), y la función softmax en el caso más general.

Para una interpretación probabilística mucho más exhaustiva, lea la Parte III: Modelos lineales generalizados de las notas de la conferencia CS229 de Stanford.

Depende del tipo de razonamiento que prefiera.

Desde un punto de vista teórico, el uso de una función de activación SoftMax es básicamente equivalente a una regresión logística sobre las características extraídas de la capa antes de la capa final totalmente conectada. La regresión logística, a su vez, es un método clásico y tiene muchas interpretaciones diferentes (por ejemplo, modelo lineal generalizado con una función de enlace de probabilidades de registro, minimización empírica de riesgos con una función de pérdida logística, etc.).

Pero en la práctica, obviamente, todo depende de sus datos y la función de pérdida. Por ejemplo, de acuerdo con la segunda interpretación que mencioné anteriormente, si su función de pérdida es una pérdida logística, entonces probablemente tenga más sentido. Incluso si no, todo se reduce a lo que funciona mejor para sus datos, ¡así que pruébelo todo y vea lo que es bueno!

Softmax, al igual que la función logística, nos proporciona una salida categórica.

Sin embargo, su salida es multinomial.

Las regresiones logísticas nos dicen si algo es: –

  • A o B
  • 1 o 0
  • Verdadero o falso
  • Jamón o Spam

Softmax devuelve (en el caso clásico de reconocimiento de dígitos), una clasificación de dígitos del 0 al 9, y se usa en word2vec en extremo, ya que devuelve los resultados de un número potencial de posibles clasificaciones que incluyen todo el vocabulario de palabras. De ahí el requisito de capacitarse en cientos de miles de millones de palabras para que word2vec sea efectivo.

Puede pensar en softmax como una función logística multiclase.

Esto depende de su elección de la función de pérdida. No lo mencionaste en los detalles de la pregunta.

La activación de Softmax es básicamente la probabilidad exponencial normalizada de las observaciones de clase representadas como activaciones neuronales. En una clasificación de varias clases, ‘Cross-Entropy’ se corta para su uso junto con Softmax.

More Interesting

¿Qué se necesita para hacer un doctorado en Oxford en aprendizaje automático?

¿Cuál es la próxima gran novedad en la industria del software, aparte de la inteligencia artificial y la robótica?

¿Puede una red neuronal aprender suma?

¿Cómo puede una computadora calificar ensayos?

¿Cuáles son las bibliotecas de aprendizaje automático basadas en Python más populares?

¿Cuál es la diferencia entre aprendizaje automático, red neuronal y cómo se relacionan con el aprendizaje profundo?

¿Por qué no podríamos usar una técnica similar al 'copyleft' para evitar que una IA fuerte cree otras IA que puedan sortear las restricciones de comportamiento incorporadas?

Conflictos geopolíticos: ¿tiene sentido que si los humanos se encuentran ahora en las primeras etapas de desarrollo de la IA, algunos seres en otros planetas lejanos ya sean seres con IA?

¿Cuál fue la verdadera razón por la que Facebook cerró su IA, que inventó su propio idioma?

¿Qué empresas que cotizan en el mercado de valores de India se beneficiarán exponencialmente con el aumento de la inteligencia artificial y la tecnología de drones?

¿Puede la inteligencia artificial ser infinitamente más inteligente que todos los dioses omniscientes?

¿Cuáles son los ejemplos más exitosos de música creada por computadora?

¿Qué es Cleverbot y es seguro?

Cómo crear un bot que responda preguntas del mundo real

¿Cómo fue su viaje al construir su base de conocimiento de aprendizaje automático?