¿Cómo determinar la confianza de una predicción de red neuronal?


22

Para ilustrar mi pregunta, suponga que tengo un conjunto de entrenamiento donde la entrada tiene un grado de ruido pero la salida no, por ejemplo;

# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]

aquí la salida es el gradiente de la matriz de entrada si no tuviera ruido (no el gradiente real).

Después de entrenar la red, la salida debería verse así para una entrada dada.

# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]

Mi pregunta es ¿cómo se puede crear una red neuronal de modo que devuelva un valor predicho y una medida de confianza, como una varianza o intervalo de confianza?


3
Si está buscando un intervalo que contendrá una realización futura , entonces está buscando un intervalo de predicción , no un intervalo de confianza , que pertenezca a parámetros no observables . Esto a menudo se confunde.
S. Kolassa - Restablece a Mónica el

Respuestas:


20

Parece que está buscando un , es decir, un intervalo que contenga un porcentaje predeterminado de realizaciones futuras. (Mire la etiqueta wikis para y para la diferencia).

Es probable que su mejor opción sea trabajar directamente con arquitecturas NN que no generan predicciones de un solo punto, sino distribuciones predictivas completas . Luego puede extraer directamente los intervalos de predicción deseados (o predicciones de punto medio o medio) de estas distribuciones. Yo y otros hemos estado argumentando que las distribuciones predictivas son mucho más útiles que las predicciones puntuales , pero para ser honesto, todavía no he visto mucho trabajo sobre distribuciones predictivas con redes neuronales, aunque he estado manteniendo los ojos abiertos. Parece que este documento podría ser útil. Es posible que desee buscar un poco, quizás también utilizando otras palabras clave como "distribuciones de pronóstico" o "densidades predictivas" y demás.

Dicho esto, es posible que desee analizar el algoritmo NeuroBayes de Michael Feindt, que utiliza un enfoque bayesiano para pronosticar densidades predictivas.


1
Este puede ser otro documento útil: una red neuronal que aprende distribuciones: google.com/…
Pro Q

@Stephan: El enlace ha desaparecido: (
Matthew Drury

@MatthewDrury: ¿a qué enlace te refieres? Los tres están funcionando bien para mí.
S. Kolassa - Restablece a Mónica el

¿Puede llevarnos a una demostración / ejemplo de Ternsorflow simple con NN Predictive Distributions?
Martin Thøgersen

@ MartinThøgersen: lo siento, no, no uso Tensorflow ...
S. Kolassa - Restablece a Monica el

5

No estoy seguro de que pueda calcular un intervalo de confianza para una sola predicción, pero sí puede calcular un intervalo de confianza para la tasa de error de todo el conjunto de datos (puede generalizar la precisión y cualquier otra medida que esté evaluando).

Si es su tasa de error al clasificar algunos datos S de tamaño n , un intervalo de confianza del 95% para su tasa de error viene dado por: e ± 1.96 miSnorte .

mi±1,96mi(1-mi)norte

(Ver el libro "Machine Learning" de Tom Mitchell, capítulo 5).

EDITAR

Supongo que debería establecer un caso más general, que es: donde las opciones comunes parazNse enumeran en la siguiente tabla:

mi±znortemi(1-mi)norte,
znorte
confidence level    80%    90%    95%    98%    99%
values of zN       1.28   1.64   1.96   2.33   2.58

1
Esto requeriría que la distribución asintótica sea normal
usuario 2879934

44
Para muestras de gran tamaño (que es bastante común en ML), generalmente es seguro asumir eso. No había necesidad de votar negativamente, solo pedir una aclaración, pero bueno.
mp85

4

Los intervalos de predicción (PI) en problemas de regresión y clasificación no paramétricos, como redes neuronales, SVM, bosques aleatorios, etc., son difíciles de construir. Me encantaría escuchar otras opiniones sobre esto.

Sin embargo, hasta donde yo sé, la predicción conformacional (CP) es el único método basado en principios para construir PI calibrado para la predicción en problemas de clasificación y regresión no paramétrica. Para un tutorial sobre CP, consulte Shfer y Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]


3

No conozco ningún método para hacerlo de manera exacta.

μσ(Xyo,yyo)-Iniciar sesiónnorte(yyo-μ(Xyo),σ(Xyo))μ(Xyo)yyoσ(Xyo)

yyo-μ(Xyo)σ(Xyo)norte(0 0,1)


1
σ+

¿Hay ejemplos concretos que alguien haya visto de usar un NN para generar parámetros de una distribución, entrenados sobre la probabilidad de registro?
Miss Palmer

3

No he oído hablar de ningún método que proporcione un intervalo de confianza para una predicción de red neuronal. A pesar de la falta de metodología formal, parece que sería factible construir uno. Nunca he intentado esto debido a la potencia de cálculo que sería necesaria y no afirmo que esto funcione con certeza, pero un método que podría funcionar para una pequeña red neuronal (o con una potencia de GPU increíblemente rápida podría funcionar para redes de tamaño moderado) ) sería volver a muestrear el conjunto de entrenamiento y construir muchas redes similares (digamos 10,000 veces) con los mismos parámetros y configuraciones iniciales, y construir intervalos de confianza basados ​​en las predicciones para cada una de sus redes de arranque.

