Model Evaluation hinzugefügt.

This commit is contained in:
paul-loedige 2022-02-12 17:45:06 +01:00
parent 61ea298cd7
commit 6c0161abd9
8 changed files with 121 additions and 3 deletions

View File

@ -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}{}{}

View File

@ -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}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
images/cross_validation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB