Comprendre la fonction de perte GAN

17

J'ai du mal à comprendre la fonction de perte GAN comme indiqué dans Understanding Generative Adversarial Networks (un article de blog écrit par Daniel Seita).

Dans la perte d'entropie croisée standard, nous avons une sortie qui a été exécutée via une fonction sigmoïde et une classification binaire résultante.

États de la Sieta

Ainsi, pour [chaque] point de données X1 et son étiquette, nous obtenons la fonction de perte suivante ...

H((X1,y1),)=-y1Journal(X1)-(1-y1)Journal(1-(X1))

Ce n'est que le journal de l'attente, ce qui est logique, mais comment, dans la fonction de perte GAN, pouvons-nous traiter les données de la vraie distribution et les données du modèle génératif dans la même itération?

essayer d'apprendre
la source

Réponses:

6

Le centre de cette question

"Comment ... pouvons-nous traiter les données de la vraie distribution et les données du modèle génératif dans la même itération?

Analyse de la publication fondamentale

Dans la page référencée, Understanding Generative Adversarial Networks (2017) , le doctorant Daniel Sieta référence correctement Generative Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville et Bengio, juin 2014 . Ce sont des états abstraits, "Nous proposons un nouveau cadre pour estimer les modèles génératifs via un processus contradictoire, dans lequel nous formons simultanément deux modèles ..." Cet article original définit deux modèles définis comme MLP (perceptrons multicouches).

  • Modèle génératif, G
  • Modèle discriminant, D

Ces deux modèles sont contrôlés d'une manière où l'un fournit une forme de rétroaction négative à l'autre, donc le terme contradictoire.

  • G est formé pour capturer suffisamment bien la distribution des données d'un ensemble d'exemples pour tromper D.
  • D est formé pour découvrir si ses entrées sont des simulations de G ou l'ensemble d'exemples pour le système GAN.

(L'ensemble d'exemples pour le système GAN est parfois appelé les échantillons réels, mais ils peuvent ne pas être plus réels que ceux générés. Les deux sont des tableaux numériques dans un ordinateur, l'un avec une origine interne et l'autre avec une source externe Le fait que les caméras externes proviennent d'une caméra pointée sur une scène physique n'est pas pertinent pour le fonctionnement du GAN.)

Probablement, tromper D est synonyme de maximiser la probabilité que D génère autant de faux positifs et de faux négatifs qu'il corrige les catégorisations, 50% chacune. En science de l'information, cela revient à dire que la limite d'information D a de G s'approche de 0 comme t s'approche de l'infini. Il s'agit d'un processus de maximisation de l'entropie de G du point de vue de D, d'où le terme d'entropie croisée.

Comment la convergence est réalisée

Parce que la fonction de perte reproduite à partir de l'écriture de Sieta en 2017 dans la question est celle de D, conçue pour minimiser l'entropie croisée (ou corrélation) entre les deux distributions lorsqu'elle est appliquée à l'ensemble complet de points pour un état d'entraînement donné.

H((X1,y1),)=1(X1)

Il existe une fonction de perte distincte pour G, conçue pour maximiser l'entropie croisée. Notez qu'il existe DEUX niveaux de granularité de la formation dans le système.

  • Celui des mouvements de jeu dans un jeu à deux joueurs
  • Celui des échantillons de formation

Ceux-ci produisent une itération imbriquée avec l'itération externe comme suit.

  • La formation de G se déroule en utilisant la fonction de perte de G.
  • Les modèles d'entrée simulés sont générés à partir de G à son état actuel de formation.
  • La formation de D se déroule en utilisant la fonction de perte de D.
  • Répétez si l'entropie croisée n'est pas encore suffisamment maximisée, D peut toujours discriminer.

Lorsque D perd finalement la partie, nous avons atteint notre objectif.

  • G a récupéré la distribution des données de formation
  • D a été réduit à l'inefficacité ("1/2 probabilité partout")

Pourquoi une formation simultanée est nécessaire

Si les deux modèles n'étaient pas entraînés en va-et-vient pour simuler la concurrence, la convergence dans le plan contradictoire (l'itération externe) ne se produirait pas sur la solution unique revendiquée dans l'article de 2014.

Plus d'information

