Las redes neuronales bayesianas (BNNs) se refieren a la extensión de redes estándar con inferencia posterior para controlar el sobreajuste. Desde una perspectiva más amplia, el enfoque bayesiano usa la metodología estadística para que todo tenga una distribución de probabilidad adjunta, incluidos los parámetros del modelo (pesos y sesgos en las redes neuronales). En los lenguajes de programación, las variables que pueden tomar un valor específico obtendrán el mismo resultado cada vez que acceda a esa variable específica. Comencemos con la revisión de un modelo lineal simple, que predecirá la salida por la suma ponderada de una serie de características de entrada.
En comparación, en el mundo bayesiano, puede haber entidades similares, también conocidas como variables aleatorias, que te darán un valor diferente cada vez que accedas a ellas. En términos bayesianos, los datos históricos representan nuestro conocimiento previo del comportamiento general, y cada variable tiene sus propias propiedades estadísticas que varían con el tiempo. Supongamos que X es una variable aleatoria que representa la distribución normal. Cada vez que se accede a X, el resultado que se obtiene tendrá diferentes valores. Este proceso de obtener un nuevo valor a partir de una variable aleatoria se llama muestreo. El valor que se obtiene depende de la distribución de probabilidad asociada a la variable aleatoria. Eso significa que, en el espacio de parámetros, se puede deducir la naturaleza y la forma de los parámetros aprendidos por la red neuronal. Recientemente hubo mucha actividad en esta área, con el advenimiento de varias bibliotecas de programación probabilística como PyMC3, Edward, Stan, etc. Los métodos bayesianos se usan en muchos campos: desde el desarrollo de juegos hasta el descubrimiento de fármacos.
En lugar de considerar una sola respuesta a una pregunta, los métodos bayesianos permiten considerar toda una distribución de respuestas. Con este enfoque, puedes abordar de manera natural problemas como:
