53 votos

¿Por qué la salida softmax no es una buena medida de incertidumbre para los modelos de Deep Learning?

Llevo algún tiempo trabajando con redes neuronales convolucionales (CNN), sobre todo con datos de imágenes para la segmentación semántica/de instancias. A menudo he visualizado el softmax de la salida de la red como un "mapa de calor" para ver cuán altas son las activaciones por píxel para una determinada clase. He interpretado las activaciones bajas como predicciones "inciertas" / "poco seguras" y las activaciones altas como predicciones "seguras" / "seguras". Básicamente esto significa interpretar la salida del softmax (valores dentro de $(0,1)$ ) como medida de probabilidad o (in)certeza del modelo.

( Por ejemplo, he interpretado que un objeto/área con una activación softmax baja promediada sobre sus píxeles es difícil de detectar para la CNN, de ahí que la CNN sea "incierta" a la hora de predecir este tipo de objeto. )

En mi opinión, esto a menudo funcionaba, y añadir muestras adicionales de zonas "inciertas" a los resultados de la formación mejoraba los resultados en éstas. Sin embargo, Ya he oído con bastante frecuencia, desde distintos puntos de vista, que utilizar/interpretar el resultado de softmax como una medida de (in)certeza no es una buena idea y que generalmente se desaconseja. ¿Por qué?


EDITAR: Para aclarar lo que estoy preguntando aquí voy a elaborar en mis puntos de vista hasta ahora para responder a esta pregunta. Sin embargo, ninguno de los siguientes argumentos me aclaró ** por qué es generalmente una mala idea**, como me dijeron repetidamente los colegas, los supervisores y también se afirma por ejemplo aquí en la sección "1.5"

En los modelos de clasificación, el vector de probabilidad obtenido al final de la cadena (la salida softmax) se interpreta a menudo erróneamente como la confianza del modelo

o aquí en la sección "Antecedentes" :

Aunque puede ser tentador interpretar los valores dados por la capa final softmax de una red neuronal convolucional como puntuaciones de confianza, tenemos que tener cuidado de no leer demasiado en esto.


Las fuentes anteriores razonan que usar la salida del softmax como medida de incertidumbre es malo porque:

perturbaciones imperceptibles en una imagen real pueden cambiar la salida softmax de una red profunda a valores arbitrarios

Esto significa que la salida de softmax no es robusta a las "perturbaciones imperceptibles" y por lo tanto su salida no es utilizable como probabilidad.

Otro papel recoge la idea de "salida softmax = confianza" y argumenta que con esta intuición las redes pueden ser fácilmente engañadas, produciendo "salidas de alta confianza para imágenes irreconocibles".

(...) la región (en el dominio de entrada) correspondiente a una determinada clase puede ser mucho mayor que el espacio de esa región ocupado por los ejemplos de entrenamiento de esa clase. El resultado de esto es que una imagen puede estar dentro de la región asignada a una clase y por lo tanto ser clasificada con un gran pico en la salida softmax, mientras que todavía está lejos de las imágenes que ocurren naturalmente en esa clase en el conjunto de entrenamiento.

Esto significa que los datos que están lejos de los datos de entrenamiento nunca deben obtener una confianza alta, ya que el modelo "no puede" estar seguro de ellos (ya que nunca los ha visto).

Sin embargo: ¿no es esto en general simplemente un cuestionamiento de las propiedades de generalización de las NN en su conjunto? Es decir, que las NN con pérdida softmax no generalizan bien ante (1) "perturbaciones imperceptibles" o (2) muestras de datos de entrada que se alejan de los datos de entrenamiento, por ejemplo, imágenes irreconocibles.

Siguiendo este razonamiento, sigo sin entender por qué en la práctica, con datos que no están alterados abstracta y artificialmente frente a los datos de entrenamiento (es decir, la mayoría de las aplicaciones "reales"), interpretar la salida del softmax como una "pseudoprobabilidad" es una mala idea. Después de todo, parecen representar bien lo que mi modelo es seguro, incluso si no es correcto (en cuyo caso tengo que arreglar mi modelo). ¿Y no es la incertidumbre del modelo siempre "sólo" una aproximación?

33voto

mwl Puntos 11

Esta pregunta puede responderse con más precisión que las respuestas actuales. La fijación de la desviación entre las probabilidades predichas (la salida de la capa softmax de una red neuronal) y sus probabilidades reales (que representan una noción de confianza), se conoce como curvas de calibración o de fiabilidad.

El problema con muchas redes neuronales profundas es que, aunque tienden a funcionar bien para la predicción, sus probabilidades estimadas de predicción producidas por la salida de una capa softmax no pueden utilizarse de forma fiable como las verdaderas probabilidades (como confianza para cada etiqueta). En la práctica, tienden a ser demasiado altas: las redes neuronales son "demasiado confiadas" en sus predicciones.

Chuan Go et. al., en colaboración con Kilian Weinberger, desarrollaron una solución eficaz para calibrar las probabilidades predichas de las redes neuronales en este trabajo: https://arxiv.org/abs/1706.04599

Este documento también explica cómo las probabilidades predichas pueden interpretarse como medidas de confianza cuando las probabilidades predichas están correctamente calibradas.

11voto

SteveD Puntos 3805

