Lineare Regression beendet.

This commit is contained in:
2022-02-09 23:07:41 +01:00
parent 3025564597
commit b362f6fed5
9 changed files with 112 additions and 11 deletions

View File

@@ -158,8 +158,87 @@ Leitet man diese Formel nun ab, um die Gewichte $\bm{w}^*$ mit den minimalen \no
\nabla_{\bm{w}}\nomeq{summed_squared_error}(\bm{w}) = \dfrac{\partial}{\partial\bm{w}}\left\{\bm{w}^T\bm{X}^T\bm{Xw} - 2\bm{y}^T\bm{Xw} + \bm{y}^T\bm{y}\right\}
\end{equation}
Durch das Gleichsetzen dieser Funktion mit 0 (Die Ableitung einer quadratischen Funktion am Scheitelpunkt) erhält man:
\begin{equation}
\begin{equation} \label{eq:linear_regression_solution}
\bm{w}^* = (\bm{X}^T\bm{X})^{-1}\bm{X}^T\bm{y}
\end{equation}
Weiter auf Seite 92
\section{Generalisierung der linearen Regression}%
\label{sec:Generalisierung der linearen Regression}
Die bisher dargestellte Form der linearen Regression ist lediglich dazu in der Lage eine lineare Hyper-Ebene in einem D-dimensionalen Eingaberaum zu errechnen.
Um die lineare Regression auch in anderen Anwendungen verwenden zu können ist es nötig eine \nomf{vector_valued_function} zu definieren,
welche dafür sorgen,
dass auch nicht-lineare Eingabevektoren $\bm{x}$ mithilfe der linearen Regression analysiert werden können.
Die Ergebnisformel für die lineare Regression bleibt hierbei nahezu gleiche,
wobei $\bm{X} = \begin{bmatrix} \tilde{\bm{x}}^T_1 \\\vdots\\\tilde{\bm{x}}^T_n \end{bmatrix}$ (siehe \cref{eq:linear_regression_solution}) durch $\bm{\Phi} = \begin{bmatrix} \phi_1^T\\\vdots\\\phi_n^T \end{bmatrix}$ ersetzt wird:
\begin{equation} \label{eq:generalized_linear_regression}
\bm{w}^* = (\bm{\Phi}^T\bm{\Phi})^{-1}\bm{\Phi}^T\bm{y}
\end{equation}
Dies ermöglicht es mittels der linearen Regression auch jede nicht-lineare Funktion zu lernen,
indem eine passende \nomf{vector_valued_function} gefunden wird.
\subsection{Beispiele}%
\label{sub:Beispiele}
\subsubsection{Polynomial Curve Fitting}%
\label{ssub:Polynomial Curve Fitting}
\begin{wrapfigure}{r}{.4\textwidth}
\vspace*{-20mm}
\centering
\includegraphics[width=0.7\linewidth]{images/polynomial_curve_fitting.png}
\caption{polynomiale Kurvenanpassung}%
\label{fig:polynomial_curve_fitting}
\vspace*{-30mm}
\end{wrapfigure}
Durch die Generalisierung der linearen Regression ist die Kurvenanpassung an eine polynomiale Funktion möglich.
So lässt sich die lineare Regression für eine Funktion 3. Grades mithilfe von $\nomeq{vector_valued_function} = \begin{bmatrix} 1\\x\\x^2\\x^3 \end{bmatrix}$ und $\bm{w} = \begin{bmatrix} w_0\\w_1\\w_2\\w_3 \end{bmatrix}$errechnen.
\subsubsection{Multiple Linear Regression and Fitting a Quadratic Form}%
\label{ssub:Multiple Linear Regression}
Da eine Hyper-Ebene nicht immer eine gute Approximation der Daten darstellt (siehe \cref{fig:plane-linear-regression}),
ist es oft sinnvoll die Eingabedaten mittels \nomsym{vector_valued_function} umzuwandeln (siehe \cref{fig:quadratic-form-linear-regression}).
\begin{figure}[H]
\begin{subfigure}[t]{.5\textwidth}
\includegraphics[width=\textwidth]{images/multiple_linear_regression1.png}
\caption{$\bm{w}=\begin{bmatrix} w_0\\w_1\\w_2 \end{bmatrix}, \nomeq{vector_valued_function} = \begin{bmatrix} 1\\x_1\\x_2 \end{bmatrix}$}
\label{fig:plane-linear-regression}
\end{subfigure}%
\begin{subfigure}[t]{.5\textwidth}
\includegraphics[width=\textwidth]{images/multiple_linear_regression2.png}
\caption{$\bm{w}=\begin{bmatrix} w_0\\w_1\\w_2\\w_3\\w_4 \end{bmatrix}, \nomeq{vector_valued_function} = \begin{bmatrix} 1\\x_1\\x_2\\x_1^2\\x_2^2 \end{bmatrix}$}
\label{fig:quadratic-form-linear-regression}
\end{subfigure}
\caption{Lineare Regression mit 2-dimensionalen Eingangsdaten}%
\label{fig:2-d-linear-regression}
\end{figure}
\section{Regularization}%
\label{sec:Regularization}
Bei der Auswertung einer polynomialen Funktion (\cref{ssub:Polynomial Curve Fitting}) muss der Polynomialgrad der \nomf{vector_valued_function} hoch genug gewählt werden,
damit die lineare Regression kein kleineres Polynom als die echte Grundfunktion verwendet (\gls{underfitting}).
Allerdings darf der Grad des Polynoms auch nicht so hoch gewählt werden,
dass die durch lineare Regression erlernte Funktion jeden Trainingsdatenpunkt perfekt abbildet (\gls{overfitting}).
\begin{figure}[H]
\centering
\includegraphics[width=0.6\linewidth]{images/polynomial_linear_regression_overfitting.png}
\caption{Beispielhaftes Verhältnis für ein Verhältnis vom Grad des Polynoms und \nomsym{summed_squared_error}}%
\label{fig:poynomial_linear_regression_overfitting}
\end{figure}
Um dies zu verhindern kommt die Regularisierung zum Einsatz.
Diese verfolgt das Ziel,
die Gewichte $\bm{w}$ möglichst klein zu halten um ein \gls{overfitting} zu verhindern.
Hierbei wird die datenabhängige Fehlerfunktion der Gewichte $E_D(\bm{w})$ um einen Regularisierungsterm $\nomeq{regularization_factor} E_W(\bm{w})$ erweitert.
Hierbei ist \nomsym{regularization_factor} der \noms{regularization_factor},
welcher meist manuell ausgewählt werden muss.
\subsection{Ridge Regression}%
\label{sub:Ridge Regression}
Die Regularisierung des \nomf{summed_squared_error} mithilfe eines quadratischen Regularisierungsterms ergibt folgende Verlustfunktion (Loss-Function):
\begin{equation} \label{eq:ridge_regression_loss}
L_{\text{ridge}} = (\bm{y}-\bm{\Phi w})^T(\bm{y}-\bm{\Phi w}) + \nomeq{regularization_factor}\bm{w}^T\bm{w}
\end{equation}
Diese spezielle Regularisierung wird auch als Ridge Regression bezeichnet.
Die Regressionsgleichung ist hierbei gegeben durch:
\begin{equation} \label{eq:ridge_regression_solution}
\bm{w}^*_{\text{ridge}} = (\bm{\Phi}^T\bm{\Phi} + \nomeq{regularization_factor}\nomeq{identity_matrix})^{-1}\bm{\Phi}^T\bm{y}
\end{equation}
Da die Matrix $(\bm{\Phi}^T\bm{\Phi} + \nomeq{regularization_factor}\nomeq{identity_matrix})$ eine \gls{FRM} ist,
kann sie leicht invertiert werden.

View File

@@ -1,3 +0,0 @@
\chapter{Ridge Regression}%
\label{cha:Ridge Regression}