Letztes Kapitel hinzugefügt.
@ -7,7 +7,8 @@
|
||||
%--------------------
|
||||
%language
|
||||
%--------------------
|
||||
\usepackage{babel}
|
||||
\usepackage[ngerman, english]{babel}
|
||||
\usepackage[shortcuts]{extdash}
|
||||
|
||||
%--------------------
|
||||
%images
|
||||
|
107
chapters/Classical_Unsupervised_Learning/Auto-Encoders.tex
Normal file
@ -0,0 +1,107 @@
|
||||
\chapter{Auto-Encoders}%
|
||||
\label{cha:Auto-Encoders}
|
||||
\begin{wrapfigure}{r}{.5\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{auto-encoder.png}
|
||||
\caption{Auto-Encoder}
|
||||
\label{fig:auto-encoder}
|
||||
\end{wrapfigure}
|
||||
Auto-Encoder sind \nameref{sec:Feedforward Neural Networks} (\cref{sec:Feedforward Neural Networks}),
|
||||
welche auf Basis einer Eingabe $\bm x$ $\bm x$ vorhersagen.
|
||||
Die Besonderheit liegt darin,
|
||||
dass ein Auto-Encoder ein Bottelneck-Layer enthält,
|
||||
welches eine deutlich geringere Dimension als die Eingabedaten hat.
|
||||
Dies zwingt den Auto-Encoder implizit zu einer \dref{cha:Dimensionality Reduction}.
|
||||
Das Ziel ist es den Reconstruction Loss $L(\bm\theta)$ zu minimieren.
|
||||
\begin{equation} \label{eq:auto-encoder_reconstruction_loss}
|
||||
L(\bm\theta) = \sum_i \|\dec_{\bm\theta}(\enc_{\bm\theta}(\bm x_i)) - \bm x_i \|^2
|
||||
\end{equation}
|
||||
Die einfachste Form eines Auto-Encoders verwendet jeweils nur eine lineare Schicht für das Encoden und Decoden (meist \gls{PCA} (\cref{sub:PCA})).
|
||||
|
||||
\paragraph{Anwendungsgebiete}%
|
||||
\label{par:Auto-Encoders:Anwendungsgebiete}
|
||||
Es gibt mehrere Gründe für den Einsatz von Auto-Encodern:
|
||||
\begin{itemize}
|
||||
\item Mapping von höherdimensionalen Daten in zweidimensionale Visualisierung
|
||||
\item Datenkompression (hierfür werden \glsxtrshortpl{VAE}(\cref{sec:VAEs}) benötigt)
|
||||
\item Lernen von abstrakten Features als Datenvorverarbeitung für einen Supervised Learning Algorithmus (\cref{part:Classical Supervised Learning})
|
||||
\item \say{semantically meaningful representation}, die z.B. eine Interpolation zwischen Bildern ermöglicht (\cref{??})
|
||||
\end{itemize}
|
||||
|
||||
\section{Deep Auto-Encoders}%
|
||||
\label{sec:Deep Auto-Encoders}
|
||||
Deep Auto-Encoders sind Auto-Encoder,
|
||||
welche die Daten nicht auf eine linearen Unterraum projizieren,
|
||||
sondern stattdessen auf eine nichtlineare \gls{manifold} abbildet.
|
||||
Nichtlineare Auto-Encoder haben den vorteil,
|
||||
dass sie deutlich mächtigere \say{Codes} lernen können als lineare Auto-Encoder.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{linear_nonlinear_auto-encoder_comparison.png}
|
||||
\caption{Vergleich von linearen und nichtlinearen Auto-Encodern}
|
||||
\label{fig:linear_nonlinear_auto-encoder_comparion}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Generative Model}%
|
||||
\label{sub:Generative Model}
|
||||
\begin{wrapfigure}{r}{.4\textwidth}
|
||||
\vspace*{-10mm}
|
||||
\centering
|
||||
\includegraphics[width=0.8\linewidth]{noisy_decoder.png}
|
||||
\caption{Noisy Decoder}
|
||||
\label{fig:noisy_decoder}
|
||||
\end{wrapfigure}
|
||||
Da Deep Auto-Encoder keine Verteilung erlernen können sie eigentlich nicht als generative Modelle verwendet werden.
|
||||
Dies liegt vor allem daran,
|
||||
dass der Decoder für einen Deep Auto-Encoder deterministisch arbeitet.
|
||||
Dies lässt sich umgehen,
|
||||
indem ein \say{Noisy Decoder}\slash\,\say{Noisy Observation Model} definiert wird.
|
||||
\begin{equation} \label{eq:noisy_decoder}
|
||||
p(\bm x|\bm z) = \nomeq{gaussian_distribution}{\bm x|\bm\mu_{\bm\theta}(\bm z),\nomeq{variance}\nomeq{identity_matrix}}
|
||||
\end{equation}
|
||||
\begin{itemize}
|
||||
\item $\bm\mu_{\bm\theta(\bm z)}$: Funktion des Decoders mit den Parametern $\bm\theta$
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\section{\glstopfullpl{VAE}}%
|
||||
\label{sec:VAEs}
|
||||
Ein \gls{VAE} unterscheidet sich von normalen Auto-Encodern darin,
|
||||
dass es zugleich ein Generative Model ist.
|
||||
Hierbei verwenden \glspl{VAE} das Verfahren der Amortized Variational Inference (\cref{par:Special Case 2: Amortized Variational Inference}) für die \dref{cha:Dimensionality Reduction}.
|
||||
|
||||
\subsection{Class\-/conditional \glstopshort{VAE}}%
|
||||
\label{sub:Class-conditional VAE}
|
||||
\begin{wrapfigure}{r}{.3\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=0.8\linewidth]{class-conditional_VAE.png}
|
||||
\caption{Class\-/conditional VAE}
|
||||
\label{fig:class-conditional_VAE}
|
||||
\end{wrapfigure}
|
||||
Eine Erweiterung des \gls{VAE} sind Class"~conditional \glspl{VAE}.
|
||||
Hierbei wird das Label der Eingabedaten sowohl an den Encoder als auch an den Decoder mit übergeben.
|
||||
Dies ist vor allem für den Decoder eine große Vereinfachung,
|
||||
da er nun nur noch versuchen muss eine Variation (z.B. Schriftart) einer bekannten Ausgabe (z.B. die Zahl 3) zu regenerieren.
|
||||
\begin{itemize}
|
||||
\item Durch die Veränderung von zwei latenten Dimensionen (z.B. Dimensionen von $\bm z$) bei gleichbleibenden $y$ kann der \say{latent space} visualisiert werden.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.8\linewidth]{latent_space.png}
|
||||
\caption{Latent Space}
|
||||
\label{fig:latent_space}
|
||||
\end{figure}
|
||||
\item Durch die Veränderung des Labels $y$ bei gleichbleibenden $\bm z$ können Analogien von Bildern erzeugt werden
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.7\textwidth]{image_analogies.png}
|
||||
\caption{Image Analogies}
|
||||
\label{fig:image_analogies}
|
||||
\end{figure}
|
||||
\item die Interpolation zwischen zwei Vektoren im \say{latent space} kann zu interessanten Ergebnissen führen
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{latent_space_vector_interpolation.png}
|
||||
\label{fig:latent_space_vector_interpolation}
|
||||
\end{figure}
|
||||
\end{itemize}
|
||||
|
@ -1,3 +0,0 @@
|
||||
\chapter{Variational Auto-Encoders}%
|
||||
\label{cha:Variational Auto-Encoders}
|
||||
|
BIN
images/auto-encoder.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
images/class-conditional_VAE.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/image_analogies.png
Normal file
After Width: | Height: | Size: 355 KiB |
BIN
images/latent_space.png
Normal file
After Width: | Height: | Size: 184 KiB |
BIN
images/latent_space_vector_interpolation.png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
images/linear_nonlinear_auto-encoder_comparison.png
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
images/noisy_decoder.png
Normal file
After Width: | Height: | Size: 22 KiB |