first steps of the gradient descent chapter

This commit is contained in:
Jan Grewe 2015-11-08 01:53:49 +01:00
parent 51f3cad5ee
commit 520acdabcb
5 changed files with 192 additions and 14 deletions

View File

@ -1,6 +1,11 @@
function error = lsq_error(parameter, x, y)
% parameter(1) is the slope
% parameter(2) is the intercept
% Objective function for fitting a linear equation to data.
%
% Arguments: parameter, vector containing slope and intercept (1st and 2nd element)
% x, the input values
% y, the measured system output
%
% Retruns: the estimation error in terms of the mean sqaure error
f_x = x .* parameter(1) + parameter(2);
error = mean((f_x - y).^2);
y_est = x .* parameter(1) + parameter(2);
error = meanSquareError(y, y_est);

View File

@ -0,0 +1,9 @@
function error = meanSquareError(y, y_est)
% Function calculates the mean sqauare error between observed and predicted values.
%
% Agruments: y, the observed values
% y_est, the predicted values.
%
% Returns: the error in the mean-square-deviation sense.
error = mean((y - y_est).^2);

View File

@ -222,7 +222,7 @@
\end{column}
\begin{column}{7cm}
\begin{enumerate}
\item Die am h\"aufigstern Angewandte Methode ist die der
\item Die am h\"aufigsten angewandte Methode ist die der
kleinsten quadratischen Abweichungen.
\item Es wird versucht die Summe der quadratischen Abweichung zu
minimieren.

View File