Por ejemplo, en las 10,000 redes entrenadas como se discutió anteriormente, uno podría obtener 2,0 (después de redondear las predicciones de regresión de la red neuronal) 9,000 de esas veces, por lo que podría predecir 2.0 con un IC del 90%. Luego, podría crear una matriz de CI para cada predicción realizada y elegir el modo para informar como el CI principal.


2
Sería curioso por qué esta sugerencia fue rechazada, ya que esencialmente es de arranque de una manera poco convencional (el componente de redondeo del problema hace que sea fácil verificar qué tan segura está la red neuronal sobre la predicción). En realidad, no me importa el voto negativo si quien rechazó este voto podría explicar por qué esta no es una solución válida a la pregunta propuesta. ¡Estoy aprendiendo a mí mismo y agradecería cualquier comentario!
Tony S

1
No voté en contra, pero por lo que entiendo, el método propuesto generaría intervalos que capturarían los valores pronosticados del modelo, esto no es lo mismo que los intervalos que capturan los valores verdaderos.
Señorita Palmer

3

En términos de generar directamente los intervalos de predicción, hay un documento de 2011 " Revisión integral de los intervalos de predicción basados ​​en redes neuronales "

Comparan cuatro enfoques:

1: Método Delta 2: Método Bayesiano 3: Estimación de la varianza media 4: Bootstrap

Los mismos autores desarrollaron el Método de estimación del límite superior inferior para la construcción de intervalos de predicción basados ​​en redes neuronales que genera directamente un límite inferior y superior desde el NN. Desafortunadamente, no funciona con backprop, pero el trabajo reciente lo hizo posible: Intervalos de predicción de alta calidad para el aprendizaje profundo .

Alternativa a la salida directa de los intervalos de predicción, las redes neuronales bayesianas (BNN) modelan la incertidumbre en los parámetros de un NN y, por lo tanto, capturan la incertidumbre en la salida. Esto es difícil de hacer, pero los métodos más populares incluyen ejecutar el abandono de MC en el tiempo de predicción o el ensamblaje .


1
En realidad, es bastante fácil hacerlo con Bayesian Deep Learning. Ver por ejemplo edwardlib.org/tutorials/bayesian-neural-network
DeltaIV

2

En realidad, hay formas de hacerlo mediante el abandono. Ejecute la evaluación con el abandono habilitado (generalmente está deshabilitado para la evaluación pero activado durante el entrenamiento), y ejecute la evaluación varias veces.

La distribución de resultados de múltiples ejecuciones diferentes se puede utilizar como intervalos de confianza.

Vea el documento "El abandono como una aproximación bayesiana: representación de la incertidumbre del modelo en el aprendizaje profundo ". Mire la presentación de YouTube Andrew Rowan: aprendizaje profundo bayesiano con Edward (y un truco con el abandono)


1

No hay manera, todos los modelos de ML no se trata de la comprensión de los fenómenos, son métodos de interpolación con la esperanza de que "funcione". Comience con tales preguntas de confianza, robustas al ruido no hay respuestas.

Entonces, para derivar algo, utilice varias ciencias aplicadas y fundamentales:

  • Usar control (y hacer suposiciones sobre dinámica)

  • Utilice la optimización convexa (con alguna condición adicional en la función)

  • Utilice estadísticas matemáticas (con supuestos preliminares sobre distribuciones)

  • Utilice el procesamiento de la señal (con algunos supuestos de que la señal es limitada en la banda)

Los científicos usan algunas suposiciones preliminares (llamadas axiomas) para derivar algo.

No hay forma de dar confianza sin alguna suposición preliminar, por lo que el problema no está en el método DL, pero es un problema en cualquier método que intente interpolar sin NINGUNA suposición preliminar: no hay forma de derivar de forma inteligente algo sin álgebra sin una suposición.

NN y varios métodos de ML son para la creación rápida de prototipos para crear "algo" que parece funcionar "de alguna manera" verificado con validación cruzada.

Aún más profundo, el ajuste de regresión E [Y | X] o su estimación puede ser un problema absolutamente incorrecto para resolver (tal vez el pdf en el punto Y = E [Y | X] tiene un mínimo, no un máximo), y hay muchas cosas tan sutiles cosas.

También permítanme recordar dos problemas irresolubles en AI / ML, que pueden ser olvidados por alguna razón, detrás de los lemas de belleza:

(1) Se trata de métodos de interpolación, no de extrapolación: no tiene la capacidad de lidiar con nuevos problemas

(2) nadie sabe cómo se comportará cualquier modelo con datos que no sean de la misma distribución (hombre disfrazado de plátano para la localización de peatones)


¿Qué tal modelar el error del conjunto de datos de entrenamiento para "predecir" el error de inferencia?
Jacko

Incluso suponga que es aditivo "predict_for_mean" + "predict_for_error". Puede imaginar cualquier esquema para predecir la señal y el error por separado. Pero una vez más: si "solo interpolamos", no podemos decir algo con confianza. Predecimos la temperatura en la superficie. Sí, puede decir que mi predicción "20" y la predicción de error es "5". Por lo tanto, dice que creo que la respuesta real es mentira en [20-5, 20 + 5], pero para comprender realmente lo que significa, necesitamos comprender los fenómenos reales y el modelo matemático. Y ML no se trata de ambos. Otras áreas hacen algunas suposiciones preliminares.
bruziuz

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.