diff --git a/Glossary.tex b/Glossary.tex index 0896ff9..10cea49 100644 --- a/Glossary.tex +++ b/Glossary.tex @@ -8,18 +8,38 @@ %-------------------- %main glossary %-------------------- -\newglossaryentry{example}{ - name=Example, - plural=Examples, - description={This is an example for a main glossary entry} +\newglossaryentry{overfitting}{ + name=Overfitting, + description={ + Eine Approximation ist overfitted, + wenn die Trainingsdaten sehr gut und Testdaten sehr schlecht approximiert werden. } +} +\newglossaryentry{underfitting}{ + name=Underfitting, + description={ + Eine Approximation ist underfitted, + wenn die Approximation so simple ist, + dass weder Trainings"~ noch Testdaten gut approximiert werden. + } +} + +\newglossaryentry{full_rank_matrix}{ + name = Full Rank Matrix, + description = { + \say{Ist der Rang einer quadratischen Matrix gleich ihrer Zeilen- und Spaltenzahl, hat sie vollen Rang und ist regulär (invertierbar). + Diese Eigenschaft lässt sich auch anhand ihrer Determinante feststellen. + Eine quadratische Matrix hat genau dann vollen Rang, wenn ihre Determinante von null verschieden ist bzw. keiner ihrer Eigenwerte null ist. + } (\url{https://de.wikipedia.org/wiki/Rang_(Mathematik)}) + } +} %-------------------- %acronyms %-------------------- \setabbreviationstyle[acronym]{long-short} -\newacronym{EXP}{EXP}{Example} +\newacronym{FRM}{FRM}{\gls{full_rank_matrix}} %-------------------- %nomenclature @@ -52,6 +72,9 @@ \newnom{summed_squared_error}{Summed Squared Error}{\text{SSE}}{}{} \newnom{gaussian_noise}{Gausches Rauschen}{\epsilon}{zufällige (normalverteilte) Abweichung}{} +\newnom{vector_valued_function}{vektorwertige Funktion}{\phi(\bm{x})}{vektorwertige Funktion der des Eingangsvektor $\bm{x}$}{} +\newnom{regularization_factor}{Regularisierungsfaktor}{\lambda}{}{} +\newnom{identity_matrix}{Identitätsmatrix}{\bm{I}}{$\begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & cdots & 0 \\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & 1 \end{bmatrix}$}{} \shorthandoff{"} diff --git a/ML_Zusammenfassung.tex b/ML_Zusammenfassung.tex index fc4af67..7c0f30f 100644 --- a/ML_Zusammenfassung.tex +++ b/ML_Zusammenfassung.tex @@ -5,6 +5,7 @@ top=35mm,right=20mm,bottom=30mm,left=20mm, headheight=25mm ]{geometry} +\setcounter{secnumdepth}{3} \input{Packages.tex} \input{Style.tex} @@ -33,7 +34,6 @@ \part{Classical Supervised Learning} \label{part:Classical Supervised Learning} \input{chapters/Classical_Supervised_Learning/Linear_Regression.tex} - \input{chapters/Classical_Supervised_Learning/Ridge_Regression.tex} \input{chapters/Classical_Supervised_Learning/Linear_Classification.tex} \input{chapters/Classical_Supervised_Learning/Model_Selection.tex} \input{chapters/Classical_Supervised_Learning/k-Nearest_Neighbors.tex} diff --git a/Packages.tex b/Packages.tex index feb2870..f9efc5b 100644 --- a/Packages.tex +++ b/Packages.tex @@ -20,6 +20,8 @@ \usepackage{float} %svg images \usepackage{svg} +%subfigures +\usepackage{subcaption} %-------------------- %german quotation diff --git a/chapters/Classical_Supervised_Learning/Linear_Regression.tex b/chapters/Classical_Supervised_Learning/Linear_Regression.tex index 9b5b27c..888de0c 100644 --- a/chapters/Classical_Supervised_Learning/Linear_Regression.tex +++ b/chapters/Classical_Supervised_Learning/Linear_Regression.tex @@ -158,8 +158,87 @@ Leitet man diese Formel nun ab, um die Gewichte $\bm{w}^*$ mit den minimalen \no \nabla_{\bm{w}}\nomeq{summed_squared_error}(\bm{w}) = \dfrac{\partial}{\partial\bm{w}}\left\{\bm{w}^T\bm{X}^T\bm{Xw} - 2\bm{y}^T\bm{Xw} + \bm{y}^T\bm{y}\right\} \end{equation} Durch das Gleichsetzen dieser Funktion mit 0 (Die Ableitung einer quadratischen Funktion am Scheitelpunkt) erhält man: -\begin{equation} +\begin{equation} \label{eq:linear_regression_solution} \bm{w}^* = (\bm{X}^T\bm{X})^{-1}\bm{X}^T\bm{y} \end{equation} -Weiter auf Seite 92 +\section{Generalisierung der linearen Regression}% +\label{sec:Generalisierung der linearen Regression} +Die bisher dargestellte Form der linearen Regression ist lediglich dazu in der Lage eine lineare Hyper-Ebene in einem D-dimensionalen Eingaberaum zu errechnen. +Um die lineare Regression auch in anderen Anwendungen verwenden zu können ist es nötig eine \nomf{vector_valued_function} zu definieren, +welche dafür sorgen, +dass auch nicht-lineare Eingabevektoren $\bm{x}$ mithilfe der linearen Regression analysiert werden können. +Die Ergebnisformel für die lineare Regression bleibt hierbei nahezu gleiche, +wobei $\bm{X} = \begin{bmatrix} \tilde{\bm{x}}^T_1 \\\vdots\\\tilde{\bm{x}}^T_n \end{bmatrix}$ (siehe \cref{eq:linear_regression_solution}) durch $\bm{\Phi} = \begin{bmatrix} \phi_1^T\\\vdots\\\phi_n^T \end{bmatrix}$ ersetzt wird: +\begin{equation} \label{eq:generalized_linear_regression} + \bm{w}^* = (\bm{\Phi}^T\bm{\Phi})^{-1}\bm{\Phi}^T\bm{y} +\end{equation} +Dies ermöglicht es mittels der linearen Regression auch jede nicht-lineare Funktion zu lernen, +indem eine passende \nomf{vector_valued_function} gefunden wird. + +\subsection{Beispiele}% +\label{sub:Beispiele} +\subsubsection{Polynomial Curve Fitting}% +\label{ssub:Polynomial Curve Fitting} +\begin{wrapfigure}{r}{.4\textwidth} + \vspace*{-20mm} + \centering + \includegraphics[width=0.7\linewidth]{images/polynomial_curve_fitting.png} + \caption{polynomiale Kurvenanpassung}% + \label{fig:polynomial_curve_fitting} + \vspace*{-30mm} +\end{wrapfigure} +Durch die Generalisierung der linearen Regression ist die Kurvenanpassung an eine polynomiale Funktion möglich. +So lässt sich die lineare Regression für eine Funktion 3. Grades mithilfe von $\nomeq{vector_valued_function} = \begin{bmatrix} 1\\x\\x^2\\x^3 \end{bmatrix}$ und $\bm{w} = \begin{bmatrix} w_0\\w_1\\w_2\\w_3 \end{bmatrix}$errechnen. + +\subsubsection{Multiple Linear Regression and Fitting a Quadratic Form}% +\label{ssub:Multiple Linear Regression} +Da eine Hyper-Ebene nicht immer eine gute Approximation der Daten darstellt (siehe \cref{fig:plane-linear-regression}), +ist es oft sinnvoll die Eingabedaten mittels \nomsym{vector_valued_function} umzuwandeln (siehe \cref{fig:quadratic-form-linear-regression}). +\begin{figure}[H] + \begin{subfigure}[t]{.5\textwidth} + \includegraphics[width=\textwidth]{images/multiple_linear_regression1.png} + \caption{$\bm{w}=\begin{bmatrix} w_0\\w_1\\w_2 \end{bmatrix}, \nomeq{vector_valued_function} = \begin{bmatrix} 1\\x_1\\x_2 \end{bmatrix}$} + \label{fig:plane-linear-regression} + \end{subfigure}% + \begin{subfigure}[t]{.5\textwidth} + \includegraphics[width=\textwidth]{images/multiple_linear_regression2.png} + \caption{$\bm{w}=\begin{bmatrix} w_0\\w_1\\w_2\\w_3\\w_4 \end{bmatrix}, \nomeq{vector_valued_function} = \begin{bmatrix} 1\\x_1\\x_2\\x_1^2\\x_2^2 \end{bmatrix}$} + \label{fig:quadratic-form-linear-regression} + \end{subfigure} + \caption{Lineare Regression mit 2-dimensionalen Eingangsdaten}% + \label{fig:2-d-linear-regression} +\end{figure} + +\section{Regularization}% +\label{sec:Regularization} +Bei der Auswertung einer polynomialen Funktion (\cref{ssub:Polynomial Curve Fitting}) muss der Polynomialgrad der \nomf{vector_valued_function} hoch genug gewählt werden, +damit die lineare Regression kein kleineres Polynom als die echte Grundfunktion verwendet (\gls{underfitting}). +Allerdings darf der Grad des Polynoms auch nicht so hoch gewählt werden, +dass die durch lineare Regression erlernte Funktion jeden Trainingsdatenpunkt perfekt abbildet (\gls{overfitting}). +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{images/polynomial_linear_regression_overfitting.png} + \caption{Beispielhaftes Verhältnis für ein Verhältnis vom Grad des Polynoms und \nomsym{summed_squared_error}}% + \label{fig:poynomial_linear_regression_overfitting} +\end{figure} +Um dies zu verhindern kommt die Regularisierung zum Einsatz. +Diese verfolgt das Ziel, +die Gewichte $\bm{w}$ möglichst klein zu halten um ein \gls{overfitting} zu verhindern. +Hierbei wird die datenabhängige Fehlerfunktion der Gewichte $E_D(\bm{w})$ um einen Regularisierungsterm $\nomeq{regularization_factor} E_W(\bm{w})$ erweitert. +Hierbei ist \nomsym{regularization_factor} der \noms{regularization_factor}, +welcher meist manuell ausgewählt werden muss. + +\subsection{Ridge Regression}% +\label{sub:Ridge Regression} +Die Regularisierung des \nomf{summed_squared_error} mithilfe eines quadratischen Regularisierungsterms ergibt folgende Verlustfunktion (Loss-Function): +\begin{equation} \label{eq:ridge_regression_loss} + L_{\text{ridge}} = (\bm{y}-\bm{\Phi w})^T(\bm{y}-\bm{\Phi w}) + \nomeq{regularization_factor}\bm{w}^T\bm{w} +\end{equation} +Diese spezielle Regularisierung wird auch als Ridge Regression bezeichnet. +Die Regressionsgleichung ist hierbei gegeben durch: +\begin{equation} \label{eq:ridge_regression_solution} + \bm{w}^*_{\text{ridge}} = (\bm{\Phi}^T\bm{\Phi} + \nomeq{regularization_factor}\nomeq{identity_matrix})^{-1}\bm{\Phi}^T\bm{y} +\end{equation} +Da die Matrix $(\bm{\Phi}^T\bm{\Phi} + \nomeq{regularization_factor}\nomeq{identity_matrix})$ eine \gls{FRM} ist, +kann sie leicht invertiert werden. diff --git a/chapters/Classical_Supervised_Learning/Ridge_Regression.tex b/chapters/Classical_Supervised_Learning/Ridge_Regression.tex deleted file mode 100644 index a213dcb..0000000 --- a/chapters/Classical_Supervised_Learning/Ridge_Regression.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{Ridge Regression}% -\label{cha:Ridge Regression} - diff --git a/images/multiple_linear_regression1.png b/images/multiple_linear_regression1.png new file mode 100644 index 0000000..6873cbf Binary files /dev/null and b/images/multiple_linear_regression1.png differ diff --git a/images/multiple_linear_regression2.png b/images/multiple_linear_regression2.png new file mode 100644 index 0000000..53151e7 Binary files /dev/null and b/images/multiple_linear_regression2.png differ diff --git a/images/polynomial_curve_fitting.png b/images/polynomial_curve_fitting.png new file mode 100644 index 0000000..2489209 Binary files /dev/null and b/images/polynomial_curve_fitting.png differ diff --git a/images/polynomial_linear_regression_overfitting.png b/images/polynomial_linear_regression_overfitting.png new file mode 100644 index 0000000..9bef43d Binary files /dev/null and b/images/polynomial_linear_regression_overfitting.png differ