@ -1,3 +1,165 @@
\chapter{\tr{Optimization and Gradient Descent}{Optimierung und Gradientenabstiegsverfahren}}
Ein sehr \"ubliches Problem ist, dass die Abh\"angigkeit von
Messwerten von einem Input Parameter durch ein Modell erkl\"art werden
soll. Die Frage ist, wie man die beste Parametrisierung des Modells
findet. Den Prozess der Prarmeteranpassung nennt man auch Optimierung
oder English Fitting. Betrachtet man zum Beispiel die Punktewolke in
Abbildung \ref{linregressiondatafig} liegt es nahe einen
(verrauschten) linearen Zusammenhang zwischen Einganggr\"{\ss}e
(Input) und Systemantwort (output) zu postulieren.
\begin{figure}
\includegraphics[width=0.45\columnwidth]{lin_regress.pdf}
\caption{\textbf{Blick auf die Rohdaten.} F\"ur eine Reihe von
Eingangswerten, z.B. Stimulusintensit\"aten wurden die Antworten
eines Systems gemessen.}\label{linregressiondatafig}
\end{figure}
Wir nehmen an, dass die lineare Geradengleichung ein guten Modell
f\"ur das zugrundeliegende System ist.
\[f_{m,n}(x) = m\cdot x + n \]
wobei $x$ die Eingangswerte, $f_{m,n}(x)$ die Systemantwort, $m$ die Steigung
und $n$ der y-Achsenabschnitt darstellen (Abbildung
\ref{linregressionslopeintersectfig}). In dieser Gleichung gibt es nur zwei Parameter
und es wird die Kombination von Steigung ($m$) und y-Achsenabschnitt
($n$) gesucht, die die Systemantwort am besten vorhersagen.
\begin{figure}
\begin{minipage}[t]{0.45\columnwidth}
\includegraphics[width=\textwidth]{figures/lin_regress_slope.pdf}
\end{minipage}
\begin{minipage}[t]{0.45\columnwidth}
\includegraphics[width=\textwidth]{figures/lin_regress_abscissa.pdf}
\end{minipage}
\caption{\textbf{Ver\"anderungen der Parameter und ihre Folgen.} Die
linke Abbildung zeigt den Effekt einer Ver\"anderung der Steigung
w\"ahrend die reche Abbildung die Ver\"anderung des
y-Achsenabschnittes
illustriert. }\label{linregressionslopeintersectfig}
\end{figure}
Wie wird nun die optimale Kombination aus Steigung und y-Achsenabschnitt gefunden?
\section{Methode der kleinsten Quadratischen Abweichung}
Um die optimale Parameterkombination zu finden muss zun\"achst ein
Ma{\ss} f\"ur den Unterschied zwischen den tats\"achlich gemessenen
und den unter Verwendung eines Parametersatzes vorhergesagten Werten
definiert werden. Eine der am h\"aufigsten verwendeten
Fehlersch\"atzungen ist der \emph{mittlere qaudratische Abstand} (im
Englischen auch mean square error genannt, Abbildung \ref{leastsquareerrorfig}).
\[ e = \frac{1}{N}\sum^{N}_{1=1} \left( y_i - y^{est}_i)\right )^2\]
wobei $e$ der Fehler, $N$ die Anzahl gemessener Datenpunkte $y_i$ die
Messwerte und $y^{est}_i$ die Vorhersagewerte an den enstprechenden
Stellen sind.
\begin{figure}
\includegraphics[width=0.5\columnwidth]{figures/linear_least_squares.pdf}
\caption{\textbf{Ermittlung des Mittleren quadratischen Abstands.}
Der Abstand zwischen der Vorhersage und dem Modell wird f\"ur
jeden gemessenen Datenpunkt ermittelt. Die Differenz zwischen
Messwert und Vorhersage wird quadriert, was zum einen das
Vorzeichen einer Abweichung entfernt und zum anderen gro{\ss}e
Abweichungen \"uberproportional st\"arker bestraft als
kleine. Quelle:
\url{http://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)}} \label{leastsquareerrorfig}
\end{figure}
\begin{exercise}{mean_square_error.m}{}
Schreibt eine Funktion, die die mittlere quardatische Abweichung
zwischen den beobachteten Werten $y$ und der Vorhersage $y_{est}$
berechnet.
\end{exercise}
\section{Zielfunktion --- Objective function}
Schliesst man in die Fehlerfunktion von oben die Vorhersage des Modells
mit ein spricht man von der Zielfunktion oder Englisch ``objective
function'':
\[e(m,n) = \frac{1}{N}\sum^{N}_{1=1} \left( y_i - f_{m,
n}(x_i)\right )^2\]
Das Ziel der Parameteranpassung ist es, den Fehler zu minimieren, die
Passung zu Optimieren.
\begin{exercise}{lsq_error.m}{}
Implementiere die Zielfunktion (\code{lsq\_error}) f\"ur die
Optimierung mit der linearen Geradengleichung.
\begin{itemize}
\item Die Funktion \"ubernimmt drei Argumente: das erste ist ein
2-elementiger Vektor, der die Parameter \code{m} und \code{n}
enth\"alt. Der zweite sind die x-Werte, an denen gemessen wurde
und der dritte die zugeh\"origen y-Werte.
\item Die Funktion gibt den Fehler zur\"uck.
\end{itemize}
\end{exercise}
\section{Fehlerfl\"ache}
Die beiden Parameter $m$ und $n$ spanngen eine 2-dimensionale F\"ache
auf. F\"ur jede Kombination aus $m$ und $n$ erhalten wir
Vorhersagewerte, die von den gemessenen Werten abweichen. Es gibt also
f\ur jeden Punkt in der sogenannten \emph{Fehlerfl\"ache} einen
Fehler. In diesem Beispiel kann man die Fehlerfl\"ache graphisch durch
einen 3-d ``surface-plot'' darstellen. Wobei auf der x- und y-Achse
die beiden Parameter und auf der z-Achse der Fehlerwert aufgetragen
wird (Abbildung \ref{errorsurfacefig}).
\begin{figure}
\includegraphics[width=0.5\columnwidth]{figures/surface.pdf}
\caption{\textbf{Fehlerfl\"ache.} }\label{errorsurfacefig}
\end{figure}
\textbf{Aufgabe}
\begin{enumerate}
\item Ladet den Datensatz \textit{lin\_regression.mat} in den
Workspace. Wie sehen die Daten aus?
\item Schreibt eine Funktion \code{lsq\_error}, die den Fehler
brechnet:
\begin{itemize}
\item \"Ubernimmt einen 2-elementigen Vektor, der die Parameter
\code{m} und \code{n} enth\"alt, die x-Werte und y-Werte.
\item Die Funktion gibt den Fehler zur\"uck.
\end{itemize}
\item Schreibt ein Skript dass den Fehler in Abh\"angigkeit von
\code{m} und \code{n} als surface plot darstellt (\code{surf}
Funktion).
\item Wie k\"onnen wir diesen Plot benutzen um die beste Kombination
zu finden?
\item Wo lieft die beste Kombination?
\end{enumerate}
\section{Gradient}
\begin{itemize}
\item Wie findet man die Extrempunkte in einer Kurve?\pause
\item Ableitung der Funktion auf Null setzen und nach x aufl\"osen.
\item Definition der Ableitung:\\ \vspace{0.25cm}
\begin{center}
$ f'(x) = \lim\limits_{h \rightarrow 0} \frac{f(x + h) - f(x)}{h} $
\vspace{0.25cm}\pause
\end{center}
\item Bei zwei Parametern $g(m,n)$ k\"onnen wie die partielle
Ableitung bez\"uglich eines Parameters benutzen um die
Ver\"anderung des Fehlers bei Ver\"anderung eines Parameters
auszuwerten.
\item Partielle Ableitung nach \code{m}?\\\pause
\vspace{0.25cm}
\begin{center}
$\frac{\partial g(m,n)}{\partial m} = \lim\limits_{h \rightarrow 0} \frac{g(m + h, n) - g(m,n)}{h}$
\vspace{0.25cm}
\end{center}
\end{itemize}
\section{Der Gradientenabstieg}

View File

@ -15,22 +15,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Grundlagen des Programmierens}
\graphicspath{{programming/lectures/}{programming/lectures/images/}}
\graphicspath{{programming/lectures/}{programming/lecture/images/}}
\lstset{inputpath=programming/code}
\include{programming/lectures/programming}
\include{programming/lecture/programming}
\graphicspath{{plotting/lecture/}{plotting/lecture/images/}}
\lstset{inputpath=plotting/code/}
\include{plotting/lecture/plotting}
\graphicspath{{designpattern/lecture/}{designpattern/lecture/figures/}}
\lstset{inputpath=designpattern/code}
\include{designpattern/lecture/designpattern}
\chapter{Cheat-Sheet}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Grundlagen der Datenanalyse}
@ -55,4 +48,13 @@
\renewcommand{\texinputpath}{pointprocesses/lecture/}
\include{pointprocesses/lecture/pointprocesses}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Appendix: }
\graphicspath{{designpattern/lecture/}{designpattern/lecture/figures/}}
\lstset{inputpath=designpattern/code}
\include{designpattern/lecture/designpattern}
\chapter{Cheat-Sheet}
\end{document}