wasserstein-gan/notebook.ipynb

1 line
449 KiB
Plaintext
Raw Normal View History

2024-01-30 17:06:35 +00:00
{"cells":[{"cell_type":"markdown","metadata":{"id":"arqpDh95Zt6W"},"source":["# Wasserstein GAN\n","\n","L'objectif de ce projet était d'étudier les GANs dans le cas de la distance de Wasserstein.\n","\n","Voici les membres de notre groupe classés par ordres alphabétiques pour leur nom de famille :\n","- Paul Corbalan\n","- Nicolas Gonel\n","- Oihan Joyot\n","- Tristan Portugues\n","- Florian Zorzynski\n","\n","Notre projet s'inspire grandement des ressources suivantes qui sont l'article initial de notre projet ainsi que le code correspondant.\n","- Article : [[1701.07875] Wasserstein GAN (arxiv.org)](https://arxiv.org/abs/1701.07875)\n","- Code : [martinarjovsky/WassersteinGAN (github.com)](https://github.com/martinarjovsky/WassersteinGAN)\n","\n","Un répertoire pour ce projet en général est disponible à l'adresse suivante :\n","https://github.com/paul-corbalan/wasserstein-gan\n","\n","---"]},{"cell_type":"markdown","metadata":{"id":"Hke_hyXT3bSP"},"source":["## Introduction\n","\n","Les Réseaux Antagonistes Génératifs (GANs) représentent une avancée majeure dans le domaine de l'apprentissage profond, révolutionnant la manière dont les machines comprennent et génèrent des données, en particulier des images. Cette technologie imite la façon dont les humains apprennent et créent, ouvrant des portes vers des applications innovantes allant de l'art numérique à des solutions médicales avancées. Le projet \"Wasserstein GAN\" s'inscrit dans cette perspective, visant à explorer une variante spécifique des GANs qui utilise la distance de Wasserstein pour améliorer la stabilité et la qualité des résultats.\n","\n","Le choix de la distance de Wasserstein comme métrique clé dans notre projet offre un avantage distinct sur les méthodes traditionnelles. Elle permet de surmonter certains des défis inhérents aux GANs classiques, comme le mode collapse et les problèmes de convergence. En se concentrant sur cette approche, notre projet cherche à démontrer comment une compréhension approfondie de la théorie mathématique peut être appliquée efficacement pour améliorer la performance et la fiabilité des modèles génératifs.\n","\n","Ce notebook est conçu pour servir d'outil d'apprentissage et d'exploration dans le domaine des GANs, avec un accent particulier sur les Wasserstein GANs. Il guide le lecteur à travers les principes fondamentaux, les défis et les solutions uniques associés à cette technologie, offrant un mélange d'explications théoriques et d'applications pratiques. L'objectif est de fournir une base solide pour comprendre et utiliser les Wasserstein GANs."]},{"cell_type":"markdown","metadata":{"id":"P_O5MYE_xMU5"},"source":["## Generative Adversarial Network (GAN)\n","\n","Les GANs sont des modèles d'apprentissage profond définis par deux réseaux neuronaux, le générateur $G$ et le discriminateur $D$.\n","\n"," Le générateur crée des données, tandis que le discriminateur les évalue. L'objectif du générateur est d'approcher un distribution $\\mathbb{P}_g$ inconnue telle que les données générées $G(z)$ soient indiscernables des données réelles $x$, où $z$ un vecteur de notre espace latent. Le discriminateur est entraîné à faire la distinction entre un inputs et $x$.\n","\n"," Les deux modèles sont mis en compétition et $G$ cherche à minimiser la probabilité que $D$ fasse la distinction entre $G(z)$ et $x$, tandis que $D$ cherche à maximiser cette probabilité.\n","\n","Formellement, cela correspond à résoudre le problème min-max pour :\n","$$V(D, G) = \\mathbb{E}_{x \\sim \\mathbb{P}_{r}}[\\log D(x)] + \\mathbb{E}_{z \\sim \\mathbb{P}_z}[\\log(1 - D(G(z)))]$$\n","où le problème est le suivant :\n","$$\n","\\min _G \\max _D V(D, G)\n","$$\n","\n"," Cette minimisation utilise la log-vraissemblance négative et est la solution d'origine pour arriver à un équilibre entre le générateur et le discriminateur. Cependant cette méthode peut présenter plusieurs problèmes:\n"," - des \"modes collapse\" où l'entraînement converge vers une solution o