¿Qué son las redes adversas generativas (GAN)?

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.

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).

Término del laico:

Considere que tiene miles de canciones de Kishore Kumar con las letras correspondientes. Y desea crear un cantante artificial, que puede crear la canción de Kishore Kumar a partir de cualquier letra con inteligencia artificial.

Generative Adversarial Net [1] puede ayudarlo componiendo dos modelos de red consecutivos: Generative y Discriminative. El modelo generativo puede considerarse análogo a un cantante artificial, tratando de producir una canción falsa de Kishore Kumar y usarlo sin detección, mientras que el modelo discriminatorio es análogo al experto de Kishore Kumar, que trata de detectar la canción artificial. La competencia en este juego impulsa a ambos equipos a mejorar sus métodos hasta que las canciones artificiales no se puedan distinguir de las canciones genuinas de Kishore Kumar.

Entonces, una red generativa adecuadamente entrenada para la canción de Kishore Kumar producirá una hermosa canción falsa de Kishore Kumar incluso para cualquier entrada lírica aleatoria que se le dé.

Del mismo modo, en nuestra cultura india temprana estaba Brahmin, que dedica la vida mortal a la verdad eterna. Después de Brahmacharya, como un modelo generativo entrenado, Brahmin solo puede hablar por la verdad.

Redes Adversarias Generativas

El aprendizaje profundo descubre modelos ricos y jerárquicos utilizando distribuciones de probabilidad de datos. Los éxitos en el aprendizaje profundo han implicado modelos discriminativos, que mapean una entrada de alta dimensión a una etiqueta de clase basada en la regularización, la propagación hacia atrás y las unidades lineales por partes como activación.

Alternativamente, el modelo generativo con unidades lineales por partes y la estimación de máxima verosimilitud es difícil de entrenar debido a la aproximación en muchos cálculos probabilísticos intratables.

