first steps of the gradient descent chapter
This commit is contained in:
parent
51f3cad5ee
commit
520acdabcb
@ -1,6 +1,11 @@
|
|||||||
function error = lsq_error(parameter, x, y)
|
function error = lsq_error(parameter, x, y)
|
||||||
% parameter(1) is the slope
|
% Objective function for fitting a linear equation to data.
|
||||||
% parameter(2) is the intercept
|
%
|
||||||
|
% 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);
|
y_est = x .* parameter(1) + parameter(2);
|
||||||
error = mean((f_x - y).^2);
|
error = meanSquareError(y, y_est);
|
||||||
|
9
regression/code/mean_square_error.m
Normal file
9
regression/code/mean_square_error.m
Normal 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);
|
@ -222,7 +222,7 @@
|
|||||||
\end{column}
|
\end{column}
|
||||||
\begin{column}{7cm}
|
\begin{column}{7cm}
|
||||||
\begin{enumerate}
|
\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.
|
kleinsten quadratischen Abweichungen.
|
||||||
\item Es wird versucht die Summe der quadratischen Abweichung zu
|
\item Es wird versucht die Summe der quadratischen Abweichung zu
|
||||||
minimieren.
|
minimieren.
|
||||||
|
@ -1,3 +1,165 @@
|
|||||||
\chapter{\tr{Optimization and Gradient Descent}{Optimierung und Gradientenabstiegsverfahren}}
|
\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}
|
||||||
|
|
||||||
|
@ -15,22 +15,15 @@
|
|||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\part{Grundlagen des Programmierens}
|
\part{Grundlagen des Programmierens}
|
||||||
|
|
||||||
\graphicspath{{programming/lectures/}{programming/lectures/images/}}
|
\graphicspath{{programming/lectures/}{programming/lecture/images/}}
|
||||||
\lstset{inputpath=programming/code}
|
\lstset{inputpath=programming/code}
|
||||||
\include{programming/lectures/programming}
|
\include{programming/lecture/programming}
|
||||||
|
|
||||||
|
|
||||||
\graphicspath{{plotting/lecture/}{plotting/lecture/images/}}
|
\graphicspath{{plotting/lecture/}{plotting/lecture/images/}}
|
||||||
\lstset{inputpath=plotting/code/}
|
\lstset{inputpath=plotting/code/}
|
||||||
\include{plotting/lecture/plotting}
|
\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}
|
\part{Grundlagen der Datenanalyse}
|
||||||
|
|
||||||
@ -55,4 +48,13 @@
|
|||||||
\renewcommand{\texinputpath}{pointprocesses/lecture/}
|
\renewcommand{\texinputpath}{pointprocesses/lecture/}
|
||||||
\include{pointprocesses/lecture/pointprocesses}
|
\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}
|
\end{document}
|
||||||
|
Reference in New Issue
Block a user