diff --git a/Glossary.tex b/Glossary.tex index 594acaa..eee6410 100644 --- a/Glossary.tex +++ b/Glossary.tex @@ -66,10 +66,13 @@ %-------------------- \setabbreviationstyle[acronym]{long-short} +\newacronym{SSE}{SSE}{Summed Squared Error} +\newacronym{MSE}{MSE}{Mean Squared Error} \newacronym{FRM}{FRM}{\gls{full_rank_matrix}} \newacronym{MLE}{MLE}{Maximum Likelihood Estimation} \newacronym{iid}{iid}{\gls{identically_independently_distributed}} \newacronym{SDG}{SDG}{Stochastic Gradient Descent} +\newacronym{LLO}{LLO}{Leave-One-Out} %-------------------- %nomenclature @@ -100,7 +103,8 @@ %use nomenclature entry (use in equation) \newcommand{\nomeq}[1]{\glslink{#1}{\glsentrysymbol{#1}}} -\newnom{summed_squared_error}{Summed Squared Error}{\text{SSE}}{}{} +\newnom{summed_squared_error}{\gls{SSE}}{\text{\glsxtrshort{SSE}}}{\glsxtrfull{SSE}}{} +\newnom{mean_squared_error}{\gls{MSE}}{\text{\glsxtrshort{MSE}}}{\glsxtrfull{MSE}}{} \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}{}{} diff --git a/chapters/Classical_Supervised_Learning/Linear_Classification.tex b/chapters/Classical_Supervised_Learning/Linear_Classification.tex index b7ee6bd..2c64be6 100644 --- a/chapters/Classical_Supervised_Learning/Linear_Classification.tex +++ b/chapters/Classical_Supervised_Learning/Linear_Classification.tex @@ -283,7 +283,8 @@ Das Problem kann hierbei mithilfe des 1-Hot-Encodings als eine Conditional Multi \paragraph{Gradient}% \label{par:multiclass_classification:Gradient} -\begin{alignat*}{2} \label{eq:multiclass_classification:Gradient} + +\begin{alignat}{2} \label{eq:multiclass_classification:Gradient} &\frac{\partial\loss_i}{\partial\bm{w}_k} &&= \frac{\partial}{\partial \bm{w}_k}\left(\sum_{k=1}^K\bm{h}_{c_i,k}\bm{w}_k^T\bm{\phi}(\bm{x}_i) - \log\left( \sum_{j=1}^K\exp(\bm{w}_j^T\bm{\phi}(\bm{x}_i))\right) \right)\\ & &&= \dots\text{ \color{red} siehe Übung 2 Aufgabe 1.1 }\\ @@ -291,5 +292,5 @@ Das Problem kann hierbei mithilfe des 1-Hot-Encodings als eine Conditional Multi \Leftrightarrow&\frac{\partial\loss_i}{\partial\bm{w}} &&= - \sum_i^N \left( \bm h_{i,k} \bm \phi(\bm x_i) - \dfrac{\exp(\bm w_k^T\bm \phi(\bm x_i))}{\sum_j^K \exp(\bm w^T_j \bm \phi(\bm x_i))} \bm \phi(\bm x_i) \right) \\ & &&= -\sum_i^N \bm \phi(\bm x_i) \left( h_{i,k} - p_{i,k} \right) -\end{alignat*} +\end{alignat} diff --git a/chapters/Classical_Supervised_Learning/Model_Selection.tex b/chapters/Classical_Supervised_Learning/Model_Selection.tex index a6bdab0..320c9b8 100644 --- a/chapters/Classical_Supervised_Learning/Model_Selection.tex +++ b/chapters/Classical_Supervised_Learning/Model_Selection.tex @@ -1,3 +1,116 @@ \chapter{Model Selection}% \label{cha:Model Selection} +Für jedes Problem existiert eine Vielzahl von Lösungsansätzen. +Für jedes Model muss entschieden werden, +wie komplex dieses aufgebaut werden soll. +Die einstellbaren Parameter hängen hierbei vom Algorithmus ab: +\begin{itemize} + \item \textbf{Linear Regression:} number of features, regularization coefficient + \item \textbf{Decision Trees:} maximum depth, number of leaves + \item \textbf{Neural Networks:} number of layers, number of neurons + \item \textbf{Support Vector Machine:} which features, regularization + \item \textbf{Gaussian Processes:} kernel bandwith +\end{itemize} +Die Auswahl des passenden Algorithmus' mit zugehörigen Parametern wird als Model Selection Problem bezeichnet. +Es ist eines der fundamentalsten Probleme des Machine Learnings. + +\section{True Risk vs. Empirical Risk}% +\label{sec:True Risk vs. Empirical Risk} +\includegraphics[width=.7\textwidth]{true_vs_empirical_risk.png} + +\subsection{Bias"~Variance Decomposition}% +\label{sub:Bias"~Variance Decomposition} +Expected Loss = True Risk\\ +\includegraphics[width=.9\textwidth]{bias-variance_decomposition.png} + +\subsubsection{Understanding True Risk}% +\label{ssub:Understanding True Risk} +Um den Zusammenhang von Bias"~Variance Decomposition und True Risk zu verstehen, +wird die Zerteilung im folgenden am Beispiel der Regression gezeigt. +\begin{itemize} + \item Die Eingangsdaten ergeben sich aus der realen Basisfunktion $f(\bm{x})$ und der zufälligen Störung $\epsilon$ + $$y=f(\bm{x}) + \epsilon,\qquad\epsilon\sim\mathcal{N}(0,\nomeq{variance})$$ + \item Der Expected Loss $R(\hat{f}_{D_n})$ der auf den Daten $D_n$ trainierten Funktion $\hat{f}_{D_n}$ ist gegeben durch: + \begin{align} \label{eq:bias-variance_decomposition} + R(\hat{f}_{D_n})&=\mathbb{E}_{D_n}\left[\mathbb{E}_{x,y}\left[(\hat{f}_{D_n}(\bm{x})-y)^2\right]\right]\\ + &=\underbrace{\mathbb{E}_{D_n}\left[\mathbb{E}_{x,y}\left[(\hat{f}_{D_n}(\bm{x})-\hat{f}_*(\bm x))^2\right]\right]}_{\text{Variance}} + + \underbrace{\mathbb{E}_{\bm x}\left[(\hat{f}_{D_n}(\bm{x})-\hat{f}_*(\bm x))^2\right]}_{\text{Bias}^2} + \underbrace{\nomeq{variance}}_{\text{Noise}} + \end{align} + Hierbei ist $\hat{f}_*(\bm x) = \mathbb{E}_{D_n}[\hat{f}_{D_n}(\bm x)]$ der durchschnittliche Erwartungswert über alle möglichen Datensätze der Größe $n$. + Dies entspricht der bestmöglichen Approximation, + die mit der verwendeten Funktion $f$ möglich ist. +\end{itemize} + +\section{Over"~ vs. Underfitting}% +\label{sec:Over- vs. Underfitting} +\includegraphics[width=.9\textwidth]{over_vs_underfitting.png} + +\section{Bias"~Variance Trade"=off}% +\label{sec:Bias-Variance Trade-off} +\includegraphics[width=.9\textwidth]{bias-variance_trade-off.png} + +\section{Evaluation Methods}% +\label{sec:Evaluation Methods} +Wie in \cref{sec:Over- vs. Underfitting} und \cref{sec:True Risk vs. Empirical Risk} gezeigt wurde, +ist die Empirical Risk kein guter Maßstab für die Bewertung von Modellen. +Daher werden andere Methoden benötigt um Modelle zu bewerten. + +\subsection{Hold"=out Mehtod}% +\label{sub:Hold-out Mehtod} +Bei der Hold"=out Methode werden die gegebenen Datenpunkte in einen Trainings"~ und einen Validierungsdatensatz unterteilt. +Letzterer Wird dafür genutzt, +die trainierten Modelle zu bewerten. +\begin{mybox} + \textbf{\large Hold"=out Procedure}\\ + gegeben: ein Datensatz $D=\{(\bm{x}_i,y_i)\}_{i=1}^n$ bestehend aus $n$ Datenpunkten + \begin{enumerate} + \item Datensatz in einen Trainingsdatensatz $D_T$ und einen Validierungsdatensatz $D_V$ aufsplitten: + $$D_T = \{(\bm{x}_i,y_i)\}_{i=1}^m\qquad D_V=\{(\bm{x}_i,y_i)\}_{i=m+1}^n$$ + \item $\hat{f}_{D_T}$ für jede Modell-Klasse $M$ ermitteln + \item $hat{f}_{D_T}$ auf dem Validierungsdatensatz evaluieren. z.B.: + $$\nomeq{mean_squared_error}(D_V,\hat{f}_{D_T} = \frac{1}{n-m}\sum_{i=m+1}^n (\hat{f}_{D_T}(\bm{x}_i) - y_i)^2$$ + \item Modell mit dem besten Validation Loss wählen + \end{enumerate} +\end{mybox} +Diese Methode hat allerdings zwei Nachteile: +\begin{enumerate} + \item ein Teil der Daten wird nicht genutzt (nur zur Validierung) + \item \say{unglückliche} Trainings"~Valiedierung Aufteilung der Daten kann das Ergebnis verfälschen (z.B. bei sortierten Datenpunkten) +\end{enumerate} + +\subsection{Cross Validation}% +\label{sub:Cross Validation} +Um die Nachteile der \nameref{sub:Hold-out Mehtod} zu umgehen wird meist die Cross Validation verwendet +\begin{mybox} + \begin{wrapfigure}{r}{.5\linewidth} + \centering + \includegraphics[width=.9\linewidth]{cross_validation.png} + \caption{Cross Validation} + \label{fig:cross_validation} + \end{wrapfigure} + + \textbf{\large Cross Validation Procedure}\\ + gegeben: ein Datensatz $D=\{(\bm{x}_i,y_i)\}_{i=1}^n$ bestehend aus $n$ Datenpunkten + \begin{enumerate} + \item Datensatz in $k$ Partitionen unterteilen + $$D_1 = \{(\bm{x}_i,y_i)\}_{i=1}^{\frac{n}{k}}, D_2=\{(\bm{x}_i,y_i)\}_{i=\frac{n}{k}+1}^{2 \frac{n}{k}}, \dots$$ + \item Wiederholtes Anwenden der \nameref{sub:Hold-out Mehtod} auf den Datensatz, + wobei immer eine andere Partition als Validierungsdatensatz dient + \end{enumerate} +\end{mybox} + +\subsubsection{Sonderformen der Cross Validation}% +\label{ssub:Sonderformen der Cross Validation} + \paragraph{\glsxtrfull{LLO} Cross Validation}% + \label{par:LLO Cross Validation} + Sonderform, bei der $k=n$, + wodurch es genau so viele Durchläufe wie Datenpunkte gibt + und immer ein Datenpunkt zur Validierung genutzt wird. + + \paragraph{Random sub-sampling}% + \label{par:Random sub-sampling} + Sonderform, bei der eine Zufällige Teilmenge $\alpha\cdot n$ ($0<\alpha<1$) aus den gegebenen Daten als Validierungsdatensatz verwendet wird. + Oft wird dieses Verfahren mehrmals in folge durchgeführt. + + diff --git a/images/bias-variance_decomposition.png b/images/bias-variance_decomposition.png new file mode 100644 index 0000000..10b2c51 Binary files /dev/null and b/images/bias-variance_decomposition.png differ diff --git a/images/bias-variance_trade-off.png b/images/bias-variance_trade-off.png new file mode 100644 index 0000000..fdd8ab3 Binary files /dev/null and b/images/bias-variance_trade-off.png differ diff --git a/images/cross_validation.png b/images/cross_validation.png new file mode 100644 index 0000000..18d2070 Binary files /dev/null and b/images/cross_validation.png differ diff --git a/images/over_vs_underfitting.png b/images/over_vs_underfitting.png new file mode 100644 index 0000000..056a280 Binary files /dev/null and b/images/over_vs_underfitting.png differ diff --git a/images/true_vs_empirical_risk.png b/images/true_vs_empirical_risk.png new file mode 100644 index 0000000..10e06f2 Binary files /dev/null and b/images/true_vs_empirical_risk.png differ