new exercise for gradient descent
This commit is contained in:
parent
55387889a8
commit
b1af8126ff
BIN
regression/exercises/UT_WBMW_Black_RGB.pdf
Normal file
BIN
regression/exercises/UT_WBMW_Black_RGB.pdf
Normal file
Binary file not shown.
82
regression/exercises/gradient_descent.tex
Normal file
82
regression/exercises/gradient_descent.tex
Normal file
@ -0,0 +1,82 @@
|
||||
\documentclass[12pt,a4paper,pdftex]{exam}
|
||||
|
||||
\usepackage[german]{babel}
|
||||
\usepackage{natbib}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[small]{caption}
|
||||
\usepackage{sidecap}
|
||||
\usepackage{pslatex}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\setlength{\marginparwidth}{2cm}
|
||||
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
||||
|
||||
%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
||||
\pagestyle{headandfoot} \header{{\bfseries\large \"Ubung
|
||||
}}{{\bfseries\large Gradientenabstiegsverfahren}}{{\bfseries\large 10. Januar, 2017}}
|
||||
\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email:
|
||||
jan.grewe@uni-tuebingen.de} \runningfooter{}{\thepage}{}
|
||||
|
||||
\setlength{\baselineskip}{15pt}
|
||||
\setlength{\parindent}{0.0cm}
|
||||
\setlength{\parskip}{0.3cm}
|
||||
\renewcommand{\baselinestretch}{1.15}
|
||||
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
\renewcommand{\solutiontitle}{\noindent\textbf{L\"osung:}\par\noindent}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\vspace*{-6.5ex}
|
||||
\begin{center}
|
||||
\textbf{\Large Einf\"uhrung in die wissenschaftliche
|
||||
Datenverarbeitung}\\[1ex] {\large Jan Grewe, Jan Benda}\\[-3ex]
|
||||
Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur
|
||||
Neurobiologie \hfill --- \hfill
|
||||
\includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
|
||||
\end{center}
|
||||
|
||||
\begin{questions}
|
||||
\question Implementiere den Gradientenabstieg f\"ur das Problem der
|
||||
Parameteranpassung der linearen Geradengleichung an die Messdaten in
|
||||
der Datei \emph{lin\_regression.mat}.
|
||||
|
||||
Die daf\"ur ben\"otigten Zutaten haben wir aus den vorangegangenen
|
||||
\"Ubungen bereits vorbereitet. Wir brauchen: 1. Die Fehlerfunktion
|
||||
(\code{meanSquareError()}), 2. die Zielfunktion (\code{lsqError()})
|
||||
und 3. den Gradienten (\code{lsqGradient()}). Der Algorithmus f\"ur
|
||||
den Abstieg lautet:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Starte mit einer beliebigen Parameterkombination $p_0 = (m_0,
|
||||
b_0)$.
|
||||
\item \label{computegradient} Berechne den Gradienten an der
|
||||
akutellen Position $p_i$.
|
||||
\item Wenn die L\"ange des Gradienten einen bestimmten Wert
|
||||
unterschreitet, haben wir das Minum gefunden und k\"onnen die
|
||||
Suche abbrechen. Wir suchen ja das Minimum, bei dem der Gradient
|
||||
gleich Null ist. Da aus numerischen Gr\"unden der Gradient nie
|
||||
exakt Null werden wird, k\"onnen wir nur fordern, dass er
|
||||
hinreichend klein wird (z.B. \code{norm(gradient) < 0.1}).
|
||||
\item \label{gradientstep} Gehe einen kleinen Schritt ($\epsilon =
|
||||
0.01$) in die entgegensetzte Richtung des Gradienten:
|
||||
\[p_{i+1} = p_i - \epsilon \cdot \nabla f_{cost}(m_i, b_i)\]
|
||||
\item Wiederhole die Schritte \ref{computegradient} --
|
||||
\ref{gradientstep}.
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\begin{parts}
|
||||
\part Implementiere den Gradientenabstieg und merke Dir f\"ur jeden Schritt
|
||||
die Parameterkombination und den zugehörigen Fehler.
|
||||
\part Erstelle einen Plot der die Originaldaten sowie die Vorhersage mit der
|
||||
besten Parameterkombination darstellt.
|
||||
\part Stelle in einem weiteren Plot die Entwicklung des Fehlers als Funktion der
|
||||
Optimierungsschritte dar.
|
||||
\end{parts}
|
||||
|
||||
\end{questions}
|
||||
|
||||
\end{document}
|
Reference in New Issue
Block a user