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