Una guía para principiantes de la CNN bayesiana

Estás leyendo la publicación: Una guía para principiantes de la CNN bayesiana

Las redes neuronales convolucionales (CNN) son la mejor manera de lidiar con problemas de visión por computadora como la clasificación de imágenes, la localización y detección de objetos y la segmentación de imágenes. La razón principal detrás de esta capacidad es que CNN puede manejar fácilmente un conjunto de puntos de datos no lineales. La mayoría de las veces encontramos que estos conjuntos de datos son pequeños en cantidad para entrenar CNN y CNN estándar requiere datos de gran tamaño para superar el problema del sobreajuste. La CNN bayesiana es una variante de la CNN que puede reducir las posibilidades de sobreajuste durante el entrenamiento con datos de tamaño pequeño. En este artículo, vamos a discutir la CNN bayesiana. Los puntos principales que se discutirán en el artículo se enumeran a continuación.

Tabla de contenido

  1. ¿Qué son las redes neuronales bayesianas?
  2. Problema con CNN
  3. ¿Qué es la CNN bayesiana?
  4. La arquitectura de la CNN bayesiana
  5. ¿Cómo funciona la CNN bayesiana?
  6. Aplicaciones de la CNN bayesiana

Primero comprendamos cómo se usa el bayesiano en una red neuronal.

¿Qué son las redes neuronales bayesianas?

Podemos pensar en la red neuronal bayesiana como una extensión de una red estándar con inferencia posterior para que la red pueda lidiar con el sobreajuste. Hablando de las redes estándar, están obligados a realizar una tarea determinada en los datos sin tener ningún conocimiento previo sobre la tarea. Para ello, la red encuentra la estimación de puntos óptimos para los pesos en cada nodo. Aplicar el enfoque bayesiano significa usar métodos estadísticos para cubrir una distribución de probabilidad que se adjunta a la red con parámetros de la red, como pesos y sesgos.

Hablando de las redes estándar, obtenemos diferentes valores para la misma variable aleatoria. La aplicación de Bayesian en la red hace que los datos históricos representen el conocimiento previo del comportamiento general con las propiedades estadísticas de cada variable que también pueden variar con el tiempo. Podemos suponer que cualquier variable aleatoria con una distribución normal y siempre que la red estándar funcione en X da resultados diferentes. Los resultados de la red dependen de la distribución de probabilidad de la X. Podemos obtener un resultado similar deduciendo la naturaleza y la forma de los parámetros de la red neuronal. El motivo detrás de la aplicación de Bayesian en redes neuronales es el siguiente:

  • Las redes estándar tienen el problema de sobreajustarse con pequeños conjuntos de datos.
  • Bayesian se puede aplicar a cualquier red.
  • La aplicación de bayesiano hace que la red sea capaz de dar mejores resultados con una gran cantidad de tareas.
  • Bayesian ayuda a predecir o estimar la incertidumbre en la predicción.
🔥 Recomendado:  Cómo hackear una página de Facebook en 2023

En lo anterior, hemos discutido un motivo que nos dice que aplicar bayesiano reduce el problema del sobreajuste. Al hablar de la red neuronal convolucional, son famosos por tratar con los datos de la imagen, y para que funcionen correctamente, debemos proporcionar datos de alta dimensión para el entrenamiento, pero en situaciones en las que las dimensiones de los datos son bajas, podemos encontrar útil la aplicación de Bayesian en CNN. Analicemos el problema con la CNN antes de pasar a la CNN bayesiana.

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos? echa un vistazo aquí.

Problema con CNN

Las redes neuronales convolucionales son una de las variantes más importantes de las redes neuronales profundas que se utilizan principalmente para tratar con datos de imágenes. Estos tipos de datos se pueden considerar como un conjunto de puntos de datos no lineales que requieren una gran cantidad de modelado y están disponibles en cantidades muy pequeñas. El entrenamiento de CNN requiere una gran cantidad de datos para reducir las posibilidades de sobreajuste.

Entonces, en general, podemos decir que entrenar CNN con datos pequeños conduce a un sobreajuste. Aunque estos modelos son capaces de entrenarse con pequeños datos de entrenamiento, pero no son capaces de predecir con precisión. En lo anterior, hemos discutido que podemos reducir las posibilidades de sobreajuste aplicando estadísticas bayesianas a la red. Del mismo modo, el bayesiano también se puede aplicar con la CNN. aplicar bayesiano en CNN nos ayuda a aproximar la incertidumbre y también regulariza las predicciones.

🔥 Recomendado:  ¿Cómo optimizar las canalizaciones de aprendizaje automático con TPOT?

¿Qué es la CNN bayesiana?

En lo anterior, hemos visto que aplicar bayesiano en redes neuronales es un método para controlar el sobreajuste. También podemos aplicar bayesiano en CNN para reducir el sobreajuste y podemos llamar a CNN con bayesiano aplicado como bayesianoCNN. Una forma de hacerlo puede ser modelando la distribución sobre el kernel de CNN, aquí se nos requiere inferir el modelo posterior. En una variedad de casos, podemos encontrar la aproximación del modelo posterior con la inferencia variacional, mientras que en algunos casos encontramos el modelado del posterior usando distribuciones variacionales como la distribución gaussiana. El principal objetivo de aplicar Bayesian en la CNN es ajustar el parámetro de distribución más cerca de la verdadera posterior. Este objetivo puede cumplirse completamente minimizando la divergencia desde la parte posterior.

Podemos formar una CNN bayesiana aproximando la verdadera distribución de probabilidad posterior con la distribución de probabilidad variacional que puede componer propiedades de distribuciones como la distribución gaussiana. A la distribución final la llamamos distribución de probabilidad posterior variacional que expresa una estimación de incertidumbre de los parámetros de los modelos. Algunos de los estudios de las CNN bayesianas han mostrado en sus resultados que estas CNN bayesianas son útiles para predecir con más riqueza a partir de un modelo económico promedio.

Podemos usar la CNN bayesiana para tareas como Super-Resolución de imagen y Redes antagónicas generativas. En esta sección, veremos cómo podemos modelar una CNN bayesiana. Veamos los trabajos donde encontramos las implementaciones de la CNN bayesiana.

La arquitectura de la CNN bayesiana

Esta sección nos permitirá conocer la arquitectura básica de la CNN bayesiana, digamos que en la arquitectura debemos agregar inferencia variacional con CNN. por lo que la arquitectura puede tener los siguientes tres componentes principales:

(Cada peso de filtro tiene distribución en CNN Bayesiana)

  • Capas: en la sección de capas de la red, podemos usar un contenedor de módulos y aplanar la capa, las capas lineales y la capa convolucional.
  • Modelos bayesianos: que deben contener algunos de los modelos bayesianos estándar como BBBLeNet, BBBAlexNet, BBB3Conv3FC, etc.
  • Modelo convolucional: esta sección de la arquitectura puede contener CNN como LeNet y AlexNet.
🔥 Recomendado:  Una guía para la optimización de hiperparámetros usando HpBandSter

¿Cómo funciona la CNN bayesiana?

Usando la CNN bayesiana nos enfocamos principalmente en estimar la incertidumbre que puede ser de dos tipos, uno que mide la variación de los datos y el segundo que mide el modelo. Entonces, para estimar la incertidumbre, podemos colocar la última capa en la arquitectura anterior y esta capa debería proponer el estimador para predecir la incertidumbre utilizando la siguiente condición matemática:

Fuente de imagen

El primer término de la ecuación es para medidas de variación de datos y el segundo mide la variación de los modelos. La condición anterior calcula la variabilidad de la probabilidad predictiva. Esta condición también implica pasos de muestreo adicionales para proporcionar resultados mientras se reduce la cantidad de pesos, lo que también ayuda a deducir el sobreajuste. Después de calcular estos dos términos, también podemos convertirlos en probabilidad para generar los resultados.

Aplicaciones de la CNN bayesiana

Algunas de las aplicaciones notables de las redes convolucionales bayesianas son las siguientes:

Ultimas palabras

En este artículo, hemos discutido la CNN bayesiana y las redes neuronales bayesianas. Con CNN encontramos el problema del sobreajuste mayoritario y aplicarles estadísticas bayesianas puede hacerlos más capaces y precisos al mismo tiempo que se reducen las posibilidades de sobreajuste. Junto a esto, hemos visto ejemplos de algunos trabajos que nos pueden ayudar a realizar nuestros proyectos en la CNN bayesiana.