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?
Respuestas:
Parece que está buscando un intervalo de predicción , es decir, un intervalo que contenga un porcentaje predeterminado de realizaciones futuras. (Mire la etiqueta wikis para la predicción de intervalo y del intervalo de confianza 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.
fuente
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 √mi S 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:
fuente
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]
fuente
No conozco ningún método para hacerlo de manera exacta.
fuente
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.
fuente
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 .
fuente
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)
fuente
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)
fuente
Este artículo es una presentación interesante de una técnica basada en la deserción:
http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html
fuente