forked from TH_General/Template_Summary
167 lines
8.0 KiB
TeX
167 lines
8.0 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.
|
|
|
|
\section{Regularization Techniques}%
|
|
\label{sec:Regularization Techniques}
|
|
Wie bereits in \cref{sec:Regularization of the Linear Regression} und \cref{ssub:Regularization of the Logistic Regression} gezeigt,
|
|
kann eine Regularisierung genutzt werden,
|
|
um Overfitting zu vermeiden.
|
|
Hierbei ist es das Ziel die Komplexität so gering wie möglich zu halten.
|
|
\begin{mybox}
|
|
\textbf{\large Occam's Razor} \\
|
|
\say{Numquam ponenda est pluralitas sine necessitate} - William of Occam (ca. 1300)\\
|
|
Von mehreren möglichen hinreichenden Erklärungen für ein und denselben Sachverhalt ist die einfachste Theorie allen anderen vorzuziehen.
|
|
\end{mybox}
|
|
Um dies zu erreichen wird der Loss Function,
|
|
welche für das Lernen benutzt wird eine Penalty für hohe Komplexität hinzugefügt.
|
|
\begin{figure}[H]
|
|
\vspace*{-10mm}
|
|
\centering
|
|
\includegraphics[width=0.9\textwidth]{regularization_penalty.pdf}
|
|
\caption{Regularization Penalties}
|
|
\label{fig:regularization_penalty}
|
|
\end{figure}
|
|
|
|
\subsection{Early Stopping}%
|
|
\label{sub:Early Stopping}
|
|
Das Early Stopping ist eine Regulaisierungstechnik,
|
|
bei der die Optimierung des Algorithmus unterbrochen wird,
|
|
sobald sich der Validation Loss über eine festgelegte Anzahl von Durchläufen des Algorithmus nicht verbessert hat.
|
|
Hierdurch wird vermieden,
|
|
dass Modell unnötig komplex zu machen.
|
|
|
|
\section{Robustness to Noise}%
|
|
\label{sec:Robustness to Noise}
|
|
Um das Traininierte Modell Robuster gegenüber Störeinflüssen (Noise) zu machen,
|
|
ist es sinnvoll die Daten,
|
|
auf denen das Modell trainiert wird künstlich zu stören.
|
|
Man spricht hierbei von Data Augmentation.
|
|
\begin{figure}[H]
|
|
\begin{subfigure}[t]{.5\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{artificial_noise1.png}
|
|
\caption{mögl. Diskriminanten ohne künstlichen Noise}
|
|
\label{fig:regression_without_artifical_noise}
|
|
\end{subfigure}
|
|
\begin{subfigure}[t]{.5\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{artificial_noise2.png}
|
|
\caption{mögl. Diskriminanten mit künstlichen Noise}
|
|
\label{fig:regression_without_artifical_noise}
|
|
\end{subfigure}
|
|
\caption{Einfluss von künstlichen Noise}
|
|
\label{fig:artificial_noise}
|
|
\end{figure}
|
|
|