Le système de contrefaçon, de restauration et de contrôle des fruits dans une épicerie verte. Extrait du livre

image

Bonjour, habrozhiteli! Alors que cette situation était à l'extérieur, nous avons décidé de partager un extrait intéressant de notre livre Generative Deep Learning. Le potentiel créatif des réseaux de neurones »par David Foster.

Pommes et oranges


Granny Smith et Florida sont copropriétaires d'un marchand de légumes. Pour atteindre une efficacité maximale, chacun prend soin de ses étagères en magasin. Par exemple, Granny Smith est fière de son choix de pommes et la Floride dépose des oranges pendant des heures, atteignant ainsi leur emplacement idéal. Les deux sont tellement convaincus qu'ils ont convenu d'un accord: les bénéfices de la vente de pommes iront à Granny Smith, les bénéfices de la vente d'oranges iront à la Floride.

Malheureusement, ni Granny Smith ni la Floride n'ont l'intention de concourir honnêtement. Quand la Floride ne voit pas, Granny Smith se dirige vers la fenêtre avec des oranges et commence à les peindre en rouge pour qu'elles ressemblent à des pommes! La Floride fait exactement la même chose: elle essaie de faire ressembler les pommes de Granny Smith à des oranges, en utilisant un spray d'une couleur appropriée lorsqu'elle lui tourne le dos. Pour cette raison, les clients choisissent souvent les mauvais fruits qu'ils avaient l'intention d'acheter. Ceux qui étaient sur le point d'acheter des oranges choisissaient parfois par erreur des pommes colorées de Floride, et ceux qui voulaient acheter des pommes choisissaient par erreur des oranges masquées par Granny Smith. En fin de compte, le bénéfice pour chaque fruit est additionné et divisé selon les accords - Granny Smith perd de l'argent chaque fois qu'une de ses pommes est vendue comme orange,et en Floride, quand une de ses oranges est vendue sous forme de pomme.

Après la fermeture du magasin, les deux commencent à rétablir l'ordre sur les rayons des fruits. Mais au lieu d'essayer de laver la peinture causée par le rival, les deux peignent simplement les faux, essayant de les ramener à leur forme d'origine. Il est important pour eux de faire ce travail correctement: si les fruits ne semblent pas comme ils le devraient, ils ne pourront pas les vendre le lendemain et perdront à nouveau leurs bénéfices. Pour s'assurer que leurs actions sont correctes, ils testent parfois leurs méthodes sur leurs propres fruits. La Floride saupoudre ses oranges et vérifie si elles ont exactement la même apparence que l'original. Granny Smith teste ses «compétences» sur des pommes. S'ils constatent des divergences évidentes, ils devront dépenser un profit durement gagné sur l'étude de méthodes plus avancées (Fig. 5.2).

Au début, les acheteurs font souvent le mauvais choix. Cependant, au fil du temps, ils acquièrent de l'expérience et apprennent à déterminer quels fruits ont été truqués. Cela oblige Granny Smith et la Floride à se perfectionner pour truquer les fruits de l'autre, ainsi que pour restaurer les faux à leur apparence d'origine. De plus, ils doivent périodiquement s'assurer que les astuces qu'ils utilisent ne modifient pas l'apparence de leurs propres fruits.

Après plusieurs jours et semaines de ce jeu ridicule, ils ont remarqué que quelque chose d'incroyable s'était produit. Les clients ne font plus de distinction entre les vrais et les faux fruits. En figue. 5.3 montre à quoi ressemblent les fruits après falsification et restauration, ainsi qu'après test.

image

image

CycleGAN


L'histoire précédente est une allégorie décrivant le développement d'un des domaines clés de la modélisation générative, connu sous le nom de transfert de style: un réseau génératif-concurrentiel cycliquement cohérent, ou CycleGAN. Un article décrivant ce réseau est une avancée significative dans le domaine du transfert de style et montre comment former un modèle qui peut copier un style d'un ensemble d'images de référence vers une autre image sans utiliser un ensemble d'apprentissage d'exemples appariés.

Les modèles de transfert de style préexistants, tels que pix2pix, exigeaient que chaque image de l'ensemble d'apprentissage existe à la fois sous forme source et cible. Pour certaines tâches de transfert de style (par exemple, pour convertir des photographies en noir et blanc en photographies couleur, des cartes en images satellites), vous pouvez créer un tel ensemble de données, mais pour d'autres, ce n'est tout simplement pas possible. Par exemple, nous n'avons pas de photographies originales de l'étang à partir duquel Monet a écrit sa série "Nénuphars", et des peintures de Picasso avec l'image de l'Empire State Building. Par analogie, il faudrait des efforts considérables pour obtenir des photographies de chevaux et de zèbres se tenant dans des poses identiques. Un article décrivant CycleGAN est sorti quelques mois seulement après un article décrivant la méthode pix2pix, et montre comment former un modèle pour résoudre les mêmes problèmes,mais en l'absence de paires d'images source et cible. En figue. La figure 5.4 montre la différence entre les ensembles de données pix2pix et CycleGAN appariés et non appariés, respectivement. Si la méthode pix2pix vous permet de simuler des changements dans une seule direction (du style source vers la cible), CycleGAN entraîne le modèle dans les deux directions en même temps, afin que le modèle apprenne à convertir les images source en cible et vice versa. Cette propriété est due à l'architecture du modèle, vous avez donc la possibilité de convertir automatiquement dans la direction opposée.grâce à quoi le modèle apprend à convertir les images sources en cible et vice versa. Cette propriété est due à l'architecture du modèle, vous avez donc la possibilité de convertir automatiquement dans la direction opposée.grâce à quoi le modèle apprend à convertir les images sources en cible et vice versa. Cette propriété est due à l'architecture du modèle, vous avez donc la possibilité de convertir automatiquement dans la direction opposée.

image

Voyons comment construire un modèle CycleGAN à l'aide de Keras. Pour commencer, prenons l'exemple précédent avec des pommes et des oranges comme base, parcourons toutes les parties de CycleGAN et expérimentons son architecture. Ensuite, nous appliquons la même approche pour créer un modèle qui peut appliquer le style d'un artiste particulier à la photo de votre choix.

Votre premier réseau CycleGAN


La plupart du code suivant a été emprunté au référentiel Keras-GAN (http://bit.ly/2Za68J2), géré par Erik Linder-Norén. Cette merveilleuse ressource contient de nombreux exemples de réseaux génératifs-compétitifs de divers livres mis en œuvre avec Keras.

Vous devez d'abord télécharger les données qui seront utilisées pour la formation. Dans le dossier où vous avez cloné le référentiel avec des exemples pour le livre, exécutez la commande:

bash ./scripts/download_cyclegan_data.sh apple2orange

Dans l'ensemble d'images téléchargées de pommes et d'oranges, que nous utiliserons plus tard, les données sont divisées en quatre dossiers: trainA et testA contiennent des images de pommes, et trainB et testB contiennent des images d'oranges. Autrement dit, A représente l'espace d'images d'images de pommes et B représente l'espace d'images d'oranges. Notre objectif est de former le modèle sur les ensembles de données dans les dossiers de train pour convertir les images de l'ensemble A à l'ensemble B, et vice versa. Images dans les dossiers de test que nous utilisons pour tester la qualité du modèle.

»Vous trouverez plus d'informations sur le livre sur le site Web de l'éditeur
» Sommaire
» Extrait

All Articles