El esquema de falsificación, restauración y control de frutas en una verdulería. Extracto del libro.

imagen

Hola habrozhiteli! Hasta ahora, tal situación fuera de la ventana, decidimos compartir un extracto interesante de nuestro libro Generative Deep Learning. El potencial creativo de las redes neuronales ”por David Foster.

Manzanas y naranjas


Granny Smith y Florida son copropietarios de una verdulería. Para lograr la máxima eficiencia, cada uno cuida sus estantes en la tienda. Por ejemplo, Granny Smith está orgullosa de su elección de manzanas, y Florida pone naranjas durante horas, logrando su ubicación perfecta. Ambos tienen tanta confianza en sí mismos que acordaron un acuerdo: las ganancias de la venta de manzanas irán a Granny Smith, las ganancias de la venta de naranjas irán a Florida.

Desafortunadamente, ni Granny Smith ni Florida tienen la intención de competir honestamente. Cuando Florida no ve, ¡Granny Smith se dirige a la ventana con naranjas y comienza a pintarlas de rojo para que parezcan manzanas! Florida hace exactamente lo mismo: trata de hacer que las manzanas de Granny Smith se parezcan más a las naranjas, usando un spray de un color adecuado cuando le da la espalda. Debido a esto, los clientes a menudo eligen las frutas equivocadas que pretendían comprar. Los que estaban a punto de comprar naranjas a veces eligen erróneamente manzanas de color Florida, y los que querían comprar manzanas eligen erróneamente naranjas enmascaradas por Granny Smith. Al final, las ganancias de cada fruta se suman y se dividen de acuerdo con los acuerdos: Granny Smith pierde dinero cada vez que una de sus manzanas se vende como una naranja,y Florida, cuando una de sus naranjas se vende como una manzana.

Después de que la tienda cierra, ambos comienzan a restablecer el orden en los estantes de frutas. Pero en lugar de tratar de lavar la pintura causada por el rival, ambos simplemente pintan las falsificaciones, tratando de devolverlas a su forma original. Es importante para ellos hacer este trabajo correctamente: si las frutas no se ven como deberían, entonces no podrán venderlas al día siguiente y nuevamente perderán ganancias. Para asegurarse de que sus acciones sean correctas, a veces prueban sus métodos con sus propios frutos. Florida rocía sus naranjas y comprueba si se ven exactamente iguales a las originales. Granny Smith prueba sus "habilidades" en manzanas. Si encuentran discrepancias obvias, tendrán que gastar ganancias obtenidas con esfuerzo en el estudio de métodos más avanzados (Fig. 5.2).

Al principio, los compradores a menudo toman la decisión equivocada. Sin embargo, con el tiempo, ganan experiencia y aprenden a determinar qué frutas fueron falsificadas. Esto obliga a Granny Smith y Florida a perfeccionarse para falsificar las frutas de los demás, así como para restaurar las falsificaciones a su apariencia original. Además, deben asegurarse periódicamente de que los trucos que utilizan no alteren la apariencia de sus propias frutas.

Después de muchos días y semanas de este ridículo juego, notaron que algo increíble había sucedido. Los clientes ya no distinguen entre frutas reales y falsas. En la Fig. 5.3 muestra cómo se ven los frutos después de la falsificación y restauración, así como después de las pruebas.

imagen

imagen

CycleGAN


La historia anterior es una alegoría que describe el desarrollo de una de las áreas clave en el modelado generativo, conocida como transferencia de estilo: una red generativa-competitiva coordinada cíclicamente, o CycleGAN. Un artículo que describe esta red es un importante paso adelante en el campo de la transferencia de estilos y muestra cómo entrenar un modelo que puede copiar un estilo de un conjunto de imágenes de referencia a otra imagen sin utilizar un conjunto de ejemplos pareados.

Los modelos de transferencia de estilo preexistentes, como pix2pix, requerían que cada imagen en el conjunto de entrenamiento existiera tanto en la forma de origen como en la de destino. Para algunas tareas de transferencia de estilo (por ejemplo, para convertir fotografías en blanco y negro en fotografías en color, mapas en imágenes satelitales), puede crear dicho conjunto de datos, pero para otros simplemente no es posible. Por ejemplo, no tenemos fotografías originales del estanque desde el que Monet escribió su serie "Nenúfares", y pinturas de Picasso con la imagen del Empire State Building. Por analogía, se necesitarían enormes esfuerzos para obtener fotografías de caballos y cebras de pie en poses idénticas. Un artículo que describe CycleGAN salió unos meses después de un artículo que describe el método pix2pix, y muestra cómo entrenar un modelo para resolver los mismos problemas,pero en ausencia de pares de imágenes de origen y destino. En la Fig. La figura 5.4 muestra la diferencia entre los conjuntos de datos pix2pix y CycleGAN emparejados y no emparejados, respectivamente. Si el método pix2pix le permite simular cambios en una sola dirección (desde el estilo de origen hasta el objetivo), entonces CycleGAN entrena el modelo en ambas direcciones al mismo tiempo, de modo que el modelo aprende a convertir las imágenes de origen en el objetivo y viceversa. Esta propiedad se debe a la arquitectura del modelo, por lo que puede convertir automáticamente en la dirección opuesta.gracias a lo cual el modelo aprende a convertir imágenes de origen a destino y viceversa. Esta propiedad se debe a la arquitectura del modelo, por lo que puede convertir automáticamente en la dirección opuesta.gracias a lo cual el modelo aprende a convertir imágenes de origen a destino y viceversa. Esta propiedad se debe a la arquitectura del modelo, por lo que puede convertir automáticamente en la dirección opuesta.

imagen

Veamos cómo construir un modelo CycleGAN usando Keras. Para empezar, tomemos el ejemplo anterior con manzanas y naranjas como base, repasemos todas las partes de CycleGAN y experimentemos con su arquitectura. Luego aplicamos el mismo enfoque para crear un modelo que pueda aplicar el estilo de un artista en particular a la fotografía que elija.

Tu primera red CycleGAN


La mayor parte del siguiente código fue tomado del repositorio Keras-GAN (http://bit.ly/2Za68J2), mantenido por Erik Linder-Norén. Este maravilloso recurso contiene muchos ejemplos de redes generativas competitivas de varios libros implementados con Keras.

Primero debe descargar los datos que se utilizarán para la capacitación. En la carpeta donde clonó el repositorio con ejemplos para el libro, ejecute el comando:

bash ./scripts/download_cyclegan_data.sh apple2orange

En el conjunto descargado de imágenes de manzanas y naranjas, que usaremos más adelante, los datos se dividen en cuatro carpetas: trainA y testA contienen imágenes de manzanas, y trainB y testB contienen imágenes de naranjas. Es decir, A representa el espacio de imágenes de manzanas, y B representa el espacio de imágenes de naranjas. Nuestro objetivo es entrenar el modelo en los conjuntos de datos en las carpetas del tren para convertir imágenes del conjunto A al conjunto B, y viceversa. Imágenes en las carpetas de prueba que utilizamos para probar la calidad del modelo.

»Se puede encontrar más información sobre el libro en el sitio web del editor
» Contenido
» Extracto

All Articles