Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introducción
Generative Adversarial Networks adopta un enfoque teórico de juegos, a diferencia de una red
neuronal convencional. La red aprende a generar a partir de una distribución de
entrenamiento a través de un juego para 2 jugadores. Las dos entidades son Generador y
Discriminador. Estos dos adversarios están en constante batalla durante todo el proceso de
entrenamiento. Dado que se adopta un método de aprendizaje adversarial, no necesitamos
preocuparnos por aproximar las funciones de densidad intratable.
Las Redes Generativas Antagónicas (RGAs), también conocidas como GANs en inglés, 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 de suma cero. Fueron presentadas por Ian Goodfellow etal. en 2014.
Las redes neuronales (también conocidas como sistemas conexionistas) son un modelo
computacional basado en un gran conjunto de unidades neuronales simples (neuronas
artificiales), de forma aproximadamente análoga al comportamiento observado en los axones
de las neuronas en los cerebros biológicos. Cada unidad neuronal está conectada con muchas
otras y los enlaces entre ellas pueden incrementar o inhibir el estado de activación de las
neuronas adyacentes. Cada unidad neuronal, de forma individual, opera empleando funciones
de suma. Puede existir una función limitadora o umbral en cada conexión y en la propia
unidad, de tal modo que la señal debe sobrepasar un límite antes de propagarse a otra
neurona. Estos sistemas aprenden y se forman a sí mismos, en lugar de ser programados de
forma explícita, y sobresalen en áreas donde la detección de soluciones o características es
difícil de expresar con la programación convencional.
Esta técnica puede generar fotografías que parecen auténticas a observadores humanos. Por
ejemplo, una fotografía sintética de un gato que consiga engañar al discriminador (una de las
partes funcionales del algoritmo), es probable que lleve a una persona cualquiera a aceptarlo
como una fotografía real
Ejemplos
Dada una imagen segmentada de la carretera, la red puede completar los detalles con objetos
como automóviles, etc. La red puede convertir una imagen en blanco y negro en color. Dado
un mapa aéreo, la red puede encontrar las carreteras en la imagen. También puede completar
los detalles de una foto, dados los bordes.
Dada la imagen de un rostro, la red puede construir una imagen que represente cómo podría
verse esa persona cuando sea viejo.
Estos son solo algunos ejemplos de GAN, hay muchos más ejemplos disponibles. Ahora que he
despertado tu apetito, pase a lo que es un GAN y cómo funciona.
COMO FUNCIONA
Como puede identificar a partir de sus nombres, un generador se utiliza para generar
imágenes reales y el trabajo del discriminador es identificar cuál es falso. Las entidades /
adversarios están en constante batalla ya que uno (generador) intenta engañar al otro
(discriminador), mientras que el otro trata de no ser engañado. Para generar las mejores
imágenes, necesitará un generador y un discriminador muy buenos. Esto es porque si su
generador no es lo suficientemente bueno, nunca podrá engañar al discriminador y el modelo
nunca convergerá. Si el discriminador es malo, las imágenes que no tienen sentido también se
clasificarán como reales y, por lo tanto, su modelo nunca se entrena y, a su vez, nunca produce
la salida deseada. La entrada, el ruido aleatorio puede ser una distribución gaussiana y los
valores pueden ser muestreados desde esta distribución y alimentados a la red del generador y
se genera una imagen. El discriminador compara esta imagen generada con una imagen real e
intenta identificar si la imagen dada es falsa o real.
Con el tiempo, a la red generativa se le da tan bien producir imágenes que a su pareja
discriminadora le resulta imposible detectar la falsificación. En resumen: la red
generativa aprende a reconocer y posteriormente a crear imágenes de peatones de
aspecto realista.
Los resultados no siempre son perfectos: las GAN pueden crear bicicletas con dos tipos
de manillar, por ejemplo, o caras con cejas en el lugar incorrecto. Pero debido a que las
imágenes y los sonidos son, por lo general, asombrosamente realistas, algunos expertos
creen que hay una lógica detrás de cómo las GAN comienzan a comprender la
estructura subyacente del mundo que ven y oyen.
Esto significa que, además del sentido de la imaginación, la inteligencia artificial puede
adquirir una habilidad más independiente para dar sentido a lo que ve en el mundo.
Desventajas
Los GAN son más inestables para entrenar porque debe entrenar dos redes a partir de
una única retropropagación. Por lo tanto, elegir los objetivos correctos puede marcar
una gran diferencia.
No podemos realizar consultas de inferencia con GAN
Conclusión
Referencias
https://arxiv.org/abs/1406.2661
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture13.pdf
https://github.com/ZZUTK/Face-Aging-CAAE
https://github.com/phillipi/pix2pix
Introducción
Las redes neuronales han tenido un gran progreso. Ahora reconocen las imágenes y la
voz a niveles comparables a los humanos. También son capaces de entender el
lenguaje natural con una buena precisión.
Pero, incluso entonces, hablar de automatizar tareas humanas con máquinas parece
un poco exagerado. Después de todo, hacemos mucho más que simplemente
reconocer la imagen / voz o entender lo que dicen las personas que nos rodean, ¿no es
así?
Veamos algunos ejemplos en los que necesitamos creatividad humana (al menos a
partir de ahora):
Entrene a un autor artificial que pueda escribir un artículo y explicar conceptos de
ciencia de datos a una comunidad de una manera muy simple aprendiendo de
artículos anteriores en Analytics Vidhya
No puede comprar una pintura de un pintor famoso que podría ser demasiado
costosa. ¿Puedes crear un pintor artificial que pueda pintar como cualquier artista
famoso aprendiendo de sus colecciones anteriores?
¿Crees que estas tareas se pueden lograr con máquinas? Bueno, la respuesta puede
sorprenderte
Definitivamente, estas tareas son difíciles de automatizar, pero las Redes de
Adversidad Generativa (GAN) han comenzado a hacer posibles algunas de estas
tareas .
Si te sientes intimidado por el nombre GAN, ¡no te preocupes! Te sentirás cómodo con
ellos al final de este artículo.
En este artículo, les presentaré el concepto de GAN y explicaré cómo funcionan junto
con los desafíos. También le haré saber algunas cosas interesantes que las personas
han hecho al usar GAN y le daré enlaces a algunos de los recursos importantes para
profundizar en estas técnicas.
Problemas con las estructuras globales: al igual que el problema con la perspectiva, las
GAN no entienden una estructura holística. Por ejemplo, en la imagen inferior
izquierda, da una imagen generada de una vaca cuádruple, es decir, una vaca parada
sobre sus patas traseras y simultáneamente sobre las cuatro patas. ¡Eso
definitivamente no es posible en la vida real!
Fuente: http://papers.nips.cc/paper/5423-generative-adversarial
Nota: Esta es la primera implementación de GAN que se publicó en el
documento. Numerosas mejoras / actualizaciones en el pseudocódigo se pueden ver
en los documentos recientes, como la adición de la normalización de lotes en la red de
generador y discriminación, el generador de capacitación k veces, etc.
Ahora comencemos con el código!
Primero, importemos todos los módulos