Network-Generativa-Antagónica (GAN)

Neuronal-Networking

Nota: (Las Red-Generativa-Antagónica (GAN) son arquitecturas de algoritmos de Inteligencia-Artificial que constan de dos Redes-Neuronales en fretadas un Generador y un Discriminador en una especie de competición mutua entre las dos Redes-Neuronales. Se utiliza para crear imágenes fotorrealistas , modelar patrones de movimiento en videos, crear modelos 3D de objetos a partir de imágenes 2D, editar imágenes astronómicas, interacción del usuario con los chatbots sea natural etc. ).

 

Que es Network-Generativa-Antagónica (GAN)

-. Las Red-Generativa-Antagónica (GAN) o Network-Generativa-Antagónica (GAN), son una clase de Redes-Neuronales-Artificiales se han convertido en uno de los pilares de la llamada Inteligencia-Artificial. En los últimos años han permitido un gran avance en el campo del Machine-Learning no supervisado. Las GAN son una de las herramientas más interesantes de la IA, tiene cierta complejidad para su implementación requiere un cierto dominio de los llamados Frameworks-ML.

-. Las Redes-Generativas-Antagónicas (GANs), son una clase de algoritmos de inteligencia artificial que se utilizan en el aprendizaje no supervisado, implementadas por un sistema de dos redes neuronales que compiten mutuamente en una especie de juego

Nota: En diagrama siguiente, tenemos una primera Red-Neuronal, la cual llamamos Generador, genera nuevas instancias de datos, mientras que la segunda Red-Neuronal, el Discriminador , los evalúa para verificar su autenticidad; es decir, el Discriminador decide si cada instancia de datos que revisa pertenece o no al conjunto de datos de entrenamiento real.

  • En el diagrama de flujo tenemos la arquitectura general que tiene una Red-Generativa-Antagónica (GAN) cómo el cálculo de la Loss-perdidas de la clasificación interacciona entre las dos Redes-Neuronales que intervienen. los datos reales que queremos que la Red-Neuronal Generador aprenda a emular lo mejor posible. Estos datos sirven de entrada a la Red-Neuronal del Discriminador.
  • Por otro lado, hay una entrada de datos aleatorios ruido que la Red-Neuronal Generador utiliza como punto de partida para sintetizar ejemplos. La Red-Discriminador toma como entrada un dato real o un ejemplo falso producido por el Red-Generador, y determina la probabilidad en una escala de 0 a 1 de que el ejemplo sea real. Para cada una de las conjeturas del Discriminador se debe determinar cuán bueno fue, y usamos los resultados para ajustar iterativamente a través del mecanismo de backpropagation los parámetros de la red del Discriminador y de la red del Generador.

 

Tipos-Red-Generativa-Antagónica (GAN)

Network-Generativa-Antagónica (GAN):

  • Es el tipo de mas GAN-Simple, el Discriminator y Generador son perceptrones de múltiples capas. El Discriminator es un clasificador binario y utiliza la pérdida de entropía cruzada sigmoidea durante la optimización. Sus algoritmos son simples y optimizan la ecuación matemática con la ayuda del descenso de gradiente estocástico.

Network-Generativa-Antagónica-Condicional (CGAN):

  • El tipo (CGAN), es una técnica de Aprendizaje-Profundo que involucra parámetros condicionales específicos para ayudar a diferenciar entre datos reales y falsos. En las CGAN, se agrega un parámetro adicional ‘y’ al Generador para generar los datos correspondientes. Se agregan etiquetas a esta entrada y se alimentan al Discriminador para ayudar a distinguir los datos reales de los datos falsos generados.

Network-Generativa-Antagónica-Convolucional-Profundo (DCGAN):

  • El tipo de Convolucional-Deep-GAN (DCGAN) “Es la estrella” y se considera la implementación de GAN más exito. DCGAN se compone de ConvNets en lugar de Perceptrones-Multicapa. Estos ConvNets (CNN) se aplican sin usar técnicas como max-pooling o conectar completamente las capas. Las DCGAN admiten Redes-Neuronales-Convolución en lugar de redes neuronales estándar tanto en el Discriminador como en el Generador. Son más estables y generan imágenes de mejor calidad.

