diff --git a/Glossary.tex b/Glossary.tex index c001d0d..efc49e4 100644 --- a/Glossary.tex +++ b/Glossary.tex @@ -87,6 +87,7 @@ \newacronym{ELU}{ELU}{Exponential Linear Units} \newacronym{GPU}{GPU}{Graphic Processing Unit} \newacronym{RMS}{RMS}{Root Mean Square} +\newacronym{GMM}{GMM}{Gaussian Mixture Model} % }}} % diff --git a/ML_Zusammenfassung.tex b/ML_Zusammenfassung.tex index fc8cd5f..0e785ff 100644 --- a/ML_Zusammenfassung.tex +++ b/ML_Zusammenfassung.tex @@ -41,7 +41,7 @@ % %Classical_Unsupervised_Learning chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction, chapters/Classical_Unsupervised_Learning/Clustering, - chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models, + chapters/Classical_Unsupervised_Learning/Density_Estimation, chapters/Classical_Unsupervised_Learning/Variational_Auto-Encoders, % %Mathematische_Grundlagen %chapters/Mathematische_Grundlagen/Lineare_Algebra, @@ -99,7 +99,7 @@ \label{part:Classical Unsupervised Learning} \include{chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction.tex} \include{chapters/Classical_Unsupervised_Learning/Clustering.tex} - \include{chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models.tex} + \include{chapters/Classical_Unsupervised_Learning/Density_Estimation.tex} \include{chapters/Classical_Unsupervised_Learning/Variational_Auto-Encoders.tex} \part{Mathematische Grundlagen} diff --git a/chapters/Classical_Unsupervised_Learning/Density_Estimation.tex b/chapters/Classical_Unsupervised_Learning/Density_Estimation.tex new file mode 100644 index 0000000..9c36775 --- /dev/null +++ b/chapters/Classical_Unsupervised_Learning/Density_Estimation.tex @@ -0,0 +1,134 @@ +\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. \nameref{sub:Gaussian Distribution}(\cref{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 \nameref{sec:Curse of Dimensionality}(\cref{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 \nameref{sub:Cross Validation} (\cref{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} diff --git a/chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models.tex b/chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models.tex deleted file mode 100644 index acf71b6..0000000 --- a/chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{Density Estimation and Mixture Models}% -\label{cha:Density Estimation and Mixture Models} - diff --git a/images/GMMs.png b/images/GMMs.png new file mode 100644 index 0000000..5310730 Binary files /dev/null and b/images/GMMs.png differ diff --git a/images/histogram.png b/images/histogram.png new file mode 100644 index 0000000..31af593 Binary files /dev/null and b/images/histogram.png differ diff --git a/images/k-nearest_neighbor_density_estimation.png b/images/k-nearest_neighbor_density_estimation.png new file mode 100644 index 0000000..f98d5f7 Binary files /dev/null and b/images/k-nearest_neighbor_density_estimation.png differ diff --git a/images/kernel_density_estimation_gaussian_kde_example.png b/images/kernel_density_estimation_gaussian_kde_example.png new file mode 100644 index 0000000..d588f6a Binary files /dev/null and b/images/kernel_density_estimation_gaussian_kde_example.png differ diff --git a/images/kernel_density_estimation_gaussian_kernel.png b/images/kernel_density_estimation_gaussian_kernel.png new file mode 100644 index 0000000..e26c7ac Binary files /dev/null and b/images/kernel_density_estimation_gaussian_kernel.png differ diff --git a/images/parametric_nonparametric_density_estimation_comparison.png b/images/parametric_nonparametric_density_estimation_comparison.png new file mode 100644 index 0000000..9c0f022 Binary files /dev/null and b/images/parametric_nonparametric_density_estimation_comparison.png differ diff --git a/images/parzen_window.png b/images/parzen_window.png new file mode 100644 index 0000000..54734fb Binary files /dev/null and b/images/parzen_window.png differ