GAN Study Guide: Demo généré à partir de l'entrée aux principes de production

Auteur: HE la source de Master of Science informatique appliquée à l'Université Fudan, lire, direction de la recherche de l'intelligence artificielle et l'apprentissage de la machine.

Réseau formule de confrontation (de GAN) est le modèle récent d'apprentissage profond chaud. Il suffit de lire récemment des documents disponibles dans ce domaine, j'ai couru un code d'GAN, puis écrit cet article pour introduire GAN.

Ce document est divisé en trois parties:

  • Le GAN d'origine introduire le principe de

  • Le même principe est très important DCGAN

  • Tensorflow DCGAN comment exécuter le code généré animation avatar comme indiqué dans le titre figure, ensemble de données fournies.

GAN Présentation générale Principe

En parlant de la première à regarder le cours GAN papier Ian Goodfellow Daniel génératives accusatoires Networks (arXiv: https: //arxiv.org/abs/1406.2661), ce document considéré comme un pionnier dans ce domaine.

Le principe de base du GAN est en fait très simple, ici pour générer une image comme un exemple. Supposons que nous ayons deux réseaux, G (Générateur) et D (discriminante). Comme son nom l'indique, leurs fonctions sont les suivantes:

  • G est une image générée au réseau, la réception d'un bruit aléatoire Z, le bruit généré par l'image, notée G (z).

  • D est un réseau de discrimination, de déterminer une image est pas « réel ». Ses paramètres d'entrée sont x, x représentant une image, la sortie D (x) représente la probabilité que x est l'image réelle, si elle vaut 1, il représente 100% de l'image réelle, et la sortie est 0, il ne peut pas être de vrais représentants images.

Au cours de la formation, le réseau a généré objectif de G est d'essayer de créer des images réalistes au réseau de la discrimination D. tromper Le but est d'essayer de D G images générées et des images réelles sont ouvertes. Ainsi, G et D constituent un « processus de jeu. » Dynamique de

Quel est le résultat du dernier match? A l'état idéal, G peut générer une image « réelle ones » suffisante G (z). D, il est difficile de déterminer si l'image générée G est pas le cas, et par conséquent D (G (z)) = 0,5.

Pour que notre objectif est atteint: nous avons obtenu un modèle génératif G, il peut être utilisé pour générer des images.

D'une manière générale un peu plus que le principe de base du GAN, comment utiliser le langage mathématique pour décrire? Extrait thèse directe formule ici:

Une simple analyse de cette formule:

  • Composé de formule deux ensemble. x représente une image réelle, z représente le bruit d'entrée du réseau G, et G (z) représente un réseau G image générée.

  • D (x) représente le réseau D pour déterminer la vraie image est réelle probabilité (parce que x est vrai, donc D, cette valeur plus proche de 1, plus). Et D (G (Z)) est déterminé si l'image générée G réelle probabilité réseau D.

  • Objectif G: mentionné ci-dessus, D (G (z)) est le réseau D G pour déterminer si l'image résultante réelle probabilité, G généré devrait vouloir que leur image « près possible du réel. » Autrement dit, G désiré D (G (z)) aussi grande que possible, alors V (D, G) devient plus petite. Nous voyons donc que l'équation est le premier symbole min_G.

  • L'objet de D: la capacité plus forte à D, D (x) devrait être plus grande, D (G (x)) devrait être plus petite. Dans ce cas, V (D, G) devient grande. Donc, la formule est de faire le plus pour D (max_D)

En dessous de cette image très bien décrit ce processus:

Alors, comment la formation descente D et G avec un gradient stochastique? Le document donne également l'algorithme:

Une partie du cercle boîte rouge ici est que nous voulons que l'attention supplémentaire. La première étape que nous formons D, D est l'espoir V (G, D) plus le meilleur, de sorte que le gradient est plus (croissant). La formation de la deuxième étape G, V (G, D) le plus faible possible, il est soustrait gradient (descente). Le processus de formation en alternance.

DCGAN Présentation générale Principe

Nous savons que la profondeur de l'apprentissage le meilleur modèle pour les applications de traitement d'images est CNN, CNN et comment la combinaison GAN? DCGAN ce domaine est l'une des meilleures tentatives (papier Adresse: Représentation Unsupervised apprentissage avec Deep convolutifs génératives accusatoires Networks)

principes DCGAN et GAN est le même, pas ici dans la répétition. Il vient au-dessus du G et D ont été remplacées par deux réseaux de neurones convolutionnel (CNN). Mais pas directement pour elle, DCGAN convolution structurale réseau de neurones a fait quelques changements pour améliorer la qualité et la vitesse de convergence de l'échantillon, ces changements sont les suivants:

  • Annuler toute couche de mise en commun. réseau G à l'aide de convolution Transpose (transposée couche convolutionnel) suréchantillonnée par le réseau D a été ajouté à la place de la mise en commun de pas de convolution.

  • Ils sont utilisés dans la normalisation des lots D et G

  • couche FC est supprimée, de sorte que le réseau devient réseau complet de convolution

  • réseau G RELU utilisé comme fonction d'activation, la dernière couche à l'aide du tanh

  • D réseau utilisé en tant que la fonction d'activation LeakyReLU

DCGAN un schéma d'un réseau G:

DCGAN à tensorflow

Eh bien, il dit un principe de passe, a déclaré le spot contenu partie intéressante de la pratique suivante.

DCGAN l'auteur original de l'image générée chambre LSUN avec DCGAN, ce n'est pas particulièrement intéressant. Avant l'Internet a vu un article "Chainer Yan I ra su Suites généré automatiquement - Qiita", est généré des portraits de dessins animés avec DCGAN, l'effet est le suivant:

Ceci est un contenu pratique très intéressant. Malheureusement, l'original est Chainer les gens utilisent ce cadre est pas grand-chose. Ici, nous sommes en tensorflow reproduire ce résultat.

Collect jeu de données d'origine

Tout d'abord, nous avons besoin de beaucoup d'image Anime grouille de reptiles, l'original est sur ce site: en rampant. J'ai essayé, j'ai trouvé dans mon environnement de réseau ne peut pas accéder à ce site, j'ai donc écrit un reptile simple, monter un célèbre site de la galerie de dessin animé: konachan.net - Konachan.com Fonds d'écran animés.

Code reptile est le suivant:

les demandes d'importation

Le reptile probablement courir pour une journée, redescendit 120,000 images, quelque chose comme ceci:

Cela peut être vu à l'intérieur de l'image la plupart des plus en désordre, ne peut pas être directement utilisé comme données de formation, nous devons utiliser les bons outils, interception de formation avatar de caractère.

interception Avatar

Comme l'image d'origine et l'interception, directement sur l'outil de base OpenCV github: nagadomi / lbpcascade_animeface.

emballage simple sous le code:

Interception des données de caractère Avatar:

Cela peut être utilisé pour former jusqu'à!

Si vous ne voulez pas commencer à partir de zéro pour monter des images peut être utilisé directement, je reçois de bonnes données d'image (275m, environ plus de 50000 images), l'adresse disque réseau Baidu: https: //pan.baidu.com/s/1eSifHcA, le code d'extraction: g5qa.

formation

DCGAN à tensorflow ont déjà de bonnes roues artificielles: carpedm20 / DCGAN-tensorflow, nous utilisons directement les codes dessus.

Mais le code d'origine pour fournir un nombre limité de bases de données, comment former leurs propres données? En model.py on trouve quelques lignes de code pour lire les données:

 si config.dataset == 'mnist': données_X, données_y = self.load_mnist

Une telle logique de données de lecture est très claire, nous sommes dans le dossier fichier de données puis l'anime créer un nouveau dossier, l'image directement dans ce dossier, vous pouvez spécifier -dataset l'anime de l'exécution.

Exécuter la commande (Définition: Indique la taille de l'image résultante est 48x48, la taille de notre image est 96x96, a couru 300 époque):

python main.py --image_size 96 --output_size 48 --dataset l'anime --is_crop vrai --is_train vrai --epoch 300

résultat

La première époque à la fin (seulement un peu aperçu):

5 après les résultats d'époque:

10ème époque:

200 époque, regarder de plus près des photos sont vraiment assez réels:

Ma carte sujet est générée à partir de l'époque 300e.

Résumé et suivi

Une brève introduction sur le principe de la GAN et DCGAN. Tensorflow faire et comment utiliser une simple démonstration de génération d'image.

  • Ian Goodfellow gamme pour un résumé GAN du ppt de travail, vraiment merveilleux, recommandé « exclusif | père GAN de pincements discours 2016 Regarder la scène: une gamme complète d'interprétation du réseau du principe de la confrontation et la génération future (ci-joint PPT)

  • document de synthèse GAN, inclure le code: https: //github.com/zhangqianhui/AdversarialNetsPapers.

HAY l'introduction d'un nouvel éclairage, en jouant les lampes bras d'équilibrage et de sources lumineuses | cette grande conception
Précédent
blague jour du poisson d'avril peut officiellement, mais la plupart des spécialistes du marketing manque le point de surprises
Prochain
film adulte étoile: le nombre de Guenduozi ce plus que je dois coucher année
Baojun 530 peine d'acheter? Après avoir parcouru 3000 kilomètres, les propriétaires disent vrai confession!
Alibaba service de base de données distribuée DIRD de processus de R & D
La Norvège a été appelé plus haut la construction à ossature de bois de construction du monde, de grande hauteur sera de plus en plus semblable à elle?
Ne jetez pas Quelle est la différence avec le poisson salé, aux voitures de mention, comme Ang Ultime 380
La planification de fin d'année Marathon | veut éviter « pas sur le mien » Il est sans aucun doute des jeux d'une valeur de dix vous participez au marathon
Irak 3-0 équipe avant de se qualifier au Yémen, après 00 adolescent cassé
Les nouveaux T90 Kai Chen Spy Shots remplacer la boîte manuelle à six vitesses sur le marché cet été
React natif Décrypter les fils du point de vue iOS
Rappel! Kaiping route Jiujiang Road jonction, Pingxiang Pingxiang, chemin de la circulation glisser les changements de jonction de la route, que vous prenez avec optimisme amis ~
Vérité! Wenzhou dos garçon, mais a perdu à « manque de joie » parce qu'il était la mère
fille de 4 ans a été écrasé à traverser la route et ne pas attendre la main des anciens est la dernière fois!