La relación entre la confianza y la incertidumbre de Softmax es más complicada complicada de lo que parece.

En primer lugar, hay dos cuestiones distintas que a menudo se confunden.

  • Calibración - ¿Significa el 90% de confianza softmax que es correcto el 90% de las veces? Esto se evalúa sobre la distribución de entrenamiento. Nos interesa el absoluto valores de confianza.
  • Incertidumbre - ¿Se reduce la confianza softmax cuando la red no sabe algo? Esto se evalúa comparando la confianza softmax sobre la distribución de entrenamiento con algunos otros datos (a menudo llamados fuera de la distribución, OOD). Si sobre la distribución de entrenamiento la confianza softmax está en el rango 92-100%, sobre los datos OOD debería ser <92%. Nos interesa el relativa valores de confianza.

Calibración. Las redes neuronales profundas suelen arrojar una confianza softmax muy alta para cualquier de entrada (digamos >95%), y se sabe que están mal calibrados. Hasta donde yo sé, esto es bastante incontrovertible. La referencia clásica: Sobre la calibración de las redes neuronales modernas", de Guo et al. .

Incertidumbre. Esta cuestión es menos clara. Hay formas conocidas de hacer fracasar la confianza softmax, como por ejemplo ampliar una entrada o crear ejemplos contradictorios . La confianza softmax también confunde dos fuentes diferentes de incertidumbre (aleatoria y epistémica). Estos contraejemplos han llamado mucho la atención, lo que ha llevado a afirmar (con mayor o menor fuerza) que la confianza softmax $\neq$ incertidumbre.

Lo que a veces se olvida a la luz de estos modos de fallo, es que interpretar ingenuamente la confianza softmax como incertidumbre en realidad se desempeña bastante bien en muchas tareas de incertidumbre . Además, muchos de los métodos que pretenden "capturar la incertidumbre" generalmente no superan la confianza softmax por mucho.

El papel, 'Understanding Softmax Confidence and Uncertainty' de Pearce et al. El informe de la Comisión Europea, en el que se investiga por qué la confianza softmax se comporta razonablemente en estas pruebas de incertidumbre, describe dos propiedades de las redes neuronales no modificadas que, en determinadas situaciones, parecen ayudar a la confianza softmax $\approx$ incertidumbre.

5voto

Honus Wagner Puntos 744

Softmax distribuye la "probabilidad" 0-1 entre las clases disponibles. No expresa incertidumbre, no es una función PDF. Si quiere expresar la incertidumbre, debería buscar en redes neuronales bayesianas. Echa un vistazo a este documento: Incertidumbre en el aprendizaje profundo Algunos marcos probabilísticos bastante recientes:

Interesante charla magistral por Zoubin Ghahramani (Universidad de Cambridge)

Echa un vistazo a este documento: Redes de Densidad de Mezcla :

Supongo que puedes implementarlo y añadirlo como capa final a CONVNET. Si lo implementas no olvides que compartir es cuidar ;-) Buena suerte

5voto

En el documento El abandono como aproximación bayesiana: Representación de la incertidumbre del modelo en el aprendizaje profundo Yarin Gal y Zoubin Ghahramani argumentan lo siguiente

En la clasificación, las probabilidades de predicción obtenidas al final de la tubería (el salida softmax ) suelen interpretarse erróneamente como la confianza del modelo. Un modelo puede ser incierto en sus predicciones incluso con una salida softmax alta (fig. 1). Al pasar una estimación puntual de una función (línea sólida 1a) por un softmax (línea sólida 1b) se obtiene extrapolaciones con injustificado alta confianza para los puntos alejados de los datos de entrenamiento. $x^*$ por ejemplo, se clasificaría como clase 1 con probabilidad 1.

Aquí está la figura 1.

enter image description here

Por lo tanto, si interpretamos los resultados del softmax como incertidumbre o confianza del modelo, el modelo es altamente confiado para el punto $x^*$ aunque no se hayan observado datos de entrenamiento en esa región, pero esto puede ser engañoso, porque la verdadera función, en esa región, podría ser completamente diferente a la aprendida (la línea negra sólida).

3voto

Aksakal Puntos 11351

Lo que se llama softmax en ML tiene la misma ecuación que logística multinomial ecuación. Esta última puede utilizarse para calcular las probabilidades. En la práctica, se utiliza ampliamente en la estimación de las probabilidades de impago en el marco de los riesgos competitivos para las hipotecas, por ejemplo, véase la ecuación 4 en este documento .

Por lo tanto, diría que su intuición no está del todo equivocada. Sin embargo, en el ejemplo de modelización hipotecaria anterior, la variable dependiente es el probabilidad métrica de los impagos de préstamos. Se tiene un conjunto de hipotecas y se observa el número de impagos. Una sola hipoteca puede estar al día o en impago, la probabilidad de su impago no es observable. Sólo observamos los eventos discretos. Sin embargo, modelizamos las probabilidades.

¿En qué se diferencia del aprendizaje automático? Depende. Podría decidir aplicarlo a los impagos de las hipotecas, entonces no sería muy diferente. Por otro lado, en diferentes aplicaciones, esto podría no funcionar. Si no estás modelando la probabilidad explícitamente como en mi ejemplo, entonces la salida de tu modelo puede no representar la probabilidad apropiadamente.

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