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)
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.
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.
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.
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
âge
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.
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
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)
Tout d'abord, vérifiez s'il existe des variables latentes qui peuvent reproduire Pikachu et Raichu.
Pikachu
Lumière Chu
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.
J'ai essayé la complémentation linéaire de Pikachu dans le sens de l'évolution petit à petit.
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.
C'est presque comme un degré élevé de pollution mentale ...
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!
Si vous avez des conseils, comme ceux qui le connaissent, nous nous ferons un plaisir de pleurer!
Recommended Posts