Wie funktioniert der Umparametrierungstrick für Variations-Autoencoder (VAE)? Gibt es eine intuitive und einfache Erklärung, ohne die zugrunde liegende Mathematik zu vereinfachen? Und warum brauchen wir den "Trick"?
Wie funktioniert der Umparametrierungstrick für Variations-Autoencoder (VAE)? Gibt es eine intuitive und einfache Erklärung, ohne die zugrunde liegende Mathematik zu vereinfachen? Und warum brauchen wir den "Trick"?
Antworten:
Nachdem ich die NIPS 2015-Workshop-Folien von Kingma gelesen hatte , wurde mir klar, dass wir den Umparametrierungstrick benötigen, um eine Rückübertragung durch einen zufälligen Knoten durchzuführen.
Intuitiv in seiner ursprünglichen Form, VAES Probe aus einem zufälligen Knoten , die durch das parametrische Modell angenähert wird q ( z | & phiv; , x ) der wahren posterior. Backprop kann nicht durch einen zufälligen Knoten fließen.
Durch die Einführung eines neuen Parameters können wir z so neu parametrisieren , dass Backprop durch die deterministischen Knoten fließt.
Hier ist ein von mir geschriebenes IPython-Notizbuch, das die Varianz dieser beiden Methoden zur Berechnung von Verläufen untersucht. http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb
Ein vernünftiges Beispiel für die Mathematik des "Tricks der Neuparametrisierung" ist in der Antwort von Goker angegeben, aber eine gewisse Motivation könnte hilfreich sein. (Ich habe keine Berechtigung, diese Antwort zu kommentieren. Daher hier eine separate Antwort.)
Dies kann weit vom Optimum entfernt sein (z. B. ein willkürlich gewählter Anfangswert). Es ist ein bisschen wie die Geschichte des Betrunkenen, der in der Nähe der Straßenlaterne nach seinen Schlüsseln sucht (weil er sie dort sehen / probieren kann), anstatt in der Nähe, wo er sie fallen lässt.
Ich hoffe das hilft.
Lassen Sie mich zunächst erklären, warum wir in VAE einen Umparametrierungstrick benötigen.
VAE verfügt über Encoder und Decoder. Der Decoder tastet nach dem Zufallsprinzip das wahre hintere Z ~ q (z∣ϕ, x) ab . Um Codierer und Decodierer als ein neuronales Netzwerk zu implementieren, müssen Sie durch zufällige Stichproben eine Rückübertragung durchführen, und das ist das Problem, da die Rückübertragung nicht durch zufällige Knoten fließen kann. Um dieses Hindernis zu überwinden, verwenden wir einen Umparametrierungstrick.
Nun kommen wir zum Trick. Da unser posterior normalverteilt ist, können wir es mit einer anderen Normalverteilung approximieren. Wir approximieren Z mit normalverteiltem ε .
Aber wie ist das relevant?
Anstatt nun zu sagen, dass Z aus q (z∣ϕ, x) abgetastet wird , können wir sagen, dass Z eine Funktion ist, die Parameter (ε, (µ, L)) übernimmt und diese µ, L aus dem oberen neuronalen Netzwerk (Encoder) stammen. . Während die Rückübertragung alles ist, was wir brauchen, ist die partielle Ableitung von µ, L und ε für die Ableitung irrelevant.
Ich fand die Erklärung im Stanford CS228-Kurs über probabilistische Grafikmodelle sehr gut. Es kann hier gefunden werden: https://ermongroup.github.io/cs228-notes/extras/vae/
Ich habe die wichtigen Teile hier aus Gründen der Übersichtlichkeit zusammengefasst / kopiert (obwohl ich dringend empfehle, nur den Original-Link zu lesen).
Wenn Sie mit Bewertungsfunktionen vertraut sind (ich glaube, REINFORCE ist nur ein Sonderfall davon), werden Sie feststellen, dass dies so ziemlich das Problem ist, das sie lösen. Der Bewertungsfunktionsschätzer weist jedoch eine hohe Varianz auf, was häufig zu Schwierigkeiten beim Lernen von Modellen führt.
Als Beispiel verwenden wir ein sehr einfaches q, aus dem wir ein Sample erstellen.
Dies hat aus imo nicht trivialen Gründen eine geringere Varianz. In Teil D des Anhangs finden Sie eine Erklärung: https://arxiv.org/pdf/1401.4082.pdf
Wir haben unser probablistisches Modell. Und möchten Parameter des Modells wiederherstellen. Wir reduzieren unsere Aufgabe auf die Optimierung der unteren Variationsgrenze (VLB). Dazu sollten wir zwei Dinge machen können:
Autoren schlagen vor, Monte Carlo Estimator für beide zu verwenden. Und tatsächlich führen sie diesen Trick ein, um einen genaueren Monte-Carlo-Gradientenschätzer für VLB zu erhalten.
Es ist nur eine Verbesserung der numerischen Methode.
Der Umparametrierungstrick reduziert die Varianz des MC-Schätzers für den Gradienten dramatisch. Es ist also eine Varianzreduktionstechnik :