Nota: Que es el ConvNets (Las redes neuronales convolucionales (ConvNets o CNN) son una categoría de redes neuronales que son muy eficaces en áreas como el reconocimiento y la clasificación de imágenes). Es otra forma de llamar a las Redes-Neuronales-Convolucionales (CNN) hago referencia a ello por parecer tendencia.

  • El Generador es un conjunto de Capas-Convolución con convoluciones de pasos fraccionarios o convoluciones transpuestas, por lo que aumenta la muestra de la imagen de entrada en cada Capa-Convolucional.
  • El Discriminador es un conjunto de Capas-Convolución con convoluciones estriadas, por lo que reduce la muestra de la imagen de entrada en cada Capa-Convolución.

Network-Generativa-Antagónica-SúperResolución (SRGAN):

  • El tipo GAN-Súper-Resolución (SRGAN) es una implementación que utiliza una Red-Neuronal-Profunda junto con una Red-Antagónica para ayudar a producir imágenes de alta calidad. Es útil para escalar eficientemente imágenes originales de baja resolución para mejorar sus detalles y minimizar los errores, y generar una imagen de alta resolución cuando se les da una imagen de baja resolución.

Network-Generativa-Antagónica-Pirámide-Laplaciana (LAPGAN)

  • El tipo GAN-Pirámide-Laplaciana (LAPGAN) produce una imagen de gran calidad. LAPGAN utiliza varias Redes Discriminadoras y Generadoras y múltiples niveles de la Pirámide-Laplaciana. Estas imágenes se muestrean primero en cada capa de la pirámide y luego se aumentan de escala en cada capa, donde reciben algo de ruido hasta que adquieren el tamaño original.

 

Implementación Network-Generativa-Antagónica (GAN)

-. Implementación con Keras de una Red-GAN que genere imágenes, necesitamos crear dos Redes-Neuronales diferentes

  • Red Generadora: se trata de una red neuronal que genera imágenes. En un principio, esta red generará ruido, así que la tendremos que ir entrenando poco a poco para que aprenda a generar imágenes.
  • Red Discriminadora: esta es una red que clasifica si una imagen es real o no. De esta manera, nos servirá como entrenadora de nuestra red neuronal generadora.
  • Creamos-Red-Generadora: Partimos de datos aleatorios (ruido) ir realizando convoluciones hasta generar una imagen. Estas imágenes serán ruido y el discriminador dará un error elevado. Poco a poco, la red generativa irá mejorando, reduciendo su error a medida que genera imágenes más realistas.

Out: de la Red-Generadora

Creamos-Red-Discriminadora: es una Red-Convolucional normal, que como valor de entrada toma una imagen y devuelve un único valor.

Out: de la Red-Discriminadora

Nota: Con esto tendríamos las dos Redes creadas Red-Generadora y Red-Discriminadora lo siguiente seria crear nuestra GAN, tenemos las dos redes, pero son dos piezas sin conexión. Esta función nos permitirá conectar ambas partes.

Nota: con la creación de la GAN terminamos con el ejemplo pero no se incluye, cargar los datos, no se entrena, etc., este ejemplo citare su referencia al final, en la cual podrá encontrar un articulo mucho mas extenso.

 

Recapitulando:

Tenemos una Red-Neuronal, la cual llamamos Generador, genera nuevas instancias de datos, mientras que la otra, el Discriminador , los evalúa para verificar su autenticidad; es decir, el Discriminador decide si cada instancia de datos que revisa pertenece o no al conjunto de datos de entrenamiento real. Analizamos los tipos de GAN y un ejemplo interesante de como se genera las Network-Generativa-Antagónica (GAN).