Por lo tanto, es un nuevo marco para estimar modelos generativos a través de un proceso de confrontación con:

  • Dos modelos entrenables simultáneamente a través de la propagación hacia atrás para perceptrón multicapa, corresponde a un juego de dos jugadores minimax.
  • Un modelo generativo G:
  • Captura la distribución de datos.
  • Entrena para minimizar la probabilidad de que D cometa un error.
  • Un modelo discriminativo D:
    • Estima la probabilidad de que una muestra provenga de los datos de entrenamiento en lugar de G.
  • No es necesario utilizar cadenas de Markov ni redes de inferencia aproximadas desenrolladas durante el entrenamiento o la generación de muestras.
  • [1] http://arxiv.org/pdf/1406.2661v1

    [2] Brahmin

    Imagina que eres un pintor pero un falsificador. Estudias grandes pinturas de Picasso y tratas de imitar su estilo.

    Luego, va al comprador que tiene un curador BRAD que está dispuesto a pagar $ 1 mil millones por pinturas raras de Picasso, pero es bueno para identificar las réplicas de pintura de Picasso, en nombre de su cliente.

    Por lo tanto, el único objetivo en su vida, el generador, es hacer una pintura única que parezca ser pintada por el propio Picasso pero lo suficientemente única como para ser llamada ‘rara’.

    Mientras que el curador BRAD, el gran discriminador, el objetivo es señalar una falla en su pintura y decir que es falsa o una réplica y ahorrarle a su comprador los mil millones.

    Entonces, usted y su curador BRAD están básicamente compitiendo entre sí, por lo tanto, son adversarios.

    Sigues produciendo imágenes falsas para el comprador BRAD, mientras él sigue encontrando defectos y rechazándolos.
    De esta manera, sigue aprendiendo cómo evitar la réplica y al mismo tiempo producir imágenes únicas con rasgos de Picasso.
    BRAD, a su vez, se convierte en un experto en detectar las fallas y rechazar sus pinturas falsificadas.

    Tenga en cuenta que BRAD no es parcial ni crítico. Él no te etiqueta como un fraude y que solo puedes dar pinturas falsas. Cada vez, él juzga la pintura por su propio aprendizaje y no te etiqueta como un estafador.
    Entonces, al no recompensarte con $ 1 mil millones, te está haciendo aprender de tus errores.

    Si este proceso de pintar y rechazar continúa durante bastante tiempo, sucederá un momento de confusión, cuando haya dominado todos los movimientos de forjar una pintura de Picasso en lo que BRAD puede pensar. Entonces, ahora que le muestras esta pintura a BRAD, él levanta las manos en el aire,

    “¡Bleh! No puedo ver ninguna diferencia más. Simplemente podría o no ser Picasso falso o real, simplemente no lo sé. Me rindo”.

    Bueno, BRAD también necesita su comisión, y la pintura es rara y lo suficientemente única como para ser etiquetada como Picasso para un comprador laico.

    Pero el comprador es un hombre de negocios de corazón. Ahora despide a BRAD de su trabajo de curador y lo emplea y lo hace crear muchas más pinturas originales y venderlas a otros como pinturas originales de Picasso.

    ******* Revelaciones técnicas aburridas *****

    Te conviertes en una GAN … “Red Adversaria Generativa” de Picasso Paitings. Generalmente comienzas como CNN. (Red neuronal de convolución) y no fue supervisada aún más tarde se reforzó. El proceso de aprender de mi error es la propagación hacia atrás.

    BRAD era una red neuronal llamada clasificador o discriminador … que solo hace esto: Picasso o no Picasso. Comenzó como un sistema supervisado, pero luego se reforzó.

    El comprador suele ser un científico de datos / ingeniero de ML / algoritmo.

    ******* ¿Entonces el panorama general es ??? ******

    Hasta ahora, los modelos de aprendizaje profundo (DL) solo podían clasificar o identificar. Por ejemplo, muestre una imagen de gato al modelo DL, aprende a identificarlo como un gato o no como un gato o alguna otra entidad en función de su historial de aprendizaje.

    Pero con GAN, entramos en Deep Learning 2.0. Le decimos a la GAN que me dibuje un gato, me genera un galimatías aleatorio, y lo rechazo, sigue dibujando cosas exclusivamente a partir de puntos de datos aleatorios y, en función de mis comentarios, lo mejora … hasta el punto en que puede dibujar un gato que realmente se parece a un gato real.

    GAN está más cerca del aprendizaje humano. Y como no tienen emociones (todavía), los rechazos no los desaniman, sino que los fracasos los hacen más fuertes y más precisos. Por lo tanto, es realmente importante que el discriminador sea imparcial y no falso, solo un maestro imparcial puede enriquecer al alumno.

    Referencia:
    1. GAN, Ian Goodfellow et al. 2014 (arXiv: 1406.2661)

    Introducción

    Las redes adversas generativas (GAN) son un tipo relativamente nuevo de modelos generativos. Los modelos generativos son una rama de las técnicas de aprendizaje no supervisado en Machine Learning.

    La idea intuitiva detrás de las GAN [1]

    Imagine a un aspirante a pintor que quiere falsificar arte ( G ), y a alguien que quiere ganarse la vida juzgando pinturas ( D ). Empiezas mostrándole a D algunos ejemplos de trabajo de Picasso. Entonces G produce pinturas en un intento de engañar a D cada vez, haciéndole creer que son originales de Picasso. A veces tiene éxito; sin embargo, cuando D comienza a aprender más sobre el estilo Picasso (mirando más ejemplos), G tiene más dificultades para engañar a D , por lo que tiene que hacerlo mejor. A medida que este proceso continúa, no solo D se vuelve realmente bueno al distinguir qué es Picasso y qué no lo es, sino que también G se vuelve realmente bueno para falsificar pinturas de Picasso. Esta es la idea detrás de las GAN.

    Cómo funciona técnicamente una GAN

    Técnicamente, las GAN consisten en un impulso constante entre dos redes (por lo tanto, “adversarial”): un generador ( G ) y un discriminador ( D ). Dado un conjunto de ejemplos de entrenamiento (como imágenes), podemos imaginar que existe una distribución subyacente (x) que los gobierna. Con las GAN, G generará salidas y D decidirá si provienen de la misma distribución del conjunto de entrenamiento o no.

    G comenzará con algo de ruido z , por lo que las imágenes generadas son G (z) . D toma imágenes de la distribución (real) y falsas (de G ) y las clasifica: D (x) y D (G (z)) .

    D y G están aprendiendo al mismo tiempo, y una vez que G está entrenado, sabe lo suficiente sobre la distribución de las muestras de entrenamiento que puede generar nuevas muestras que comparten propiedades muy similares.

    Si presta atención a los detalles de las nuevas muestras generadas (imágenes), puede ver que en realidad no son objetos reales. Sin embargo, hay algo en ellos que captura un cierto concepto que puede hacer que se vean reales desde la distancia.

    Notas al pie

    [1] Los principales avances en aprendizaje profundo en 2016 – Blog Tryolabs

    Las redes adversarias generativas son como su nombre indica,

    • Redes neuronales
    • Generan datos
    • Tienen un adversario.

    El primer artículo que puedo encontrar es [1406.2661] Redes Adversarias Generativas donde se describe el proceso.

    En términos simples, dos redes se entrenan juntas. La primera es una red generativa (la llamaremos CrapShooter) y la segunda es una red discriminatoria (la llamaremos BluffCaller).

    El trabajo de CrapShooter es crear muestras de datos que se parezcan mucho al conjunto de datos que estamos tratando de imitar.

    Es trabajo de BluffCaller intentar identificar qué puntos de datos provienen del conjunto de datos y cuáles fueron generados por CrapShooter.

    El resultado neto es que, con el tiempo, CrapShooter aprende a crear ejemplos que se parecen a los del conjunto de datos, mientras que BluffCaller aprende a discriminar muy bien entre los datos reales y los datos generados. La ventaja de esta configuración en mi opinión es que la capacitación no se basa en ninguna propiedad específica de datos. Se puede utilizar para generar cualquier cosa, desde datos numéricos hasta imágenes.

    Para obtener una lista casi exhaustiva de redes GAN con nombre, sugeriría pasar por el zoológico.

    Las redes adversas generativas (GAN) son una clase de redes neuronales que se utilizan en el aprendizaje automático no supervisado. Ayudan a resolver tareas como la generación de imágenes a partir de descripciones, obtener imágenes de alta resolución de las de baja resolución, predecir qué medicamento podría tratar una determinada enfermedad, recuperar imágenes que contienen un patrón determinado, etc.

    Mi equipo recientemente hizo una introducción al motor GAN y sus aplicaciones en la vida cotidiana .

    Por ejemplo, mientras otros aplican redes generativas de confrontación a imágenes y videos, los investigadores de Insilico Medicine propusieron un enfoque de descubrimiento de drogas artificialmente inteligente utilizando GAN.

    El objetivo es capacitar al Generador para que muestree candidatos de medicamentos para una enfermedad determinada con la mayor precisión posible a los medicamentos existentes de una Base de datos de medicamentos.

    Después del entrenamiento, es posible generar un medicamento para una enfermedad previamente incurable usando el Generador y el Discriminador para determinar si el medicamento de la muestra realmente cura la enfermedad dada.

    Fondo

    Los investigadores ya estaban utilizando redes neuronales como modelos “generativos” para crear sus propios datos plausibles. Pero los resultados a menudo no fueron muy buenos: las imágenes de una cara generada por computadora tendían a ser borrosas o tenían errores como falta de oídos.
    Entonces, Ian Goodfellow reflexionó sobre el problema, ¿qué pasaría si enfrentaras dos redes neuronales entre sí? Funcionó y lo que él inventó ahora se llama GAN . El objetivo de las GAN es dar a las máquinas algo parecido a una imaginación .

    Trabajando

    La lógica de las GAN reside en la rivalidad entre las dos redes neuronales. Imita todo entre un falsificador de imágenes y un detective de arte que repetidamente intentan burlarse unos de otros. Ambas redes están entrenadas en el mismo conjunto de datos.
    El primero, conocido como el generador, produce resultados artificiales, como fotos o escritura a mano, que son lo más realistas posible.
    El segundo, conocido como el discriminador, los compara con imágenes genuinas del conjunto de datos original e intenta determinar cuáles son reales y cuáles son falsos. Sobre la base de esos resultados, el generador ajusta sus parámetros para crear nuevas imágenes. Y así continúa, hasta que el discriminador ya no puede decir qué es genuino y qué es falso.

    ¿Que sigue?

    Una vez que ha sido entrenado en muchas fotos de perros, una GAN puede generar una imagen falsa convincente de un perro que tiene, por ejemplo, un patrón diferente de manchas. En un caso, un GAN comenzó a producir imágenes de gatos con letras aleatorias integradas en las imágenes. Porque los datos de entrenamiento contenían memes de gatos de internet.
    Las aplicaciones más obvias como los videojuegos y la moda.

    Una GAN es un par de redes neuronales utilizadas para imitar una fuente de datos existente. La primera red toma un conjunto de números aleatorios y crea algo que se ajusta aproximadamente a los datos que intenta imitar. La segunda red se entrena utilizando métodos estándar para distinguir entre elementos en los datos de destino y elementos generados por la primera red. El método para tratar la primera red tiene algunos pasos más:

    1. Pase algunos números al azar a través de ambas redes
    2. Ejecute la propagación hacia atrás a través de la segunda red como si la estuviera entrenando para reconocer la muestra como parte de los datos objetivo, use esto para obtener la señal de error para entrenar a la primera red pero no cambie la segunda red
    3. Use la señal de error del paso 2 para entrenar la primera red.

    Al entrenar repetidamente ambas redes: las salidas de la primera red gradualmente se vuelven más difíciles de distinguir de los datos de ejemplo.

    More Interesting

    ¿Hay algún proyecto / investigación de Machine Learning interesante en el que pueda trabajar de forma independiente?

    ¿Qué podríamos hacer con Asimo si la computadora dentro estuviera con el poder de la caja de aprendizaje profundo Nvidia DGX-1?

    ¿Qué es el aprendizaje activo?

    ¿Alguien ha intentado utilizar motores de recomendación y alguna forma de filtrado colaborativo para destacar agujeros en el mercado y producir conceptos para un mayor desarrollo en los productos?

    Procesamiento de señal digital: ¿Conoce las razones por las que la deconvolución de imagen (deblur) no siempre funciona?

    Al entrenar a un clasificador, ¿cómo trato con clases que tienen números muy diferentes de muestras en el conjunto de entrenamiento? ¿Cómo evito un ajuste excesivo en la clase que tiene la mayor cantidad de muestras?

    ¿Cómo se puede aplicar el aprendizaje profundo a los sistemas de recomendación?

    Si el generador y el discriminador usan SGD en Redes Adversarias Generativas, ¿por qué el entrenamiento de adversarios se llama no supervisado?

    ¿Cómo y por qué funciona la estimación de contraste de ruido?

    ¿Es posible usar la red neuronal para predecir múltiples valores respetando ciertas condiciones?

    ¿Puedo usar el aprendizaje por refuerzo para ayudar a las personas a elegir la ruta más barata cuando viajan en avión?

    ¿Es justo evaluar una red neuronal profunda solo de acuerdo con su rendimiento en algunos conjuntos de datos específicos?

    ¿Cuáles son algunas buenas ideas de proyectos o ejemplos para un proyecto de curso de Visión de Computadora basado en Aprendizaje Automático?

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

    ¿Cuál es la intuición detrás de llamar variables ortogonales como independientes? Proporcione una respuesta en el contexto del aprendizaje automático.