diff --git a/header.tex b/header.tex index f233f22..e100d4b 100644 --- a/header.tex +++ b/header.tex @@ -279,6 +279,9 @@ % content of someoutput.out % % Within the exercise environment enumerate is redefined to generate (a), (b), (c), ... +% +% The boolean showexercisesolutions controls whether solutions for the exercises +% are actually included. \usepackage{mdframed} \usepackage{xstring} \newlistof{exercisef}{loe}{\tr{Exercises}{\"Ubungen}} diff --git a/likelihood/lecture/likelihood.tex b/likelihood/lecture/likelihood.tex index f4c12c4..91ba87f 100644 --- a/likelihood/lecture/likelihood.tex +++ b/likelihood/lecture/likelihood.tex @@ -28,7 +28,7 @@ den Parametern $\theta$. Wenn nun den $n$ unabh\"angigen Beobachtungen $x_1, x_2, \ldots x_n$ die gleiche Wahrscheinlichkeitsverteilung $p(x|\theta)$ zugrundeliegt -(\enterm{i.i.d.} idependent and identically distributed), dann ist die +(\enterm{i.i.d.} independent and identically distributed), dann ist die Verbundwahrscheinlichkeit $p(x_1,x_2, \ldots x_n|\theta)$ des Auftretens der Werte $x_1, x_2, \ldots x_n$, gegeben ein bestimmtes $\theta$, @@ -71,14 +71,14 @@ Gr\"unden wird meistens das Maximum der logarithmierten Likelihood Wenn die Me{\ss}daten $x_1, x_2, \ldots x_n$ der Normalverteilung \eqnref{normpdfmean} entstammen, und wir den Mittelwert $\mu=\theta$ als einzigen Parameter der Verteilung betrachten, welcher Wert von -$\theta$ maximiert dessen Likelhood? +$\theta$ maximiert dessen Likelihood? \begin{figure}[t] \includegraphics[width=1\textwidth]{mlemean} \titlecaption{\label{mlemeanfig} Maximum Likelihood Sch\"atzung des Mittelwerts.}{Oben: Die Daten zusammen mit drei m\"oglichen Normalverteilungen mit unterschiedlichen Mittelwerten (Pfeile) aus - denen die Daten stammen k\"onnten. Unteln links: Die Likelihood + denen die Daten stammen k\"onnten. Unten links: Die Likelihood in Abh\"angigkeit des Mittelwerts als Parameter der Normalverteilungen. Unten rechts: die entsprechende Log-Likelihood. An der Position des Maximums bei $\theta=2$ @@ -91,15 +91,15 @@ Die Log-Likelihood \eqnref{loglikelihood} ist & = & \sum_{i=1}^n \log \frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{(x_i-\theta)^2}{2\sigma^2}} \\ & = & \sum_{i=1}^n - \log \sqrt{2\pi \sigma^2} -\frac{(x_i-\theta)^2}{2\sigma^2} \; . \end{eqnarray*} -Der Logarithmus hat die sch\"one Eigenschaft die Exponentialfunktion +Der Logarithmus hat die sch\"one Eigenschaft, die Exponentialfunktion der Normalverteilung auszul\"oschen, da der Logarithmus die Umkehrfunktion der Exponentialfunktion ist ($\log(e^x)=x$). Zur Bestimmung des Maximums der Log-Likelihood berechnen wir deren Ableitung nach dem Parameter $\theta$ und setzen diese gleich Null: \begin{eqnarray*} - \frac{\text{d}}{\text{d}\theta} \log {\cal L}(\theta|x_1,x_2, \ldots x_n) & = & \sum_{i=1}^n \frac{2(x_i-\theta)}{2\sigma^2} \;\; = \;\; 0 \\ - \Leftrightarrow \quad \sum_{i=1}^n x_i - \sum_{i=1}^n x_i \theta & = & 0 \\ + \frac{\text{d}}{\text{d}\theta} \log {\cal L}(\theta|x_1,x_2, \ldots x_n) & = & \sum_{i=1}^n - \frac{2(x_i-\theta)}{2\sigma^2} \;\; = \;\; 0 \\ + \Leftrightarrow \quad \sum_{i=1}^n x_i - \sum_{i=1}^n \theta & = & 0 \\ \Leftrightarrow \quad n \theta & = & \sum_{i=1}^n x_i \\ \Leftrightarrow \quad \theta & = & \frac{1}{n} \sum_{i=1}^n x_i \;\; = \;\; \bar x \end{eqnarray*} @@ -188,12 +188,12 @@ und setzen diese gleich Null: \Leftrightarrow \quad \theta & = & \frac{\sum_{i=1}^n \frac{x_iy_i}{\sigma_i^2}}{ \sum_{i=1}^n \frac{x_i^2}{\sigma_i^2}} \label{mleslope} \end{eqnarray} Damit haben wir nun einen anlytischen Ausdruck f\"ur die Bestimmung -der Steigung $\theta$ des Regressionsgeraden gewonnen +der Steigung $\theta$ der Regressionsgeraden gewonnen (\figref{mleproplinefig}). Ein Gradientenabstieg ist f\"ur das Fitten der Geradensteigung also gar nicht n\"otig. Das gilt allgemein f\"ur das Fitten von -Koeffizienten von linear kombinierten Basisfunktionen. Wie z.B. die +Koeffizienten von linear kombinierten Basisfunktionen. Wie z.B. die Steigung $m$ und der y-Achsenabschnitt $b$ einer Geradengleichung \[ y = m \cdot x +b \] oder allgemeiner die Koeffizienten $a_k$ eines Polynoms @@ -279,8 +279,8 @@ als Funktion des Orientierungswinkels). bevorzugte Orientierung des Stimulus (farbige Linien). Ein Stimulus einer bestimmten Orientierung aktiviert die Neurone in spezifischer Weise (Punkte). Unten: Die Log-Likelihood dieser - Aktivit\"aten wir maximal in der N\"ahe der wahren Orientierung - des Stimulus.} + Aktivit\"aten wird in der N\"ahe der wahren Orientierung + des Stimulus maximiert.} \end{figure} Das Gehirn ist aber mit dem umgekehrten Problem konfrontiert: gegeben diff --git a/regression/exercises/Makefile b/regression/exercises/Makefile new file mode 100644 index 0000000..27691d9 --- /dev/null +++ b/regression/exercises/Makefile @@ -0,0 +1,34 @@ +TEXFILES=$(wildcard exercises??.tex) +EXERCISES=$(TEXFILES:.tex=.pdf) +SOLUTIONS=$(EXERCISES:exercises%=solutions%) + +.PHONY: pdf exercises solutions watch watchexercises watchsolutions clean + +pdf : $(SOLUTIONS) $(EXERCISES) + +exercises : $(EXERCISES) + +solutions : $(SOLUTIONS) + +$(SOLUTIONS) : solutions%.pdf : exercises%.tex instructions.tex + { echo "\\documentclass[answers,12pt,a4paper,pdftex]{exam}"; sed -e '1d' $<; } > $(patsubst %.pdf,%.tex,$@) + pdflatex -interaction=scrollmode $(patsubst %.pdf,%.tex,$@) | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $(patsubst %.pdf,%.tex,$@) || true + rm $(patsubst %.pdf,%,$@).[!p]* + +$(EXERCISES) : %.pdf : %.tex instructions.tex + pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true + +watch : + while true; do ! make -q pdf && make pdf; sleep 0.5; done + +watchexercises : + while true; do ! make -q exercises && make exercises; sleep 0.5; done + +watchsolutions : + while true; do ! make -q solutions && make solutions; sleep 0.5; done + +clean : + rm -f *~ *.aux *.log *.out + +cleanup : clean + rm -f $(SOLUTIONS) $(EXERCISES) diff --git a/regression/exercises/gradient_descent.tex b/regression/exercises/exercises01.tex similarity index 81% rename from regression/exercises/gradient_descent.tex rename to regression/exercises/exercises01.tex index bd103ec..5b6024d 100644 --- a/regression/exercises/gradient_descent.tex +++ b/regression/exercises/exercises01.tex @@ -13,10 +13,16 @@ %%%%% 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}} +\pagestyle{headandfoot} +\ifprintanswers +\newcommand{\stitle}{: Solutions} +\else +\newcommand{\stitle}{} +\fi +\header{{\bfseries\large Exercise 11\stitle}}{{\bfseries\large Gradient descend}}{{\bfseries\large January 9th, 2018}} \firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email: - jan.grewe@uni-tuebingen.de} \runningfooter{}{\thepage}{} + jan.grewe@uni-tuebingen.de} +\runningfooter{}{\thepage}{} \setlength{\baselineskip}{15pt} \setlength{\parindent}{0.0cm} @@ -24,21 +30,15 @@ \renewcommand{\baselinestretch}{1.15} \newcommand{\code}[1]{\texttt{#1}} -\renewcommand{\solutiontitle}{\noindent\textbf{L\"osung:}\par\noindent} +\renewcommand{\solutiontitle}{\noindent\textbf{Solution:}\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} +\input{instructions} \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}. diff --git a/regression/exercises/instructions.tex b/regression/exercises/instructions.tex new file mode 100644 index 0000000..3041d3e --- /dev/null +++ b/regression/exercises/instructions.tex @@ -0,0 +1,6 @@ +\vspace*{-7.8ex} +\begin{center} +\textbf{\Large Introduction to Scientific Computing}\\[2.3ex] +{\large Jan Grewe, Jan Benda}\\[-3ex] +Neuroethology Lab \hfill --- \hfill Institute for Neurobiology \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\ +\end{center} diff --git a/regression/lecture/regression.tex b/regression/lecture/regression.tex index f7e3b47..dd6c990 100644 --- a/regression/lecture/regression.tex +++ b/regression/lecture/regression.tex @@ -264,7 +264,7 @@ Kostenfunktion mit m\"oglichst wenigen Berechnungen findet. und zeigt in Richtung des st\"arksten Anstiegs der Funktion $f(x,y)$. \end{minipage} - \vspace{1ex} Die Abbildung zeigt die Kontourlinien einer bivariaten + \vspace{1ex} Die Abbildung zeigt die Konturlinien einer bivariaten Gau{\ss}glocke $f(x,y) = \exp(-(x^2+y^2)/2)$ und den Gradienten mit seinen partiellen Ableitungen an drei verschiedenen Stellen. \end{ibox} @@ -283,7 +283,7 @@ Gef\"alles rollt, ben\"otigen wir Information \"uber die Richtung des Gef\"alles an der jeweils aktuellen Position. Der \determ{Gradient} (Box~\ref{partialderivativebox}) der Kostenfunktion -\[ \nabla f_{cost}(m,b) = \left( \frac{\partial e(m,b)}{\partial m}, +\[ \nabla f_{cost}(m,b) = \left( \frac{\partial f(m,b)}{\partial m}, \frac{\partial f(m,b)}{\partial b} \right) \] bzgl. der beiden Parameter $m$ und $b$ der Geradengleichung ist ein Vektor, der in Richtung des steilsten Anstiegs der Kostenfunktion $f_{cost}(m,b)$ zeigt. @@ -306,10 +306,10 @@ partielle Ableitung nach $m$ durch \titlecaption{Gradient der Fehlerfl\"ache.} {Jeder Pfeil zeigt die Richtung und die Steigung f\"ur verschiedene Parameterkombination aus Steigung und - $y$-Achsenabschnitt an. Die Kontourlinien im Hintergrund + $y$-Achsenabschnitt an. Die Konturlinien im Hintergrund illustrieren die Fehlerfl\"ache. Warme Farben stehen f\"ur gro{\ss}e Fehlerwerte, kalte Farben f\"ur kleine. Jede - Kontourlinie steht f\"ur eine Linie gleichen + Konturlinie steht f\"ur eine Linie gleichen Fehlers.}\label{gradientquiverfig} \end{figure} diff --git a/scientificcomputing-script.tex b/scientificcomputing-script.tex index 1e5fb9d..e4ab182 100644 --- a/scientificcomputing-script.tex +++ b/scientificcomputing-script.tex @@ -63,10 +63,12 @@ \lstset{inputpath=bootstrap/code} \include{bootstrap/lecture/bootstrap} +\setboolean{showexercisesolutions}{false} \graphicspath{{regression/lecture/}{regression/lecture/figures/}} \lstset{inputpath=regression/code} \include{regression/lecture/regression} +\setboolean{showexercisesolutions}{true} \graphicspath{{likelihood/lecture/}{likelihood/lecture/figures/}} \lstset{inputpath=likelihood/code} \include{likelihood/lecture/likelihood}