Fra papiret som introduserer GAN :

Et avsnitt som nevner Helvetica-scenariet

Det er fornuftig at sammenbrudd for mange $ \ vec {z} $ -verdier til en enkelt $ \ vec {x} $ -verdi vil forårsake problemer. Jeg var imidlertid litt forvirret over hvordan jeg trente $ G $ i kortere tid før jeg kjørte $ D $ kan fikse det. Men da jeg googlet «Helvetica scenario», kunne jeg bare finne referanser til et parodi-show kalt Look Around You .

Siden det virker som om dette er en faktisk ting, ikke bare en parodi – hvor kan jeg finne ut mer om det, og hvordan det kan forhindres? Og hvorfor kalles det «Helvetica-scenariet»?

Svar

Plasser for mye sannsynlighetsmasse på en enkelt $ x $ er virkelig et stort problem med GAN-er. Vanligvis blir det referert til som moduskollaps . De fleste GAN-papirer vil diskutere det.

Jeg var litt forvirret over hvordan trening 𝐺 i kortere tid før du løper 𝐷 kan fikse det.

Tanken er å holde diskriminatoren $ D $ oppdatert med generatoren $ G $ . Ved å trene $ G $ mindre, trener du $ D $ mer. Vanligvis gjøres en alternerende optimalisering med GAN-er, dvs. tog $ D $ for $ n $ iterasjoner, deretter $ G $ for $ m $ iterasjoner, og så videre. «Jobben» til $ D $ er å kunne skjelne falske $ G $ utganger fra reelle data poeng. Men hvis du ikke trener $ D $ nok (dvs. du trener $ G $ for mye , så $ m > n $ ), deretter $ G $ vil raskt «stikke av» og utnytte lokale minima i $ D $ . Fra $ G $ » synspunkt, hvis $ D $ «liker» noe output $ x = G (z) $ , så er den enkleste tingen å gjøre bare bare sende ut $ x $ ! Trening $ G $ mindre (og dermed $ D $ mer) gjør at denne minimaen beveger seg og forhindrer $ G $ fra å utnytte dem.

Legg merke til at overtrening $ D $ ikke synes å være en dårlig ting a priori . Med mer moderne GAN-tap (f.eks. Wasserstein), vil man $ n $ å være så stor som mulig. Det betyr bare at $ D $ konvergerer til å være en god diskriminator i hvert trinn, så det bør være informativt for $ G $ . (Faktisk bevis på konvergens henger på å gjøre dette!) Men i praksis, for den opprinnelige GAN, overtrening $ D $ har en tendens til å føre til ubrukelige stigninger (se nedenfor): ingenting $ G $ kan gjøre vil glede diskriminatoren, så alle vektoppdateringer er ubrukelige , så GAN bare skummelt slingrer rundt parameterområdet). Denne flagringen kalles ustabil trening av andre. 🙂

Med andre ord, for vanilje GAN, kan trening $ D $ føre til moduskollaps, mens overtrening kan føre til ustabilitet. Folk har tilsynelatende fokusert på å redusere ustabilitet slik at man bare overtrener $ D $ og unngår kollaps i modus.

hvordan det kan forhindres?

En vanlig måte å redusere den på er å bruke en annen tapsfunksjon, for eksempel et Wasserstein-tap. Et problem med den opprinnelige GAN-formuleringen er at (ved å minimere JS-divergensen) kan ha svært uinformative gradienter fordi tapet ikke takler distribusjoner med veldig lite overlapping veldig bra (dvs. når den delte støtten er liten). På en eller annen måte er det for tøft når generatoren gjør det dårlig. Derimot reduseres et optimalt transporttap jevnt, selv når de to distribusjonene er langt fra hverandre. Se f.eks. Wasserstein GAN-papiret og dets oppfølging.

Og hvorfor kalles det «Helvetica-scenariet»?

Det refererer til showet du nevnte, hvor for mye kalsium blir satt på ett sted og forårsaker en katastrofe. Her oppstår en katastrofe når for mye sannsynlighet for generatorer plasseres i et lite område av datarommet. 🙂

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *