He estado trabajando con las redes neuronales convolucionales (CNN) durante algún tiempo, principalmente en datos de imágenes para la segmentación semántica / segmentación de instancias. A menudo he visualizado el softmax de la salida de la red como un "mapa de calor" para ver qué tan altas son las activaciones por píxel para una clase determinada. He interpretado las activaciones bajas como "inciertas" / "inseguras" y las activaciones altas como predicciones "ciertas" / "seguras". Básicamente, esto significa interpretar la salida softmax (valores dentro de ) como una medida de probabilidad o (un) certeza del modelo.
( Por ejemplo, he interpretado que un objeto / área con una activación de softmax baja promediada sobre sus píxeles es difícil de detectar para la CNN, por lo tanto, la CNN es "incierta" sobre la predicción de este tipo de objeto ) .
En mi opinión, esto a menudo funcionó, y agregar muestras adicionales de áreas "inciertas" a los resultados de entrenamiento mejoró los resultados en estos. Sin embargo , ahora he escuchado con bastante frecuencia desde diferentes lados que usar / interpretar la salida de softmax como una medida de (des) certeza no es una buena idea y generalmente se desaconseja. ¿Por qué?
EDITAR: Para aclarar lo que estoy preguntando aquí, elaboraré mis puntos de vista hasta ahora al responder esta pregunta. Sin embargo, ninguno de los siguientes argumentos me dejó claro ** por qué generalmente es una mala idea **, como me dijeron repetidamente colegas, supervisores y también se indica, por ejemplo, aquí en la sección "1.5"
En los modelos de clasificación, el vector de probabilidad obtenido al final de la tubería (la salida softmax) a menudo se interpreta erróneamente como confianza del modelo
o aquí en la sección "Antecedentes" :
Aunque puede ser tentador interpretar los valores dados por la capa softmax final de una red neuronal convolucional como puntajes de confianza, debemos tener cuidado de no leer demasiado en esto.
Las fuentes anteriores razonan que usar la salida softmax como medida de incertidumbre es malo porque:
perturbaciones imperceptibles a 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 "perturbaciones imperceptibles" y, por lo tanto, su salida no es utilizable como probabilidad.
Otro artículo retoma la idea de "salida de softmax = confianza" y argumenta que con esta intuición las redes pueden ser engañadas fácilmente, produciendo "salidas de alta confianza para imágenes irreconocibles".
(...) la región (en el dominio de entrada) correspondiente a una clase particular puede ser mucho más grande que el espacio en esa región ocupada por 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, clasificarse con un pico alto en la salida de softmax, mientras 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 muy lejos de los datos de entrenamiento nunca deberían tener una alta confianza, ya que el modelo "no puede" estar seguro de ello (como nunca lo ha visto).
Sin embargo: ¿no es esto simplemente cuestionar las propiedades de generalización de los NN en su conjunto? Es decir, los NN con pérdida de softmax no se generalizan bien a (1) "perturbaciones imperceptibles" o (2) muestras de datos de entrada que están muy lejos de los datos de entrenamiento, por ejemplo, imágenes irreconocibles.
Siguiendo este razonamiento, todavía no entiendo por qué, en la práctica, con datos que no se alteran abstracta y artísticamente frente a los datos de entrenamiento (es decir, la mayoría de las aplicaciones "reales"), interpretar la salida softmax como una "pseudo-probabilidad" es una mala idea. Después de todo, parecen representar bien de qué está seguro mi modelo, incluso si no es correcto (en cuyo caso necesito arreglar mi modelo). ¿Y la incertidumbre del modelo no es siempre "solo" una aproximación?
fuente
Respuestas:
Esta pregunta se puede responder con mayor precisión que las respuestas actuales. La fijación de la desviación entre las probabilidades pronosticadas (la salida de la capa softmax de una red neuronal) y sus probabilidades verdaderas (que representan una noción de confianza), se conoce como curvas de calibración o confiabilidad.
El problema con muchas redes neuronales profundas es que, aunque tienden a funcionar bien para la predicción, sus probabilidades pronosticadas estimadas producidas por la salida de una capa softmax no pueden usarse de manera confiable como las probabilidades verdaderas (como una confianza para cada etiqueta). En la práctica, tienden a ser demasiado altos: las redes neuronales son "demasiado seguras" en sus predicciones.
Chuan Go y col. al., trabajando con Kilian Weinberger, desarrolló una solución efectiva para calibrar las probabilidades predichas de las redes neuronales en este documento: https://arxiv.org/pdf/1706.04599.pdf
Este documento también explica cómo las probabilidades predichas pueden interpretarse como medidas de confianza cuando las probabilidades predichas se calibran correctamente.
fuente
Lo que se llama softmax en ML tiene la misma ecuación que la ecuación logística multinomial . Este último puede usarse para calcular las probabilidades. En la práctica, se usa ampliamente para estimar las probabilidades de incumplimiento en el marco de riesgos competitivos para las hipotecas, por ejemplo, ver la ecuación. 4 en este artículo .
Por lo tanto, diría que su intuición no está completamente fuera de lugar. Sin embargo, en el ejemplo de modelo de hipoteca anterior, la variable dependiente es la métrica de probabilidad de incumplimiento de préstamos. Tiene un grupo de hipotecas y observa el número de impagos. Una sola hipoteca puede ser actual o estar en mora, la probabilidad de su mora no es observable. Solo observamos los eventos discretos. Sin embargo, modelamos las probabilidades.
¿Cómo es esto diferente del aprendizaje automático? Depende. Podría decidir aplicarlo a los impagos de la hipoteca, entonces no sería muy diferente. Por otro lado, en diferentes aplicaciones, esto puede no funcionar. Si no está modelando la probabilidad explícitamente como en mi ejemplo, entonces el resultado de su modelo puede no representar la probabilidad de manera apropiada.
fuente
Softmax distribuye la 'probabilidad' 0-1 entre las clases disponibles. No expresa incertidumbre, no es una función PDF. Si desea expresar la incertidumbre, debería estar buscando en las redes neuronales bayesianas. Echa un vistazo a este documento: Incertidumbre en el aprendizaje profundo Algunos marcos de probabilidad bastante recientes:
Interesante Conferencia magistral de Zoubin Ghahramani (Universidad de Cambridge)
Echa un vistazo a este documento: Redes de densidad de mezcla :
Supongo que puede implementarlo y agregarlo como capa final a CONVNET. Si lo implementa, no olvide que compartir es cariñoso ;-) Buena suerte
fuente
En el artículo La deserción como una aproximación bayesiana: representando la incertidumbre del modelo en el aprendizaje profundo , Yarin Gal y Zoubin Ghahramani argumentan lo siguiente
Aquí está la figura 1.
Entonces, si interpretamos los resultados del softmax como incertidumbre o confianza del modelo, el modelo es altamente confiable para el puntoX∗ , aunque no se observaron 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 continua).
fuente