[PYTHON] [GAN] J'ai vu les ténèbres essayer de faire évoluer davantage l'évolution finale de Pokemon

Modèle de génération Pokémon

Faisons évoluer davantage le système d'évolution final de Pokemon en utilisant le modèle de génération Pokemon utilisant StyleGAN2 résumé dans Article précédent. Je pense à la mauvaise chose. Celles que j'ai implémentées récemment fonctionnent souvent, et j'ai eu l'idée quand je pensais devenir un dieu.

Cette fois, je voudrais vous présenter l'histoire qui a défié l'évolution de Pokemon comme exemple d'application tout en expliquant la technologie à utiliser de manière un peu plus détaillée.

La méthode spécifique est la suivante. Cette fois, j'ai émis l'hypothèse que les Pokémon qui ont évolué en ligne droite sont alignés. Pikachu → Raichu →? J'expliquerai en supposant la mise à jour de l'évolution finale.

--Charger le modèle StyleGAN2 formé --Estimer les variables latentes qui génèrent Pikachu et Raichu --Calculer un vecteur dans la direction dimensionnelle qui passe par les deux points de Pikachu et Raichu --Si vous le déplacez dans cette direction vectorielle, un Pokémon dérivé de Pikachu apparaîtra (devrait)

evolution.png

Introduction de recherches connexes

Image2StylyGAN Les modèles de génération bien appris et expressifs tels que PGGAN et StyleGAN sont connus pour produire de nouveaux visages qui n'existent pas dans l'ensemble de données. Le concept de Image2StyleGAN est d'utiliser cette propriété pour estimer des variables latentes qui produisent des images arbitraires dans un large espace de variables latentes.

ss01.png

Il existe deux méthodes possibles pour estimer la variable latente correspondant à une image donnée.

--Trainer l'encodeur correspondant au modèle de génération (décodeur) --Recherchez sur l'espace variable latent pour minimiser la similitude entre l'image générée et l'image souhaitée en tant que fonction de perte.

Le premier semble être connu pour son échec empirique, et Image2StyleGAN utilise la dernière méthode d'optimisation.

Perceptual Loss est utilisé comme fonction de perte, et la similitude entre les images est calculée comme une perte en comparant les caractéristiques obtenues en entrant des images dans le modèle VGG16 entraîné par ImageNet. En optimisant la perte sensorielle avec Adam, il est possible de trouver l'image générée qui correspond aux caractéristiques perceptives vues par VGG16. Zhang, 2018 semble être célèbre en tant que modèle perceptif, et je vais l'utiliser à nouveau cette fois.

Si vous souhaitez simplement calculer la similitude entre les images, vous pouvez réapprendre quelque chose FaceNet qui est en cours d'entraînement à cet effet et créer votre propre modèle. Je ne sais pas.

En tant qu'expérience de reproduction, j'ai remplacé le modèle par un modèle entraîné de StyleGAN2 (config-f) et reconstruit le premier ministre Abe.

shinzo.pngcompare.png

InterFaceGAN Cette étude porte également sur le comportement des images dans l'espace variable latent dans un modèle de génération bien formé. Cette étude suggère qu'il existe un superplan séparé dans l'espace variable latent pour un certain attribut. Si l'hyperplan séparé peut être estimé, ses attributs peuvent être modifiés en déplaçant la variable latente dans la direction de son vecteur normal.

ss02.png

La méthode d'estimation du superplan de séparation est simple et assez floue. Suivez les étapes suivantes. A titre d'exemple, pensez à estimer le superplan des verres.

--Apprendre un modèle qui estime la présence ou l'absence de lunettes avec un score de 0-1

À propos, lorsque je l'ai remplacé par le modèle StyleGAN2 et que j'ai changé les attributs dans l'expérience de reproduction, cela ressemblait à ceci.

sexe gender.png

âge age.png

