Las Redes Adversarias Generativas (GAN) son redes neuronales que se entrenan de manera contradictoria para generar datos que imitan alguna distribución.
Para entender esto profundamente, primero tendrá que entender qué es un modelo generativo. En el aprendizaje automático, las dos clases principales de modelos son generativas y discriminatorias . Un modelo discriminativo es aquel que discrimina entre dos (o más) clases diferentes de datos, por ejemplo, una red neuronal convolucional que está entrenada para generar 1 dada una imagen de un rostro humano y 0 en caso contrario. Un modelo generativo, por otro lado, no sabe nada sobre las clases de datos. En cambio, su propósito es generar nuevos datos que se ajusten a la distribución de los datos de entrenamiento; por ejemplo, un modelo de mezcla gaussiana es un modelo generativo que, después de entrenarse en un conjunto de puntos, es capaz de generar nuevos puntos aleatorios que más o más sin ajustar la distribución de los datos de entrenamiento (suponiendo que un GMM pueda imitar bien los datos). Más específicamente, un modelo generativo [matemático] g [/ matemático] entrenado en datos de entrenamiento [matemático] X [/ matemático] muestreado de alguna distribución verdadera [matemático] D [/ matemático] es uno que, dada alguna distribución aleatoria estándar [matemático ] Z [/ math], produce una distribución [math] D ^ \ prime [/ math] que está cerca de [math] D [/ math] según alguna métrica de cercanía (una muestra [math] z \ sim Z [/ math] se asigna a una muestra [math] g (z) \ sim D ^ \ prime [/ math]).
La forma ‘estándar’ de determinar un modelo generativo [matemático] g [/ matemático] dados los datos de entrenamiento [matemático] X [/ matemático] es la máxima probabilidad, que requiere todo tipo de cálculos de probabilidades marginales, funciones de partición, muy probablemente estimaciones, etc. Esto puede ser factible cuando su modelo generativo es un GMM, pero si desea intentar hacer un modelo generativo a partir de una red neuronal profunda, esto rápidamente se vuelve intratable.
- Serie temporal: ¿Existe un enfoque para la detección de anomalías que no se base en datos de entrenamiento anteriores?
- ¿Cuál es la mejor estrategia para un oponente de IA para predecir la ubicación y golpear la pelota en un juego de Pong?
- ¿Cuál es la principal diferencia entre los problemas de clasificación y los problemas de regresión en el aprendizaje automático?
- ¿Qué ha aprendido sobre el aprendizaje automático, la recuperación de información y la minería de datos después de unirse a una empresa de Internet que se ocupa de big data?
- ¿Cuál es la diferencia entre el análisis factorial y el análisis de conglomerados?
El entrenamiento adversario le permite entrenar un modelo generativo sin todos estos cálculos intratables. Asumamos nuestros datos de entrenamiento [math] X \ subset \ mathbb {R} ^ d [/ math]. La idea básica es que tendrá dos modelos adversarios : un generador [math] g: \ mathbb {R} ^ {n} \ to \ mathbb {R} ^ d [/ math] y un discriminador [math] d: \ mathbb {R} ^ d \ to \ {0,1 \} [/ math]. El generador tendrá la tarea de tomar una muestra dada de una distribución aleatoria estándar (p. Ej., Una muestra de un guassiano [matemático] n [/ matemático]) y producir un punto que parezca que podría provenir de la misma distribución como [matemáticas] X [/ matemáticas]. El discriminador, por otro lado, tendrá la tarea de discriminar entre muestras de los datos verdaderos [matemática] X [/ matemática] y los datos artificiales generados por [matemática] g [/ matemática]. Cada modelo está tratando de superar al otro: el objetivo del generador es engañar al discriminador y el objetivo del discriminador es no dejarse engañar por el generador.
En nuestro caso, tanto [math] g [/ math] como [math] d [/ math] son redes neuronales. Y lo que sucede es que los entrenamos a ambos de manera alterna. Cada uno de sus objetivos se puede expresar como una función de pérdida que podemos optimizar a través del descenso de gradiente. Así que entrenamos [math] g [/ math] para un par de pasos, luego entrenamos [math] d [/ math] para un par de pasos, luego le damos a [math] g [/ math] la oportunidad de mejorar, y así sucesivamente . El resultado es que el generador y el discriminador mejoran cada uno de sus objetivos en conjunto, de modo que al final, el generador puede o está cerca de engañar al discriminador más sofisticado. En la práctica, este método termina con redes neuronales generativas que son increíblemente buenas para producir nuevos datos (por ejemplo, imágenes aleatorias de rostros humanos).