Dimensionality Reduction hinzugefügt.

This commit is contained in:
paul-loedige 2022-02-18 21:24:26 +01:00
parent 6bb66b91cd
commit efcd027d12
7 changed files with 158 additions and 20 deletions

View File

@ -61,6 +61,7 @@
% {{{ acronyms%
\setabbreviationstyle[acronym]{long-short}
\newacronym{PCA}{PCA}{Principal Component Analysis}
\newacronym{GRU}{GRU}{Gated Recurrent Units}
\newacronym{LSTM}{LSTM}{Long-term Short-term Memory}
\newacronym{BPTT}{BPTT}{Backpropagation through time}
@ -142,6 +143,7 @@
\newnom{gaussian_process}{Gaußscher Prozess}{\mathcal{GP}}{}
\newnom{hyper_parameters}{Hyper"~Parameter}{\bm{\beta}}{}
\newnom{activation_function}{Aktivierungsfunktion}{\phi}{}
\newnom{dirac_delta}{Dirac Delta Function}{\delta}{$\delta_{ij} = \begin{cases} 1, &\text{ if }i = j\\ 0, &\text{ sonst } \end{cases}}
% }}} %
\shorthandoff{"}

View File

@ -18,38 +18,39 @@
\def \DATE{\today}
\includeonly{
%Einleitu%ng
% %Einleitung
%chapters/Einleitung,
%%Classical_Supervised_Learning
% %Classical_Supervised_Learning
%chapters/Classical_Supervised_Learning/Linear_Regression,
%chapters/Classical_Supervised_Learning/Linear_Classification,
%chapters/Classical_Supervised_Learning/Model_Selection,
%chapters/Classical_Supervised_Learning/k-Nearest_Neighbors,
%chapters/Classical_Supervised_Learning/Trees_and_Forests,
%%Kernel_Methods
% %Kernel_Methods
%chapters/Kernel_Methods/Kernel-Regression,
%chapters/Kernel_Methods/Support_Vector_Machines,
%chapters/Bayesian_Learning/Bayesian_Learning,
%chapters/Bayesian_Learning/Bayesian_Regression_Algorithms,
%Neural_Networks
chapters/Neural_Networks/Basics,
chapters/Neural_Networks/Gradient_Descent,
chapters/Neural_Networks/Regularization,
chapters/Neural_Networks/Practical_Considerations,
chapters/Neural_Networks/CNN,
chapters/Neural_Networks/RNN,
%Classical%_Unsupervised_Learning
%chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering,
%chapters/Classical_Unsupervised_Learning/Density_Estimation_and_Mixture_Models,
%chapters/Classical_Unsupervised_Learning/Variational_Auto-Encoders,
%%Mathematische_Grundlagen
% %Neural_Networks
%chapters/Neural_Networks/Basics,
%chapters/Neural_Networks/Gradient_Descent,
%chapters/Neural_Networks/Regularization,
%chapters/Neural_Networks/Practical_Considerations,
%chapters/Neural_Networks/CNN,
%chapters/Neural_Networks/RNN,
% %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/Variational_Auto-Encoders,
% %Mathematische_Grundlagen
%chapters/Mathematische_Grundlagen/Lineare_Algebra,
%chapters/Mathematische_Grundlagen/Probability_Theory,
%chapters/Mathematische_Grundlagen/Kernel_Basics,
%chapters/Mathematische_Grundlagen/Sub-Gradients,
%chapters/Mathematische_Grundlagen/Constraint_Optimization,
%chapters/Mathematische_Grundlagen/Gaussian_Identities,
%%Anhang
% %Anhang
%Appendix
}
@ -96,7 +97,8 @@
\part{Classical Unsupervised Learning}
\label{part:Classical Unsupervised Learning}
\include{chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering.tex}
\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/Variational_Auto-Encoders.tex}

View File

@ -2,6 +2,7 @@
##TODO:
- [ ] Folien aus der Vorlesung, auf die in der Zusammenfassung verwiesen werden einfach in den Anhang packen
- [ ] für alle \nameref prüfen, ob eine richtige Referenz nachfolgen sollte.
## Notice
Requires you to enable [--shell escape](https://tex.stackexchange.com/questions/516604/how-to-enable-shell-escape-or-write18-visual-studio-code-latex-workshop)

View File

@ -0,0 +1,3 @@
\chapter{Clustering}%
\label{cha:Clustering}

View File

@ -0,0 +1,123 @@
\chapter{Dimensionality Reduction}%
\label{cha:Dimensionality Reduction}
Das Ziel der Dimensionality Reduction ist es,
einen Datensatz mit vielen Features (hohe Dimensionalität) zu vereinfachen.
Dies ist vor allem dann hilfreich,
wenn die Daten visualisiert werden.
Zudem ist es ein guter Preprocessing Schritt für andere ML-Algorihmen.
Ein Beispiel hierfür ist die \nameref{cha:Linear Regression},
bei welcher eine Invertierung einer Matrix von nöten ist,
deren Größe von der Dimension der Datenpunkte abhängt.
Ist diese Dimension reduziert ergibt sich daraus logischerweise ein geringerer Rechenaufwand.
\section{Linear Dimensionality Reduction}%
\label{sec:Linear Dimensionality Reduction}
Bei der Linear Dimensionality Reduction wird versucht,
Features zu entfernen,
indem diese durch Linearkombinationen anderer Features ersetzt\slash\,approximiert werden.
Es ist also das Ziel ein lineares Mapping zu finden,
dass einen Datenpunkt $\bm x_i\in D$ auf einen neuen Datenpunkt $\bm z_i\in M$ abbildet ($D>>M$)
\begin{equation}
\label{eq:linear_dimensionality_reduction}
\bm z_i = \bm W \bm x_i\text{ mit }\bm W \in \mathbb{R}^{M\times D}
\end{equation}
Wir wissen,
dass sich jeder Vektor $\bm x$ in Bezug zu einem Orthonormal Basis Coordinate System definieren lässt.
Hierbei ergibt sich der Vektor durch
\begin{equation} \label{eq:orthonormal_basis_representation}
\bm x \sum_{i=1}^D z_i\bm u_i
\end{equation}
\begin{itemize}
\item $\bm u_i$ sind Basisvektoren
\item $\bm u_i^T\bm u_j = \nomeq{dirac_delta}_{ij}$
\item Das Produkt von zwei Basisvektoren ist 0
\item die Norm eines Basisvektors ist 1
\item $z_i$ ist der Scalar Coefficient und kann durch die Projektion von $\bm x$ auf den jeweiligen Basisvektor ermittelt werden
\begin{equation} \label{eq:scalar_coefficient}
z_i = \bm u_i^T\bm x
\end{equation}
\end{itemize}
Um die Dimensionalität zu reduzieren ist es nun entscheidend,
nur die Basisvektoren zu verwenden,
die den geringsten Einfluss auf $\bm x$ haben
\begin{equation} \label{eq:linear_dimensionality_reduction_decomposition}
\bm x = \underbrace{\sum_{i=1}^M z_i\bm u_i}_{\tilde{\bm x}\approx\bm x} + \underbrace{\sum_{j=M+1}^D z_j\bm u_j}_{\text{wird gestrichen}}
\end{equation}
Anders gesagt,
es wird die Teilmenge von Basisvektoren gesucht,
die den geringsten Reproduction Error haben.\\(hier: Mean Squared Reproduction Error)
\begin{equation} \label{eq:mean_squared_reproduction_error}
\argmin_{\bm u_1,\dots,\bm u_M} E(\bm u_1,\dots,\bm u_M) = \argmin_{\bm u_1,\dots,\bm u_M}\sum_{i=1}^N \|\bm x_i - \tilde{\bm x_i}\|^2
\end{equation}
\section{Minimizing the Error}%
\label{sec:Minimizing the Error}
Für einen einzelnen Basisvektor $\bm u_i$ ist lässt sich der Error durch
\begin{align} \label{eq:single_basis_vector_error}
E(\bm u_1) &= \sum_{i=1}^N \| \bm x_i - \tilde{\bm x_i} \|^2 \\
&= \dots\text{ {\color{red} Herleitung in Gesamtfoliensatz Folie 650} } \\
&= \sum_{i=1}^N\bm x_i^T\bm x_i - z_{i1}^2\\
&\Rightarrow \argmin_{\bm u_1}E(\bm u_1)
= \argmax_{\bm u_1}\sum_{i=1}^N z_{i1}^2
= \argmax_{\bm u_1} \sum_{i=1}^N(\bm u_1^T\bm x_i)^2
\end{align}
Hierdurch wird gezeigt,
dass die Minimierung des Errors,
wenn $\nomeq{mean} = 0$,
gleichbedeutend mit der Maximierung der Varianz der Projektion ist.
$\nomeq{mean}=0$ kann sichergestellt werden,
indem $\bm x$ durch $\overline{\bm x}_i = \bm x_i -\bm\mu$ ersetzt wird.
\subsection{\texorpdfstring{\glsxtrfull{PCA}}{\glsfmtfull{PCA}}}%
\label{sub:PCA}
\begin{mybox}
\textbf{\Large \glsxtrfull{PCA}}\\
\begin{enumerate}
\item Daten zentrieren (Durchschnitt berechnen und von den Daten subtrahieren)
\item \noms{covariance} errechnen, in Eigendekomposition zerlegen und die $M$ größten Eigenwerte und zugehörigen Eigenvektoren ermitteln
\item Die ermittelten Eigenvektoren sind die Basisvektoren der neuen Darstellung
\item Projektion mithilfe von $\bm W = \begin{bmatrix} \bm u_1 & \cdots & \bm u_M \end{bmatrix}$
\begin{itemize}
\item zur kleinen Dimension: \tabto{3cm}$\bm z_i = \bm W^T(\bm x_i - \bm\mu)$
\item zur großen Dimension: \tabto{3cm}$\bm \tilde{\bm x}_i = \bm\mu + \bm W\bm z_i$
\end{itemize}
\end{enumerate}
\end{mybox}
Das Verfahren zur Ermittlung der Basisvektoren welche die Varianz Maximieren wird als \gls{PCA} bezeichnet
und ist ein sehr bekannter Algorithmus,
welcher vor allem zur Datenvorverarbeitung für andere ML-Algorithmen verwendet wird.
Der erste Basisvektor,
welcher auch als \say{first principal direction} bezeichnet wird,
ist definiert als
\begin{equation} \label{eq:PCA}
\bm u_1 = \argmax_{\bm u}\frac{1}{N}\sum_{i=1}^N (\bm u^T \underbrace{(\bm x_i -\bm\mu)}_{\overline{\bm x}_i})^2
\end{equation}
Die \say{second principal direction} ist der Basisvektor,
welcher als orthogonales Komplement des ersten Basisvektor die Varianz maximiert.
Das Maximierungsproblem kann in eine \nameref{cha:Constraint Optimization} (\cref{cha:Constraint Optimization}) umgeschrieben werden (Herleitung: {\color{red} Gesamtfoliensatz Folie 653}).
\begin{equation} \label{eq:PCA_constrained_optimization}
\bm u_1 = \argmax_{\bm u} \bm u^T\nomeq{covariance}\bm u
\end{equation}
Mithilfe der Lagrangian Optimization (\ref{sec:Lagrangian Multipliers}) ergibt sich hieraus der Optimale Zustand für $\bm u$
\begin{equation} \label{eq:PCA_optimal_condition}
\nomeq{covariance}\bm u = \lambda\bm u
\end{equation}
Hierbei handelt sich um ein Eigenwertproblem,
bei dem der der größte Eigenwert die maximale Varianz und der zugehörige Eigenvektor (\cref{sec:Eigenwerte und Eigenvektoren}) den Basisvektor mit der maximalen Varianz vorgibt.
Alle Eigenwerte $\lambda_k\approx 0$ sind hierbei die Dimensionen,
die ohne signifikante Änderung der Daten weggelassen werden können.\\
(Annahme: nach Größe sortierte Eigenwerte und $k>M$)
\begin{equation} \label{eq:PCA_solution}
\bm x_i - \bm\mu = \underbrace{\sum_{j=1}^M z_{ij}\bm u_j}_{\tilde{\bm x}} + \underbrace{\sum_{j=M+1}^D z_{ij}\bm u_j}_{\approx 0}
\Rightarrow \bm x_i\approx \bm\mu + \sum_{j=1}^M z_{ij}\bm u_j
\end{equation}
Die Schwelle $M$ kann hierbei Wahlweise durch Ausprobieren oder durch eine Schwelle für die minimale Varianz (z.B. $\eta = 0.9$) gewählt werden.
\begin{equation} \label{eq:M_selection}
\text{wähle $M$, sodass }\sum_{i=1}^M \lambda_i = \eta\sum_{i=1}^D\lambda_i
\end{equation}
\subsubsection{Anwendungsbeispiele}%
\label{ssub:PCA:Anwendungsbeispiele}
{\color{red} Gesamtfoliensatz Folien 661 - 667}

View File

@ -1,3 +0,0 @@
\chapter{Dimensionality Reduction and Clustering}%
\label{cha:Dimensionality Reduction and Clustering}

View File

@ -88,3 +88,13 @@
\end{itemize}
\section{Eigenwerte und Eigenvektoren}%
\label{sec:Eigenwerte und Eigenvektoren}
Jede positiv definite, symmetrische Matrix ($\bm v^T \bm A \bm v > 0 \forall \bm v\ne0\in\mathbb{R}^n$) lässt sich in ihre Eigendekomposition zerlegen.
\begin{equation} \label{eq:eigendecomposition}
\bm C = \bm U\bm\Lambda\bm U^T
= \underbrace{\begin{bmatrix} \bm u_1 & \cdots & \bm u_D \end{bmatrix}}_{Eigenvektoren}
\underbrace{\begin{bmatrix} \lambda_1 & & \\ &\ddots & \\ & & \lambda_D \end{bmatrix}}_{Eigenwerte}
\begin{bmatrix} \bm u_1^T\\\vdots\\\bm u_D^T \end{bmatrix}
\end{equation}
{\color{red} Berechnung: siehe Zusammenfassung Mathe 3}