Aus dem Artikel zur Einführung von GANs :

Ein Absatz, in dem das Helvetica-Szenario erwähnt wird

Es ist sinnvoll, zu viele $ \ vec {z} $ -Werte für einen einzelnen $ \ vec {x} $ -Wert verursachen Probleme. Ich war jedoch etwas verwirrt darüber, wie $ G $ für eine kürzere Zeit trainiert wurde, bevor $ D $ kann das Problem beheben. Aber als ich „Helvetica-Szenario“ gegoogelt habe, konnte ich nur Hinweise auf eine Parodie-Show namens Look Around You finden.

Da dies anscheinend eine tatsächliche Sache ist, nicht nur eine Parodie – wo kann ich mehr darüber erfahren und wie kann dies verhindert werden? Und warum heißt es „das Helvetica-Szenario“?

Antwort

Platzieren einer zu großen Wahrscheinlichkeitsmasse auf einer einzelnen $ x $ ist in der Tat ein großes Problem bei GANs. Normalerweise wird es als Modus-Kollaps bezeichnet. Die meisten GAN-Artikel werden darüber diskutieren.

Ich war etwas verwirrt darüber, wie das Training 𝐺 für eine kürzere Zeit vor dem Ausführen 𝐷 es beheben kann.

Die Idee ist, den Diskriminator $ D $ mit dem Generator $ G $ . Indem Sie $ G $ weniger trainieren, trainieren Sie $ D $ mehr. Normalerweise wird eine alternierende Optimierung mit GANs durchgeführt, dh $ D $ für $ n $ -Iterationen trainieren, dann $ G $ für $ m $ -Iterationen und so weiter. Der „Job“ von $ D $ besteht darin, gefälschte $ G $ -Ausgaben aus realen Daten erkennen zu können Punkte. Wenn Sie jedoch $ D $ nicht genug trainieren (dh Sie trainieren $ G $ nicht zu viel , also $ m > n $ ), dann $ G $ „läuft schnell weg“ und nutzt lokale Minima in $ D $ aus. Von $ G $ “ s Standpunkt, wenn $ D $ eine Ausgabe „mag“ $ x = G (z) $ Dann ist es am einfachsten, nur das $ x $ auszugeben! Durch Training $ G $ weniger (und damit $ D $ mehr) können sich diese Minima bewegen und $ G $ daran, sie auszunutzen.

Beachten Sie, dass ein Übertraining von $ D $ dies nicht tut scheint eine schlechte Sache zu sein a priori . In der Tat möchte man bei moderneren GAN-Verlusten (z. B. Wasserstein-Verlusten) $ n $ um so groß wie möglich zu sein. Es bedeutet nur, dass $ D $ bei jedem Schritt zu einem großen Diskriminator konvergiert, daher sollte es für $ G $ . (Tatsächlich hängen Konvergenzbeweise davon ab!) In der Praxis wird jedoch für das ursprüngliche GAN $ D $ führt tendenziell zu nutzlosen Verläufen (siehe unten): Nichts, was $ G $ tun kann, wird dem Diskriminator gefallen, daher sind alle Gewichtsaktualisierungen nutzlos , also die GAN nur vergeblich um den Parameterraum herumwirbeln). Dieses Dreschen wird von anderen als instabiles Training bezeichnet. 🙂

Mit anderen Worten, für das Vanille-GAN kann das Untertraining von $ D $ zum Zusammenbruch des Modus führen, während das Übertraining zu Instabilität führen kann. Die Leute haben sich anscheinend darauf konzentriert, die Instabilität zu verringern, so dass man einfach $ D $ überfordert und einen Zusammenbruch des Modus vermeidet.

Wie kann dies verhindert werden?

Eine übliche Methode zur Minderung besteht darin, eine andere Verlustfunktion zu verwenden, z. B. einen Wasserstein-Verlust. Ein Problem mit der ursprünglichen GAN-Formulierung besteht darin, dass (durch Minimieren der JS-Divergenz) sehr uninformative Gradienten auftreten können, da der Verlust Verteilungen mit sehr geringer Überlappung nicht sehr gut handhabt (d. H. Wenn die gemeinsame Unterstützung klein ist). In gewissem Sinne ist es zu hart, wenn der Generator schlecht läuft. Im Gegensatz dazu nimmt ein optimaler Transportverlust gleichmäßig ab, selbst wenn die beiden Verteilungen weit voneinander entfernt sind. Siehe z. das Wasserstein-GAN-Papier und seine Folgemaßnahmen.

Und warum heißt es „das Helvetica-Szenario“?

Es bezieht sich auf die von Ihnen erwähnte Show, in der zu viel Kalzium an einem Ort platziert wird und eine Katastrophe verursacht. Hier tritt eine Katastrophe auf, wenn zu viel Generatorwahrscheinlichkeitsdichte in einem kleinen Bereich des Datenraums platziert wird. 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.