Los modelos generativos profundos son modelos de redes neuronales que pueden replicar la distribución de datos que usted le brinda. Esto le permite generar puntos de datos “falsos pero realistas” a partir de puntos de datos reales.
Hay dos departamentos principales de modelos generativos: Autoencoders Variacionales y Redes Adversarias Generativas.
Codificadores automáticos variacionales
- ¿Cuándo se lanzará sklearn 0.18?
- Cómo pensar que el 'problema de aprendizaje One Shot' se resolverá con Deep Neural Network
- ¿Qué medida de evaluación fuera de línea para los sistemas de recomendación se correlaciona mejor con los resultados de la prueba AB en línea?
- ¿En qué se basa IBM Watson? ¿Es una alternativa interna de IBM a TensorFlow?
- ¿Cuáles son las lecciones del desafío del Premio Netflix?
Los codificadores automáticos (sin el “Variacional”) toman datos, los transforman a través de una capa oculta e intentan replicar los datos. Esencialmente, es una red neuronal que replica exactamente lo que se coloca. Esto parece realmente simple, pero hay un problema: la capa oculta tiene menos neuronas que la capa de entrada. Esto significa que no puede simplemente copiar y pegar: necesita “comprimir” los datos de entrada en menos nodos y reconstruirlos. Normalmente, no estamos interesados en la reconstrucción, esta es simplemente una forma de conocer el progreso de la red y encontrar una forma manejable de darle retroalimentación (no podemos decir qué tan cerca está de la respuesta correcta) basado en los nodos ocultos, latentes, podemos si reconstruye la imagen). El objetivo es que, si la red puede replicar con éxito la imagen (aproximadamente), entonces sabemos que la capa oculta ha comprimido correctamente la imagen. Esto es importante porque la capa oculta solo debe capturar las características importantes de la imagen, por lo que los codificadores automáticos son realmente útiles para la extracción de características o como una forma de pre-entrenamiento.
Los autoencoders variacionales son básicamente lo mismo, pero con un giro probabilístico. Toman la entrada, pero la capa oculta genera parámetros de distribución, como una media, por ejemplo. Entonces, si la distribución latente era una distribución gaussiana, las salidas de capa oculta representarían la media de la distribución gaussiana. Luego entrenamos la capa oculta para generar una media lo más cercana posible a 0 (una unidad gaussiana). Esto es bueno porque ahora sabemos la distribución exacta que seguirá la capa oculta (un gaussiano), por lo que si queremos generar nuestras propias imágenes, simplemente tomamos muestras de la distribución gaussiana y la alimentamos a la capa de salida.
Redes Adversarias Generativas
Esto es realmente genial. Esto en realidad consiste en dos redes: un generador y un discriminador. Comenzamos con una distribución de datos y un generador de números aleatorios. Alimentamos los números aleatorios de la red del generador, y la red asigna esos números a datos (o imágenes). Luego, el discriminador toma el punto de datos hecho por el generador y un punto de datos real de la distribución de datos, y genera probabilidades de registro de que el generador y el punto de datos reales son reales.
Entonces, el objetivo de la red del generador es hacer que la red del discriminador produzca un 1 cuando alimente la imagen del generador (esto significa que el discriminador cree que la imagen del generador es real, lo cual es bueno para el generador), y el objetivo del discriminador es para generar un 0 para la imagen del generador y un 1 para la imagen real.
Una vez que entrenamos las redes de esta manera durante mucho tiempo, el generador comienza a generar imágenes similares a la distribución de datos reales. Una imitación perfecta es cuando el generador genera imágenes tan reales, que el discriminador siempre genera un 0.5 como probabilidad, porque la posibilidad de que la imagen sea real es 50/50 (esta es la distribución óptima para la red discriminadora).
Estas son explicaciones realmente malas y apresuradas, pero esta es una idea general de cómo son estos fascinantes modelos generativos.
Este es un ejemplo de una red de confrontación generativa que genera caras de gato. Son bastante buenos, aunque no del todo de la vida.