Latent Variable Models and Variational Bayes hinzugefügt.

This commit is contained in:
2022-02-20 18:56:15 +01:00
parent 601e20cf68
commit 44c81306a8
8 changed files with 142 additions and 24 deletions

View File

@@ -0,0 +1,83 @@
\chapter{Latent Variable Models and Variational Bayes}%
\label{cha:Latent Variable Models and Variational Bayes}
In \cref{sec:Decomposition in lower-bound and KL-term} wurde bereits gezeigt,
wie die Decomposition für diskrete $\bm z$ aussieht.
Für nicht-diskrete $\bm z$ ergibt sich:
\begin{align} \label{eq:decomposition_in_lower-bound_and_KL-term_nondiscrete}
\underbrace{\log p(\bm x)}_{\text{\glslink{marginal}{marginal} log-like}}
&= \mathcal L(q) + \nomeq{kl_divergence}(q(\bm z)\|p(\bm z|\bm x))\\
&= \underbrace{\int q(\bm z)\log \frac{p(\bm x|\bm z)p(\bm z)}{q(z)} d\bm z}_{\text{Lower-Bound $\mathcal L(q)$}}
+ \underbrace{\int q(\bm z)\log \frac{q(\bm z)}{p(\bm z|\bm x)}}_{\text{\noms{kl_divergence}: $\nomeq{kl_divergence}(q(\bm z)\|p(\bm z|\bm x))$}}
\end{align}
\begin{itemize}
\item $q(\bm z)$ wird hierbei auch als \say{variational\slash\,auxiliary distribution} bezeichnet
\end{itemize}
Bei der Expectation Maximization (\cref{cha:Expectation Maximization}) wurde an dieser Stelle davon ausgegangen,
dass die \gls{KL}-Divergenz eine \gls{closed_form_solution} hat
und daher nach dem Expectation-Step (\cref{sub:Expectation-Step}) $\nomeq{kl_divergence}(q(\bm z)\|p(\bm z|\bm x)) = 0$ gilt.
Mithilfe des Satzes von Bayes (\cref{sub:Bayes Rule}) lässt sich allerdings zeigen,
dass
$$\argmin_q \nomeq{kl_divergence}(q(\bm z)\|p(\bm z|\bm x)) = \argmax_q \mathcal L(q,p)$$
gilt (Herleitung: {\color{red} Vorlesung 12 Folie 13 und 14}).
Daraus folgt,
dass die Maximierung der \glslink{marginal}{Marginal} Log-Likelihood immer noch sichergestellt ist,
da die \gls{KL}-Divergenz bereits minimal ist ($q(\bm z)\approx p(\bm z|\bm x)$),
wenn die Lower Bound maximiert ist.
Für einen ganzen Datensatz lässt sich die Lower Bound wie folgt definieren:
\begin{equation} \label{eq:VAE:lower_bound_whole_dataset}
\mathcal L(\{q_i\},p) = \frac{1}{N}\sum_i\int q_i(\bm z)\log p(\bm x_i|\bm z)d\bm z - \nomeq{kl_divergence}(q_i(\bm z)\|p(\bm z))
\end{equation}
\begin{itemize}
\item $q_i$: individuelle Variational Distribution für jeden Datenpunkt
\end{itemize}
Dies hat zwei Vorteile:
\begin{enumerate}
\item erlaubt direkteres Samplen
\begin{itemize}
\item kein Samplen von $p(\bm z)$ nötig,
stattdessen kann direkt von $q_i(\bm z)\approx p(\bm z|\bm x_i)$ gesampelt werden.
\item nach der Optimierung erzeugt jedes $q_i(\bm z)$ Samples mit hohem $p(\bm x|\bm z)$
\end{itemize}
\item das Integral ist außerhalb der $\log$-Funktion
\begin{itemize}
\item es wird nur ein Sample von $q_i(\bm z)$ benötigt, um eine Abschätzung ohne Bias zu ermöglichen
\item kann für den \gls{SDG} (\cref{sub:SDG}) verwendet werden,
obwohl die \glslink{marginal}{Marginal} Log-Likelihood hierfür ungeeignet wäre
\end{itemize}
\end{enumerate}
Für die Maximierung dieser Lower Bound gibt es im Grunde genommen zwei Verfahren:
\paragraph{Special Case 1: \glstoplong{EM}}%
\label{par:Special Case 1: Expectation Maximization}
\mbox{}\\
\includegraphics[scale=.5]{VAE_special_case_1:_expectation_maximization.png}
\paragraph{Special Case 2: Amortized Variational Inference}%
\label{par:Special Case 2: Amortized Variational Inference}
\mbox{}\\
Das \say{Amortized Variational Inference} Verfahren ist das Standardverfahren,
welches in \dref{sec:VAEs} zum Einsatz kommt.
Hierbei wird statt einer auxiliary distribution $q_i(\bm z)$ für jeden Datenpunkt $x_i$ eine amortisierte Verteilung (armortized distribution) $q_\phi(\bm z|\bm x_i)$ verwendet,
welche mittels eines \gls{DNN} (\cref{Deep Neural Networkd}) erstellt wird.
Hierdurch lässt sich die Lower Bound Funktion wie folgt umschreiben:
\begin{equation} \label{eq:amortized_variational_inference_lower_bound}
\mathcal L(q,p) = \frac{1}{N}\sum_i\int q_\phi(\bm z|\bm x_i)\log p_{\bm \varphi}(\bm x_i|\bm z)d\bm z - \nomeq{kl_divergence}(q_\phi(\bm z|\bm x_i)\|p_{\bm\varphi}(\bm z))
\end{equation}
\begin{itemize}
\item Encoder \tabto{3cm}$q_\phi(\bm z|\bm x)$
\item Decoder \tabto{3cm}$p_{\bm\varphi}(\bm x|\bm z)$
\item Latent Prior \tabto{3cm}$p_{\bm\varphi}(\bm z)$
\end{itemize}
Da die Samples hier nicht vorgegeben sind,
sondern generiert werden,
unterscheidet sich dieses Verfahren vom Maximum-Log-Likelihood (\cref{maximum log-lik}).
Zudem ist die Verwendung von Gradienten sehr ineffizient.
Abhilfe biete der \say{Reparameterization Trick} (siehe {\color{red} Vorlesung 12 Folie 19 und 20}),
welcher es ermöglicht,
die Lower Bound wie folgt umzuschreiben (mehr Details: {\color{red} Vorlesung 12 Folie 21}):
\begin{equation} \label{eq:amortized_variational_inference_reparametrized_lower_bound}
\mathcal L(q,p) = \frac{1}{N} \sum_i\int p(\bm\xi) (\underbrace{\log p_{\bm\varphi}(\bm x_i|\bm h(\bm\xi,\bm x))}_{\text{reconstruction}}
+ \underbrace{\log p_{\bm\varphi}(\bm h(\bm xi,\bm x)) - \log q_\phi(\bm h(\bm\xi,\bm x)|\bm x)}_{\text{\glsxtrshort{KL}-term}})
\end{equation}