Au-delà de la question, le prochain élément d'intérêt dans le papier de Sieta est que, "Mauvaise conception de la fonction de perte du générateur", peut conduire à des valeurs de gradient insuffisantes pour guider la descente et produire ce qu'on appelle parfois la saturation. La saturation est simplement la réduction du signal de rétroaction qui guide la descente en rétropropagation au bruit chaotique résultant de l'arrondi à virgule flottante. Le terme vient de la théorie du signal.

Je suggère d'étudier l'article de 2014 de Goodfellow et alia (les chercheurs chevronnés) pour en savoir plus sur la technologie GAN plutôt que la page de 2017.

Douglas Daseeco
la source
3

Commençons par le début. Les GAN sont des modèles qui peuvent apprendre à créer des données similaires aux données que nous leur fournissons.

Lors de la formation d'un modèle génératif autre qu'un GAN, la fonction de perte la plus simple à trouver est probablement l'erreur quadratique moyenne (MSE).

Veuillez me permettre de vous donner un exemple ( Trickot L 2017 ):

Supposons maintenant que vous vouliez générer des chats; vous pourriez donner à votre modèle des exemples de chats spécifiques sur les photos. Votre choix de fonction de perte signifie que votre modèle doit reproduire chaque chat exactement afin d'éviter d'être puni.

Mais ce n'est pas forcément ce que nous voulons! Vous voulez juste que votre modèle génère des chats, n'importe quel chat fera aussi longtemps que c'est un chat plausible. Vous devez donc modifier votre fonction de perte.

Mais quelle fonction pourrait ignorer les pixels concrets et se concentrer sur la détection des chats sur une photo?

C'est un réseau de neurones. C'est le rôle du discriminateur dans le GAN. Le travail du discriminateur consiste à évaluer dans quelle mesure une image est plausible.

L'article que vous citez, Understanding Generative Adversarial Networks (Daniel S 2017) énumère deux idées principales.

Aperçu majeur 1: la fonction de perte du discriminateur est la fonction de perte d'entropie croisée.

Aperçu majeur 2: comprendre comment la saturation du gradient peut ou non nuire à l'entraînement. La saturation des gradients est un problème général lorsque les gradients sont trop petits (c'est-à-dire zéro) pour effectuer un apprentissage.

Pour répondre à votre question, nous devons approfondir la deuxième grande idée.

Dans le contexte des GAN, une saturation de gradient peut se produire en raison d'une mauvaise conception de la fonction de perte du générateur, donc cette «vision majeure» ... est basée sur la compréhension des compromis entre les différentes fonctions de perte du générateur.

La conception mise en œuvre dans l'article résout le problème de la fonction de perte en ayant une fonction très spécifique (pour discriminer entre deux classes). La meilleure façon d'y parvenir est d'utiliser l'entropie croisée (Insight 1). Comme le dit le blog:

L'entropie croisée est une grande fonction de perte car elle est conçue en partie pour accélérer l'apprentissage et éviter la saturation du gradient uniquement lorsque le classificateur est correct.

Comme précisé dans les commentaires du blog:

L'attente [dans la fonction d'entropie croisée] vient des sommes. Si vous regardez la définition de l'attente pour une variable aléatoire discrète, vous verrez que vous devez additionner différentes valeurs possibles de la variable aléatoire, en pesant chacune d'elles par leur probabilité. Ici, les probabilités ne sont que de 1/2 pour chacune, et nous pouvons les traiter comme provenant du générateur ou du discriminateur.

Seth Simba
la source
La question ne demandait pas ce qui était le plus facile à utiliser comme fonction de perte pour les RNA. Les détails des mathématiques n'étaient pas clairs pour @tryingtolearn et citer l'étudiant diplômé sans fournir aucune clarification ne clarifie pas.
FauChristian
1

Vous pouvez traiter une combinaison d' zentrées et d' xentrées comme un seul échantillon et vous évaluez dans quelle mesure le discriminateur a effectué la classification de chacun d'eux.

Voilà pourquoi le poste plus tard sépare un seul ydans E(p~data)et E(z)- en gros, vous avez des attentes différentes ( ys) pour chacune des entrées discriminantes et vous devez mesurer les deux en même temps pour évaluer dans quelle mesure le discriminateur effectue.

C'est pourquoi la fonction de perte est conçue comme une combinaison à la fois de la classification positive de l'entrée réelle et de la classification négative de l'entrée négative.

Alpha
la source