← Tous les exercices
Les deux pertes d'un GAN
Partie 3 · ★★
Dans un GAN, le discriminateur D rend la probabilité qu'une image soit vraie. Il apprend à rendre p ≈ 1 sur les vraies et p ≈ 0 sur les fabriquées : sa perte est l'entropie croisée binaire, moyenne (on divise par 2, contrairement à la leçon qui additionne) de −ln p(vraie) et de −ln(1 − p(fausse)). Le générateur, lui, veut que D se trompe : sa perte est −ln p(fausse) (étiquette « vraie » sur ses images).
Au début : D donne 0,9 à une vraie et 0,2 à une fausse. Plus tard, le générateur progresse et D donne 0,7 à la fausse. Calcule les deux pertes dans les deux situations.
def perte_d(p_vraie, p_fausse): return (-math.log(p_vraie) - math.log(1 - ___)) / 2 def perte_g(p_fausse): return -math.log(___) d1, g1 = perte_d(0.9, 0.2), perte_g(0.2) d2, g2 = perte_d(0.9, 0.7), perte_g(0.7) g_baisse = g2 < g1 d_monte = d2 > d1
Ctrl/⌘+Entrée