Da il documento che introduce i GAN :
È logico che ne vengano compressi troppi $ \ vec {z} $ -values a un singolo $ \ vec {x} $ -value causerà problemi. Tuttavia, ero un po confuso su come addestrare $ G $ per un periodo di tempo più breve prima di eseguire $ D $ può risolverlo. Ma quando ho cercato su Google “Helvetica scenario”, tutto quello che ho trovato sono stati riferimenti a uno spettacolo parodia chiamato Look Around You .
Dato che sembra che questa sia una cosa reale, non solo una parodia: dove posso saperne di più e come prevenirla? E perché si chiama “lo scenario Helvetica”?
Risposta
Mettere troppa massa di probabilità su un singolo $ x $ è davvero un grosso problema con i GAN. Di solito è indicato come modalità di compressione . La maggior parte dei documenti GAN ne discuterà.
Ero un po confuso su come lallenamento 𝐺 per un periodo di tempo più breve prima di correre 𝐷 possa risolverlo.
Lidea è di mantenere il discriminatore $ D $ aggiornato con il generatore $ G $ . Addestrando $ G $ in meno, stai addestrando $ D $ di più. Di solito, viene eseguita unottimizzazione alternata con i GAN, ovvero addestrare $ D $ per $ n $ iterazioni, quindi $ G $ per $ m $ iterazioni e così via. Il “lavoro” di $ D $ è quello di essere in grado di distinguere i falsi output $ G $ da dati reali punti. Tuttavia, se non ti alleni $ D $ abbastanza (ad esempio, ti alleni troppo $ G $ , quindi $ m > n $ ), quindi $ G $ “scapperà” rapidamente e sfrutterà i minimi locali in $ D $ . Da $ G $ ” punto di vista s, se a $ D $ “piace” qualche risultato $ x = G (z) $ , quindi la cosa più semplice da fare è solo solo loutput $ x $ ! Addestrare $ G $ in meno (e quindi $ D $ in più) consente a questo minimo di spostarsi e impedisce $ G $ da sfruttarli.
Notare che il sovrallenamento $ D $ non “t sembra essere una brutta cosa a priori . In effetti, con le perdite GAN più moderne (ad esempio quelle di Wasserstein), si vuole $ n $ essere il più grande possibile. Significa solo che $ D $ converge a essere un ottimo discriminatore in ogni fase, quindi dovrebbe essere informativo per $ G $ . (In effetti, le prove di convergenza dipendono da questo!) Ma in pratica, per il GAN originale, il sovrallenamento $ D $ tende a portare a gradienti inutili (vedi sotto): niente che $ G $ possa fare farà piacere al discriminatore, quindi tutti gli aggiornamenti di peso sono inutili , quindi il GAN si agita inutilmente intorno allo spazio dei parametri). Questo agitazione è chiamato allenamento instabile da altri. 🙂
In altre parole, per il vanilla GAN, lundertraining $ D $ può portare al collasso della modalità, mentre il sovrallenamento può causare instabilità. Apparentemente le persone si sono concentrate sulla mitigazione dellinstabilità in modo da superare semplicemente $ D $ ed evitare il collasso della modalità.
come può essere prevenuto?
Un modo comune per mitigarlo è utilizzare una diversa funzione di perdita, come una perdita di Wasserstein. Un problema con la formulazione GAN originale è che (riducendo al minimo la divergenza JS) possono avere gradienti molto poco informativi perché la perdita non gestisce molto bene le distribuzioni con pochissima sovrapposizione (cioè, quando il supporto condiviso è piccolo). In un certo senso, è troppo duro quando il generatore funziona male. Al contrario, una perdita di trasporto ottimale diminuisce gradualmente anche quando le due distribuzioni sono lontane luna dallaltra. Vedi ad es. il documento GAN di Wasserstein e i suoi follow-up.
E perché è chiamato “lo scenario Helvetica”?
Si riferisce allo spettacolo che hai citato, dove troppo calcio viene messo in un posto e causa un disastro. In questo caso, si verifica un disastro quando una densità di probabilità del generatore eccessiva viene collocata in una piccola area dello spazio dati. 🙂