From efcd027d1217d9ca255a637c925b87d9f1835d0b Mon Sep 17 00:00:00 2001 From: paul-loedige Date: Fri, 18 Feb 2022 21:24:26 +0100 Subject: [PATCH] =?UTF-8?q?Dimensionality=20Reduction=20hinzugef=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Glossary.tex | 2 + ML_Zusammenfassung.tex | 36 ++--- Readme.md | 1 + .../Clustering.tex | 3 + .../Dimensionality_Reduction.tex | 123 ++++++++++++++++++ ...imensionality_Reduction_and_Clustering.tex | 3 - .../Lineare_Algebra.tex | 10 ++ 7 files changed, 158 insertions(+), 20 deletions(-) create mode 100644 chapters/Classical_Unsupervised_Learning/Clustering.tex create mode 100644 chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction.tex delete mode 100644 chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering.tex diff --git a/Glossary.tex b/Glossary.tex index cdb6ebd..0ad6c1a 100644 --- a/Glossary.tex +++ b/Glossary.tex @@ -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{"} diff --git a/ML_Zusammenfassung.tex b/ML_Zusammenfassung.tex index e569b0c..fc8cd5f 100644 --- a/ML_Zusammenfassung.tex +++ b/ML_Zusammenfassung.tex @@ -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} diff --git a/Readme.md b/Readme.md index 11e6c43..9433c27 100644 --- a/Readme.md +++ b/Readme.md @@ -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) diff --git a/chapters/Classical_Unsupervised_Learning/Clustering.tex b/chapters/Classical_Unsupervised_Learning/Clustering.tex new file mode 100644 index 0000000..96ed888 --- /dev/null +++ b/chapters/Classical_Unsupervised_Learning/Clustering.tex @@ -0,0 +1,3 @@ +\chapter{Clustering}% +\label{cha:Clustering} + diff --git a/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction.tex b/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction.tex new file mode 100644 index 0000000..1e08292 --- /dev/null +++ b/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction.tex @@ -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} diff --git a/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering.tex b/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering.tex deleted file mode 100644 index 605c5a0..0000000 --- a/chapters/Classical_Unsupervised_Learning/Dimensionality_Reduction_and_Clustering.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{Dimensionality Reduction and Clustering}% -\label{cha:Dimensionality Reduction and Clustering} - diff --git a/chapters/Mathematische_Grundlagen/Lineare_Algebra.tex b/chapters/Mathematische_Grundlagen/Lineare_Algebra.tex index 8cd549f..71823b1 100644 --- a/chapters/Mathematische_Grundlagen/Lineare_Algebra.tex +++ b/chapters/Mathematische_Grundlagen/Lineare_Algebra.tex @@ -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}