diff --git a/regression/exercises/UT_WBMW_Black_RGB.pdf b/regression/exercises/UT_WBMW_Black_RGB.pdf new file mode 100644 index 0000000..9aed921 Binary files /dev/null and b/regression/exercises/UT_WBMW_Black_RGB.pdf differ diff --git a/regression/exercises/gradient_descent.tex b/regression/exercises/gradient_descent.tex new file mode 100644 index 0000000..bd103ec --- /dev/null +++ b/regression/exercises/gradient_descent.tex @@ -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}