¿Qué es un modelo generativo profundo?

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

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.

More Interesting

Cómo etiquetar objetivamente objetos con etiquetas que son subjetivas, en sistemas expertos

Si la IA de aprendizaje automático no puede explicar una respuesta, ¿se puede 'confiar' en un diagnóstico médico?

¿Debería incluirse el error de salida en la retropropagación en el bucle?

¿Alguna vez has observado que la normalización por lotes en realidad ralentiza el entrenamiento?

Dada una lista de codificadores y sus respectivos conjuntos de fragmentos de código, ¿es posible inferir a partir de un fragmento de código nuevo dado el codificador original?

¿Cuál es la mejor manera de hacer un análisis de sentimientos de los datos de Facebook en Java?

¿Cuál es el papel de la descomposición de Cholesky en la búsqueda de PDF normal multivariante?

Estoy tratando de construir un proyecto de aprendizaje automático para predecir el precio del automóvil usado. ¿Dónde puedo obtener una base de datos para la reventa de los autos usados?

¿Cuál es la diferencia entre un vector de pensamiento y un vector de omisión de pensamiento?

¿Cuál es la posibilidad de hacer una máquina de pensamiento real?

¿Cuál es la diferencia entre el aprendizaje automático, el procesamiento del lenguaje natural, el aprendizaje profundo y la visión por computadora?

¿Por qué los lars y glmnet dan diferentes soluciones? ¿Cuál es mejor?

En el modelado de datos, ¿podría ser una buena idea crear algorítmicamente una característica grande para activar las meta características actuales antes del modelado?

¿Puede Naive Bayes alcanzar algún rendimiento con suficientes datos?

¿Cómo representa doc2vec el vector de características de un documento? ¿Alguien puede explicar matemáticamente cómo se realiza el proceso?