forked from TH_General/Template_Summary
158 lines
7.6 KiB
TeX
158 lines
7.6 KiB
TeX
\chapter{Density Estiamtion}%
|
|
\label{cha:Density Estiamtion}
|
|
Das Ziel von Density Estiamtion Algorithmen ist es,
|
|
die Verteilung von Datenpunkten verschiedener Klassen zu modelieren.
|
|
Diese Modellierung kann genutzt werden, um
|
|
\begin{itemize}
|
|
\item die Daten zu klassifizieren
|
|
\item Ausreißer zu erkennen
|
|
\item neue Daten (z.B. zum Training von anderen Algorithmen) generieren,
|
|
die den bereits vorhandenen ähneln
|
|
\end{itemize}
|
|
Es gibt mehrere Methoden,
|
|
die genutzt werden können,
|
|
um die Wahrscheinlichkeitsverteilung einer Klasse zu Modellieren.
|
|
|
|
\section{Parametric Models}%
|
|
\label{sec:Parametric Models}
|
|
Eine Form der Modellierung ist bereits aus vorhergegangenen Algorithmen bekannt.
|
|
Die Wahrscheinlichkeitsverteilung kann durch ein parametrisiertes Modell (z.B. \dref{sub:Gaussian Distribution})
|
|
approximiert werden.
|
|
Diese Methode eignet sich allerdings nicht für Datenverteilungen,
|
|
die weit von der Grundannahme (z.B. normalverteilte Datenpunkte) des parametrischen Modells entfernt sind.
|
|
|
|
\section{Non-parametric Models}%
|
|
\label{sec:Non-parametric Models}
|
|
Für Datenverteilungen mit unbekannter Grundlage ist es oft sinnvoll ein nicht-parametrisiertes Modell zur Repräsentation der Verteilung zu wählen.
|
|
|
|
\subsection{Histograms}%
|
|
\label{sub:Histograms}
|
|
\begin{wrapfigure}{r}{.4\textwidth}
|
|
\vspace*{-10mm}
|
|
\centering
|
|
\includegraphics[width=0.8\linewidth]{histogram.png}
|
|
\caption{Histogramm}
|
|
\label{fig:histogram}
|
|
\end{wrapfigure}
|
|
Bei Histogrammen werden die Daten in gleichgroßen Bins gesammelt.
|
|
Anschließend bietet die Anzahl der Datenpunkte in den jeweiligen Bins eine generalisierte Repräsentation der Dichteverteilung.
|
|
Histogramme bekommen dann Schwierigkeiten,
|
|
wenn sie hochdimensionale Daten repräsentieren sollen,
|
|
da hier der \dref{sec:Curse of Dimensionality} einsetzt.
|
|
Zudem stellt die Wahl der Größe der Bins ein Model-Selection Problem dar.
|
|
|
|
Eine formale Definition von Histogrammen ist {\color{red} in Vorlesung 10 auf Folie 66} zu finden.
|
|
|
|
\subsection{Kernel Density Estimation}%
|
|
\label{sub:Kernel Density Estimation}
|
|
Damit ein Kernel für die Dichteabschätzung verwendet werden kann,
|
|
muss er folgende Eigenschaften erfüllen
|
|
\begin{itemize}
|
|
\item nicht-negativ:\tabto{3cm}$\nomeq{kernel_function}(\bm x,\bm y)\le 0$
|
|
\item distance-dependant:\tabto{3cm}$\nomeq{kernel_function}(\bm x,\bm y) = g(\underbrace{\bm x-\bm y}_{\text{difference }\bm u})$
|
|
\end{itemize}
|
|
Die Dichteabschätzung lässt sich anhand der folgenden Formel durchführen
|
|
\begin{equation} \label{eq:kernel_density_estimation}
|
|
p(\bm x_*) \approx \frac{K(\bm x_*)}{N V} = \frac{1}{N V}\sum_{i=1}^N g(\bm x_* - \bm x_i)
|
|
\end{equation}
|
|
\begin{itemize}
|
|
\item Volumen $V = \int g(\bm u) d\bm u$
|
|
\item Summed Kernel activation $K(\bm x_*) = \sum_{i=1}^N g(\bm x_* - \bm x_i)$
|
|
\end{itemize}
|
|
|
|
\subsubsection{Parzen Window}%
|
|
\label{ssub:Parzen Window}
|
|
\begin{wrapfigure}{r}{.4\textwidth}
|
|
\centering
|
|
\includegraphics[width=0.8\linewidth]{parzen_window.png}
|
|
\caption{Parzen Window}
|
|
\label{fig:parzen_window}
|
|
\end{wrapfigure}
|
|
Das Parzen Window ist der einfachste Kernel,
|
|
der für eine Dichteabschätzung denkbar ist.
|
|
Hierbei wird ein Hyper-Würfel um den untersuchten Datenpunkt gelegt und anschließend die Dichte innerhalb des Würfels errechnet.
|
|
Die Kernelfunktion ist 1 für alle Punkte innerhalb des Hyper-Würfels und 0 außerhalb.
|
|
Diese Art der Dichteabschätzung ist zwar seh einfach zu errechnen,
|
|
produziert aber keinen besonders gleichmäßigen Verlauf.
|
|
\begin{itemize}
|
|
\item Kernel function:
|
|
\begin{equation} \label{eq:parzen_window_kernel_function}
|
|
g(\bm u) = \begin{cases} 1, &|u_j|\le \frac{h}{2}, j=1\dots d \\ 0, & \text{sonst} \end{cases}
|
|
\end{equation}
|
|
\item Volume:
|
|
\begin{equation} \label{eq:parzen_window_volume}
|
|
V = \int g(\bm u) d\bm u = h^d
|
|
\end{equation}
|
|
\item Estimated Density:
|
|
\begin{equation} \label{eq:parzen_window_density_estimation}
|
|
p(\bm x_*) \approx \frac{1}{N h^d}\sum_{i=1}^N g(\bm x_* - \bm x_i)
|
|
\end{equation}
|
|
\end{itemize}
|
|
|
|
\subsubsection{Gaussian Kernel}%
|
|
\label{ssub:Gaussian Kernel}
|
|
\includegraphics[scale=.6]{kernel_density_estimation_gaussian_kernel.png}\\\\
|
|
\includegraphics[scale=.6]{kernel_density_estimation_gaussian_kde_example.png}
|
|
|
|
\subsection{K-nearest Neighbor Density Estimation}%
|
|
\label{sub:K-nearest Neighbor Density Estimation}
|
|
\includegraphics[scale=.6]{k-nearest_neighbor_density_estimation.png}
|
|
|
|
\subsection{Model-Selection}%
|
|
\label{sub:Model-Selection}
|
|
Auch alle nicht-parametrisierten Modelle haben irgendeiner Form ein Model-Selection Problem
|
|
\begin{itemize}
|
|
\item \nameref{sub:Histograms}: Bin Size
|
|
\item \nameref{sub:Kernel Density Estimation}: Kernel Bandwidth $h$
|
|
\item \nameref{sub:K-nearest Neighbor Density Estimation}: Anzahl der Nachbarn $K$
|
|
\end{itemize}
|
|
Meistens wird versucht das Modell mithilfe von \dref{sub:Cross Validation} zu lösen.
|
|
|
|
\section{Mixture Models}%
|
|
\label{sec:Mixture Models}
|
|
Sowohl parametrische, als auch nicht-parametrische Modelle haben ihre Schwachstellen:
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[scale = .6]{parametric_nonparametric_density_estimation_comparison.png}
|
|
\caption{Vergleich von parametrischen und nicht-parametrischen Modellen}
|
|
\label{fig:parametric_nonparametric_density_estimation_comparison}
|
|
\end{figure}
|
|
Aus diesem Grund wurde Mixture Models erfunden,
|
|
welche es ermöglichen ein komplexes Modell auf Basis von einfachen Modellen zu erstellen.
|
|
Die Verteilung des Mixture Models berechnet sich hierbei als Summe der Teilverteilungen
|
|
\begin{equation} \label{eq:mixture_model_distribution}
|
|
p(\bm x) = \sum_{k=1}^K p(k)p(\bm x|k)
|
|
\end{equation}
|
|
\begin{itemize}
|
|
\item Mixture coefficient $p(k)$
|
|
\item k-th mixture componen $p(\bm x|k)$
|
|
\item Anzahl der Komponenten $K$
|
|
\end{itemize}
|
|
|
|
\subsection{\texorpdfstring{\glsxtrfullpl{GMM}}{\glsfmtfullpl{GMM}}}%
|
|
\label{sub:GMMs}
|
|
\includegraphics[scale = .6]{GMMs.png}\\
|
|
Die \glslink{marginal}{marginal} Log-Likelihood (\cref{sec:Example: Gaussian Distribution}) für $N$ \gls{iid} Datenpunkte ist gegeben durch
|
|
\begin{equation} \label{eq:maximum_likelihood_for_GMM}
|
|
\mathcal L = \log L(\bm\theta) = \sum_{i=1}^N \log \underbrace{p_{\bm\theta}(\bm x_i)}_{\text{marginal}}
|
|
= \sum_{i=1}^N \log \underbrace{\left( \sum_{k=1}^K \pi_k \nomeq{gaussian_distribution}(\bm x_i|\bm\mu_k,\nomeq{covariance}_k) \right)}_{\text{non-exponential family}}
|
|
\end{equation}
|
|
Um einen \dref{cha:Gradient Descent} auf diesen Daten durchzuführen,
|
|
muss geprüft werden,
|
|
ob sich diese Funktion differenzieren lässt.
|
|
\begin{align} \label{eq:GMM_gradient_descent}
|
|
\frac{\partial\mathcal L}{\partial \bm\mu_j}
|
|
&= \sum_{i=1}^N \frac{\pi_j\nomeq{gaussian_distribution}(\bm x_i|\bm\mu_j,\nomeq{covariance}_j)}
|
|
{\sum_{k=1}^K \pi_k\nomeq{gaussian_distribution}(\bm x_i|\bm\mu_k,\nomeq{covariance}_k)}\nomeq{covariance}_j^{-1}(\bm x_i - \bm\mu_j)\\
|
|
&= \dots \text{ \color{red} Herleitung Vorlesung 11 Folie 7 }\\
|
|
&= \sum_{i=1}^N \nomeq{covariance}_j^{-1} (\bm x_i - \bm\mu_j)p(j|\bm x_i)
|
|
\end{align}
|
|
Dies zeigt,
|
|
dass der Einsatz des \nameref{cha:Gradient Descent} Verfahrens (\cref{cha:Gradient Descent}) für \glspl{GMM} zwar möglich ist,
|
|
aber der Gradient von allen anderen Komponenten abhängig ist.
|
|
Zudem hat er keine \gls{closed_form_solution},
|
|
weshalb kein anderes (in der Vorlesung behandeltes) Verfahren als der \nameref{cha:Gradient Descent} in Frage kommt.
|
|
Leider ist hierbei die Konvergenz meist sehr langsam.
|
|
Die goto-Lösung für dieses Problem ist das \nameref{cha:Expectation Maximization} Verfahren (\cref{sec:Expectation Maximization for GMMs}).
|
|
|