Im
vorherigen Artikel habe ich am Beispiel von Spielzeugmodellen versucht zu analysieren, warum wir GANs tatsächlich effektiv trainieren können. Jetzt werden wir versuchen, einige der Ergebnisse zusammenzufassen und vor allem zu analysieren, wie sich die Architektur neuronaler Netze auf die Stabilität des Lernprozesses auswirkt.
Einführung
Sie können den GAN-Lernprozess als einen Prozess zur Minimierung der unteren Divergenzgrenze oder als ein dynamisches System betrachten, das aus einem Diskriminator und einem Generator besteht. Der erste Ansatz ist sehr gut entwickelt. Wenn jeder Interessierte viele interessante Arbeiten zu diesem Thema finden kann, werde ich meiner Meinung nach nur die wichtigsten nennen:
f-GAN ,
WGAN . Auf der anderen Seite haben
The Numerics of GANs, Lars Mescheder et al., 2017 gezeigt, dass man ein GAN nicht nur aus einer Position der Minimierung der Divergenz betrachten kann (obwohl dies das Hauptziel ist), aber es ist immer noch notwendig, die Eigenschaften eines dynamischen Systems zu berücksichtigen. Unser Ziel ist es, diese beiden Ansätze zu kombinieren und zu sehen, welche theoretischen Eigenschaften die Trajektorien eines solchen dynamischen Systems haben werden.
Als nächstes betrachten wir eine ziemlich allgemeine Form der GAN-Funktion (GAN-Ziel).
I( theta, phi)= intpd(x)fD(D theta(x))dx + intp( epsilon)fG(D theta(G phi(\)epsilon))d epsilon
wo
theta - Diskriminatorparameter,
phi - Generatorparameter. Außerdem nehmen wir an, dass Generator und Diskriminator doppelt differenzierbare Funktionen sind.
Der Lernprozess kann mathematisch wie folgt formuliert werden:
\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}
\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}
Ruhepunkt
Trotz der enormen Arbeit an GAN bleibt die Frage nach der Existenz eines Ruhepunkts offen. Jetzt werden wir versuchen, diese Frage zu beantworten.
Angenommen (
Annahme 1 ), dass für jeden Generator eine Diskriminatormaximierung existiert
I( theta, phi)
Das heißt Funktion
\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}
\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}
für beliebige Werte definiert
phi . Obwohl es möglich und mehrdeutig ist, gibt es viele verschiedene optimale Diskriminatoren. Wir werden den gesamten Satz solcher optimalen Diskriminatoren "Reparametrisierung" und den Satz nennen
\ {\ theta_ {opt} \}\ {\ theta_ {opt} \} Satz von Diskriminator-Reparametrisierung. Lassen Sie uns eine kleine Klarstellung machen - mit Maximum meinen wir nicht nur ein globales Maximum, sondern jedes lokale Maximum.
Mathematisch
thetaopt bestimmt durch das Gleichungssystem:
nabla thetaI( thetaopt, phi)=0
nabla theta2I( theta, phi) preceq0
Wenn der Generator und der Diskriminator neuronale Netze sind und wir den Bildgenerator trainieren, ist diese Annahme nicht erfüllt. In den folgenden Artikeln werde ich zeigen, wie dies mit Hilfe eines einfachen Regularisierers erreicht werden kann, aber jetzt muss ich es glauben.
Die zweite Annahme (
Annahme 2 ) ist, dass es für jede unendlich kleine Änderung der Parameter des Generators einen optimalen Diskriminator gibt, der dem aktuellen unendlich nahe kommt. Sie können versuchen herauszufinden, wann dies für neuronale Netze erfolgt, aber es scheint mir, dass dies eine intuitive Anforderung ist und mit hoher Wahrscheinlichkeit für ziemlich flexible Netze erfüllt wird.
Mathematisch kann diese Anforderung wie folgt formuliert werden: ein Gleichungssystem
nabla theta2I( thetaopt, phi)d theta=− nabla theta phiI( thetaopt, phi)d phi ;(1)
hat Entscheidungen
d theta bei jedem
d phi .
Dieser Zustand wird leicht aus der Zersetzung erhalten
nabla thetaI( thetaopt, phi)=0 in einer Reihe von Taylor.
Nun zeigen wir, dass unter
Annahme 2 der Gradient des Generators
nabla phiI( thetaopt, phi) ändert sich nicht, wenn wir uns entlang des Diskriminator-Reparametrisierungssatzes bewegen. Das mathematische Bewegen entlang des Reparametrisierungssatzes bedeutet dies
delta theta gehört zum Kern
nabla theta2I( theta, phi) d.h.
nabla thetaI( thetaopt, phi)= nabla thetaI( thetaopt+d thetaopt, phi)=0
Lassen Sie uns in einer Taylor-Reihe erweitern:
nabla phiI( thetaopt+d thetaopt, phi)= nabla phiI( thetaopt, phi)+ nabla phi thetaI( theta, phi)d thetaopt
Von wo, damit sich der Gradient nicht ändert, ist es notwendig, dass
d thetaopt gehörte zum Kern
nabla phi thetaI( theta, phi) . Aber wenn
d thetaopt gehört zum Kern
nabla theta2I( theta, phi) und (1) gilt dann
d thetaopt gehört zum Kern
nabla phi thetaI( theta, phi) . Dies lässt sich leicht durch Multiplizieren von (1) mit zeigen
d thetaopt und wenn man das bedenkt
d phi kann beliebig sein:
d thetaTopt nabla theta2I( thetaopt, phi)d theta=−d thetaTopt nabla theta phiI( thetaopt, phi)d phi=0
Wir haben gerade die wunderbare Tatsache bewiesen, dass der Gradient
\ nabla_ \ phi \ underset {\ theta} {max} \ {I (\ theta, \ phi) \}\ nabla_ \ phi \ underset {\ theta} {max} \ {I (\ theta, \ phi) \} egal welches ausgewählt ist
theta aus dem Satz der Neuparametrisierung des Diskriminators, und daher
underset thetamaxI( theta, phi) ist eine differenzierbare Funktion von
phi und wir können es mit Gradientenoptimierungsmethoden minimieren.
Was kann über das Minimum dieser Funktion gesagt werden? Leider können bisher keine allgemeinen Schlussfolgerungen gezogen werden. Wir müssen noch eine Annahme (
Annahme 3 ) über die Eigenschaften des Diskriminators machen, nämlich
underset thetamaxI( theta, phi) geq0 . Aus der Mattenanalyse wissen wir, dass eine unten begrenzte kontinuierliche Funktion entweder ihren Minimalwert erreicht oder monoton abnehmende Folgen von Punkten existieren (d. H. Die Funktion erreicht ihr Minimum im Unendlichen).
Annahme 3 besagt, dass unabhängig davon, ab welchem Zeitpunkt wir mit dem Training des Diskriminators begonnen haben (Initialisierung des neuronalen Netzwerks), der optimale Diskriminator den Daten immer einen höheren (oder gleichen) Wert (im Durchschnitt) zuweist als Abtastwerte vom Generator, und jeder Diskriminator, der das Gegenteil tut, kann nicht optimal sein. Meiner Meinung nach ist diese Annahme intern sehr logisch und ausreichend flexible neuronale Netze sollten sie erfüllen. Übrigens ist leicht zu zeigen, dass der lineare Diskriminator diese Annahme erfüllt.
"Optimale Flugbahn"
Wir haben gerade herausgefunden, dass, wenn der Diskriminator ausreichend „weiche“ Annahmen erfüllt, entweder der Ruhepunkt existiert oder er sich im Unendlichen befindet und wir uns ihm asymptotisch nähern können.
Nehmen wir dazu an
theta und
phi Stromparameter, und der Diskriminator wird trainiert, um zu konvergieren. Jetzt wechseln wir den Generator ein wenig (
phik+1= phik+d phi ) so dass
\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} nimmt ab - zum Beispiel machen wir einen Schritt des Gradientenabfalls. Wie sollen wir den Diskriminator aktualisieren? Die Antwort ergibt sich aus Formel (1):
d theta=− nabla theta2I( theta, phi) dagger nabla theta phiI( theta, phi)d phi(2)
wo
nabla theta2I( theta, phi) dagger Ist eine pseudoinverse Matrix.
Um mathematisch streng zu sein, bestimmt Formel (2) die tangentiale Hyperebene zur Oberfläche in dem Parameterraum, auf dem die optimalen Diskriminatoren "leben". Wir werden diese Oberfläche "optimal" nennen.
Aber was wird passieren, wenn wir von einem sehr engen Punkt aus starten, aber der Diskriminator dort immer noch nicht optimal war? Offensichtlich beschreibt unsere Formel völlig unvorhersehbare Flugbahnen, weil es wurde nur für optimale Diskriminatoren erhalten. Versuchen wir, diese Situation zu beheben. In diesem Fall wäre es logisch, sich nicht nur parallel zur „optimalen“ Oberfläche zu bewegen, sondern auch darauf zu. Offensichtlich ist hierfür ein Schritt in die durch die Newtonsche Methode angegebene Richtung durchaus geeignet. Unsere endgültige Formel sieht folgendermaßen aus:
d theta=− nabla theta2I( theta, phi) dagger[ nabla thetaI( theta, phi)+ nabla theta phiI( theta, phi)d phi](3)
Was haben wir gerade getan? Beachten Sie zunächst, dass auf einer optimalen Oberfläche
nabla thetaI( theta, phi)=0 d.h. wenn wenn
theta Wurde der Diskriminator auf Konvergenz trainiert, so haben wir die Flugbahn nicht verändert. Wenn wir dagegen irgendwo in der Nähe des „optimalen“ Punkts begonnen haben, wird uns der zusätzliche Begriff auf die „optimale“ Flugbahn „ziehen“. Das heißt, wir haben die „optimale“ Flugbahn rauschresistent gemacht.
Leider kann ich es nicht mathematisch beweisen. Aber wir brauchen es nicht. Schauen wir uns Formel (3) genauer an, sie kann in der folgenden Form umgeschrieben werden:
d theta=− nabla theta2I( theta, phi) dagger nabla thetaI( theta, phi+d phi)
Ähnelt nichts? Es sieht fast aus wie Newtons Methode. Dies deutet darauf hin, dass alternierende (in der englischsprachigen Literatur alternierende) Aktualisierungen der Generator- und Diskriminatorparameter verwendet werden, wobei der Diskriminator durch die Newton-Methode aktualisiert wird (tatsächlich müssen wir nicht den vollständigen Newton-Schritt ausführen, aber wir können einen kleinen Schritt in die durch die Newton-Methode angegebene Richtung machen). und der Generator kann im Allgemeinen einen Schritt in jede Richtung machen, die Hauptsache ist, abzunehmen
\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}\ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} ist eine gute Annäherung an die Bewegung entlang einer optimalen Flugbahn.
Übrigens liegt hier vielleicht Adams Erfolg im GAN-Training. Schließlich ist bekannt, dass Adam versucht, Hessisch zu approximieren, und diese Informationen für den Gradientenschritt verwendet (approximiert Newtons Methode).
Flugbahnstabilität
Um die Stabilität der Trajektorien zu analysieren, verwenden wir dieselben Tools wie die in
Welche Trainingsmethoden für GANs konvergieren tatsächlich? . Wer auch immer die Zeit hat, ich empfehle Ihnen, diese Arbeit gut zu verstehen, es lohnt sich.
Ich glaube, dass der Hauptnachteil dieses Artikels darin besteht, dass die Autoren die Stabilität des Systems an einem Ruhepunkt analysieren, der für die meisten realen GANs einfach nicht existiert (für Spielzeug-2D- oder 3D-Beispiele ist dies natürlich möglich). Ich meine, im Allgemeinen gibt es keinen stationären Punkt, und der Punkt, an dem der Generator die gleiche Verteilung wie die Daten hat, und der Diskriminator ist identisch mit 0. Daher werden wir die Stabilität des Systems am stationären Punkt nicht analysieren, wir werden einen etwas anderen Weg gehen - wir werden versuchen, die Stabilität des Systems zu analysieren . Obwohl diese Analyse leicht auf den Ruhepunkt übertragen werden kann, ist der Ruhepunkt auch eine Flugbahn.
Als untersuchte Trajektorien wählen wir die Trajektorien, die während des Trainings durch Gradientenabstieg erhalten werden. Warum ist das wichtig? Zunächst haben wir herausgefunden, was die „optimale“ Flugbahn ist, und festgestellt, dass sie durch Diskriminatoraktualisierungen in der durch Newtons Methode angegebenen Richtung gut angenähert werden kann. Und Newtons Methode ist die Methode mit dem höchsten Gradienten, bei der Informationen aus zweiten Ableitungen verwendet werden, um die Richtung anzupassen. Aber der Hauptgrund, warum wir das tun, ist sehr einfach - weil wir es können. Jede Abweichung davon führt zu so verrückten Formeln, dass es dort einfach unmöglich ist, etwas zu verstehen.
Die Standardmethode zur Analyse der Stabilität von Trajektorien ist die Analyse linearisierter Modelle. Ähnlich wie bei den Autoren von
Welche Trainingsmethoden für GANs konvergieren tatsächlich? Wir werden die jakobianischen Flugbahnen erforschen:
A = \ begin {bmatrix} \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) \\ - \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) ^ T & - \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
A = \ begin {bmatrix} \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) \\ - \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) ^ T & - \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
J=I+ etaA
wo
I Ist die Identitätsmatrix.
Wir gehen davon aus, dass der Diskriminator, obwohl er nicht optimal ist, nahe genug an dem optimalen liegt, der ausgeführt werden soll
nabla theta2I( theta, phi) preceq0 . Und auch, dass der Regularizer (ich habe bereits erwähnt, dass der Diskriminator in der realen GAN keinen optimalen Punkt hat und dass wir diesen Punkt mit Hilfe des Regularisierers erstellen müssen) nicht neidisch auf den Generator ist. Ich werde ein wenig voraus sein - der beste Regularisierer, den wir in der Praxis gefunden haben, hängt davon ab, aber für unsere theoretischen Studien schränkt uns diese Annahme nicht so sehr ein.
Für das Folgende brauchen wir eine elementare Tatsache über Matrizen: wenn
nabla theta2I( theta, phi) preceq0 und
nabla phi2I( theta, phi) succeq0 dann gibt es
eta>0 Was ist die spektrale Norm der Matrix?
J wird kleiner oder gleich 1 sein.
Der Beweis ist elementar - wir schreiben
JTJ ::
JTJ=[I+ etaA]T[I+ etaA]=I+ eta[A+AT+ eta(ATA)]
aber:
A + A ^ T = \ begin {bmatrix} 2 \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & 0 \\ 0 & -2 \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}
Aufgrund der Kontinuität der Eigenwerte ist es daher offensichtlich, dass man solche wählen kann
eta>0 diese Eigenwerte
JTJ wird kleiner oder gleich 1 sein. Daraus folgt die Tatsache, dass wir das brauchen
left |J right | leqslant1 .
Wir wissen das auf unserer Flugbahn
nabla theta2I( theta, phi) preceq0 durchgeführt (da die Flugbahn "optimal" ist) und wenn es gab
nabla phi2I( theta, phi) succeq0 dann wäre jede Flugbahn (einschließlich des Gleichgewichtspunkts) stabil - das heißt, mit einer geringfügigen Abweichung von der Flugbahn würde das System dazu neigen, dorthin zurückzukehren. Dies ist offensichtlich, da jede diskrete Flugbahn als Produkt der Jakobiner dargestellt werden kann und das Produkt von Matrizen mit einer Norm kleiner oder gleich 1 keine Norm größer als 1 haben kann.
Viele Fakten besagen jedoch, dass dies für GAN nicht immer der Fall ist. Ein markantes Beispiel ist der Kollapsmodus, der im Übrigen nicht immer und nicht bei allen Modellen auftritt. Ich behaupte, dass die Komplexität des GAN-Trainings mit zwei Tatsachen zusammenhängt: Es gibt keinen optimalen Diskriminator (der von einem Regularisierer behandelt wird) und der Jacobi des Generators ist keine nicht negative bestimmte Matrix. Jetzt werden wir versuchen zu verstehen, wie, wenn das zweite Problem nicht vollständig beseitigt wird, seine Auswirkungen auf die Nachhaltigkeit zumindest minimiert werden.
Dazu schreiben wir den Jacobian des Generators aus. Es wird aus drei Komponenten bestehen:
J1= intp( epsilon)f″G(D theta(G phi( epsilon)))[ nabla phiG phi( epsilon) nablaxD theta(G phi() epsilon))][ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))]Td epsilon
J2= intp( epsilon)f′G(D theta(G phi( epsilon))) nabla phi2G phi( epsilon) nablaxD theta(G phi() epsilon))d epsilon
J3= intp( epsilon)f′G(D theta(G phi( epsilon))) nabla phiG phi( epsilon)T nabla2xD theta(G phi( epsilon)) nabla phiG phi( epsilon)d epsilon
Da die Ausdrücke für den Jacobi sehr komplex sind und es unmöglich ist, irgendeine Struktur zu erkennen, werden alle unsere Aktionen darauf abzielen, sicherzustellen, dass diese Matrizen so nahe wie möglich an 0 liegen.
J1 Es ist ersichtlich, dass dieser Begriff sehr einfach zurückgesetzt werden kann - wählen Sie einfach die Funktion aus
fG so dass
f″G(x)=0 oder so, dass der "Arbeitspunkt" in dem Bereich liegt, in dem die zweite Ableitung nahe bei 0 liegt. Übrigens die Wahl der Funktion
f″G(x)=0 Entspricht WGAN. Ist WGAN für seine Stabilität bekannt?
Die beiden anderen Begriffe können nur durch die Architektur neuronaler Netze beeinflusst werden. Zum Beispiel werden sie im Fall eines linearen Generators und Diskriminators aufgehoben (zweite Ableitungen sind Null). Übrigens fällt mir die ReLU-Aktivierung ein - leider ist diese Analyse für solche Netzwerke nicht anwendbar, da die Annahme der Differenzierbarkeit verletzt wird. Aus der Praxis ist jedoch bekannt, dass wirklich GANs mit neuronalen Netzen mit stückweise linearen Aktivierungen viel stabiler trainiert werden als beispielsweise mit hyperbolischen Tangenten. Ob dies auf den Jacobianer zurückzuführen ist oder ob es einen anderen wichtigeren Grund gibt, bleibt abzuwarten, aber ich plane, dieses Problem in Zukunft ein wenig zu untersuchen.
Wir können auch den Schluss ziehen, dass die GAN breite Netzwerke "bevorzugt". In der Tat wissen wir, dass GAN mit tiefen Netzwerken häufiger zusammenbricht.
Fazit
In diesem Artikel habe ich versucht, Antworten auf langwierige Fragen der GAN-Theorie zu geben. Sie und ich haben gesehen, dass es ausreicht, dass der Diskriminator ziemlich einfache Eigenschaften besitzt, damit ein Ruhepunkt existiert. Wir haben auch gesehen, dass die probabilistische Interpretation (Minimierung der Divergenz) des GAN alle Rechte auf Leben hat und dass wir mit einem ziemlich einfachen Algorithmus die „optimalen“ Trajektorien sehr gut approximieren können. Und auch, dass der Adam-Algorithmus dies bereits tut und theoretisch das GAN-Training stabilisieren sollte, was übrigens in vielen Arbeiten festgestellt wurde.
Was jedoch sehr wichtig ist, wir haben gesehen, dass die empirischen Empfehlungen für die Auswahl der Architektur neuronaler Netze und der Verlustfunktionen durchaus mit der Theorie übereinstimmen. Und vor allem alle Probleme beim Lernen aufgrund von Nichtlinearitäten - lineare Modelle werden sehr stabil trainiert.
Was bleibt im Artikel übrig? Übe. Im nächsten Artikel werde ich den Regularisierer beschreiben, mit dem ich dem Diskriminator einen Ruhepunkt und eine Reihe von Tricks zur Verbesserung der Stabilität des GAN-Lernprozesses zur Verfügung stelle (einige von ihnen sind übrigens durch diese Analyse motiviert).
Als Beispiel ein tiefes Netzwerk (50 Schichten Generator und 50 Schichten Diskriminator), das auf dem LSUN-Schlafzimmerdatensatz trainiert wurde (nur 100.000 Iterationen und wir haben keine Generatormittelung verwendet).