117 lines
5.8 KiB
TeX

\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.