Cela fait longtemps, mais grâce à cette recherche, nous pouvons voir que le superplan de séparation de l'attribut se forme dans l'apprentissage dans l'espace variable latent. En d'autres termes, il semble que l'évolution de Pokemon s'exprime également dans une certaine direction dimensionnelle. Cependant, contrairement aux attributs du visage humain, il y a trop de types de Pokémon, donc je pense que cela n'est vrai que pour la lignée évolutive d'une race.

Essayer

Le modèle utilisé cette fois a appris StyleGAN2 (config-f) avec le jeu de données de MosnterGAN. C'est un modèle. La taille de l'image est de 64 x 64, et environ 15 000 images sont en cours d'apprentissage pour 1120 km.

L'image générée ressemble à ceci fakes001200.png

Pour être honnête, la qualité n'est pas bonne, mais je l'utilise car je pense qu'il est possible de gérer les images contenues dans l'ensemble de données. (Puisqu'il stagne avec un score FID d'environ 50, je vais m'arrêter ici)

Incorporation d'image avec Image2StyleGAN

Tout d'abord, vérifiez s'il existe des variables latentes qui peuvent reproduire Pikachu et Raichu.

Pikachu pikachu_compare.png

Lumière Chu raichu_compare.png

C'est complètement Pachimon ... À ce stade, je suis désespéré pour la faible expressivité du modèle, mais je vais essayer jusqu'au bout.

Se déplacer dans la direction dimensionnelle qui passe entre les deux points avant et après l'évolution

J'ai essayé la complémentation linéaire de Pikachu dans le sens de l'évolution petit à petit.

pikachu_interp.png

Des résultats susceptibles d'évoluer autour du type mal / électrique ont été obtenus. Comme la forme s'effondre progressivement, je pense qu'elle dépasse la plage qui peut être exprimée dans l'espace variable latent. C'est un manque d'expressivité.

C'est frustrant, mais depuis que je suis arrivé jusqu'ici, j'ai essayé différentes choses.

diguda_interp.png

pikusi_interp.png

C'est presque comme un degré élevé de pollution mentale ...

Résumé

J'ai essayé de faire évoluer Pokemon en utilisant le modèle de génération StyleGAN2 Pokemon que j'ai appris par moi-même, mais cela s'est soldé par une sensation subtile.

Comme solution, nous devrions envisager d'améliorer le modèle d'apprentissage. En raison du manque d'expressivité, il est possible que la quantité de données requise pour capturer divers Pokémon n'ait pas été atteinte.Je pense donc à étendre les données et à augmenter le poids de l'ensemble de données à l'avenir.

Je mets des données de couleurs différentes, mais si différentes couleurs sont autorisées, je pense que c'est correct de mettre beaucoup d'images qui ont subi une conversion de tonalité de couleur de l'image entière. C'était un thème que j'aimerais réessayer en augmentant le nombre d'images à environ 50 000 en élargissant les données et en apprenant!

nuo-.png

Si vous avez des conseils, comme ceux qui le connaissent, nous nous ferons un plaisir de pleurer!

Recommended Posts

[GAN] J'ai vu les ténèbres essayer de faire évoluer davantage l'évolution finale de Pokemon
L'histoire d'essayer de reconnecter le client
J'ai essayé de corriger la forme trapézoïdale de l'image
Je souhaite personnaliser l'apparence de zabbix
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
Je ne trouve pas l'horloge tsc! ?? L'histoire d'essayer d'écrire un patch de noyau
Je veux grep le résultat de l'exécution de strace
Je veux bien comprendre les bases de Bokeh
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de classer les voix des acteurs de la voix
Je souhaite augmenter la sécurité de la connexion SSH
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trouver l'entropie de l'image avec python
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
J'ai fait une fonction pour vérifier le modèle de DCGAN
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Je veux déterminer l'authenticité d'un élément du tableau numpy
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux connaître la légende du monde des technologies informatiques
Ce que j'ai vu en analysant les données du marché des ingénieurs
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)