[linalg] added exercise sheet
This commit is contained in:
parent
072b9a7053
commit
657192ab58
@ -117,4 +117,26 @@ hold on;
|
||||
scatter( time(tinx(kinx1)), voltage(tinx(kinx1)), 10.0, 'r', 'filled' );
|
||||
scatter( time(tinx(kinx2)), voltage(tinx(kinx2)), 10.0, 'g', 'filled' );
|
||||
hold off;
|
||||
|
||||
% ISIs:
|
||||
figure(4);
|
||||
clf;
|
||||
subplot(1, 3, 1)
|
||||
allisis = diff(spiketimes);
|
||||
hist(allisis, 20);
|
||||
title('all spikes')
|
||||
xlabel('ISI [ms]')
|
||||
subplot(1, 3, 2)
|
||||
spikes1 = time(tinx(kinx1));
|
||||
isis1 = diff(spikes1);
|
||||
hist(isis1, 20);
|
||||
title('neuron 1')
|
||||
xlabel('ISI [ms]')
|
||||
subplot(1, 3, 3)
|
||||
spikes2 = time(tinx(kinx2));
|
||||
isis2 = diff(spikes2);
|
||||
hist(isis2, 20);
|
||||
title('neuron 2')
|
||||
xlabel('ISI [ms]')
|
||||
pause
|
||||
|
||||
|
34
linearalgebra/exercises/Makefile
Normal file
34
linearalgebra/exercises/Makefile
Normal file
@ -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)
|
BIN
linearalgebra/exercises/UT_WBMW_Black_RGB.pdf
Normal file
BIN
linearalgebra/exercises/UT_WBMW_Black_RGB.pdf
Normal file
Binary file not shown.
192
linearalgebra/exercises/exercises01.tex
Normal file
192
linearalgebra/exercises/exercises01.tex
Normal file
@ -0,0 +1,192 @@
|
||||
\documentclass[12pt,a4paper,pdftex]{exam}
|
||||
|
||||
\usepackage[english]{babel}
|
||||
\usepackage{pslatex}
|
||||
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
|
||||
\usepackage{xcolor}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
||||
|
||||
%%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
||||
\pagestyle{headandfoot}
|
||||
\ifprintanswers
|
||||
\newcommand{\stitle}{: Solutions}
|
||||
\else
|
||||
\newcommand{\stitle}{}
|
||||
\fi
|
||||
\header{{\bfseries\large Exercise\stitle}}{{\bfseries\large PCA}}{{\bfseries\large January 7th, 2019}}
|
||||
\firstpagefooter{Prof. Dr. Jan Benda}{Phone: 29 74573}{Email:
|
||||
jan.benda@uni-tuebingen.de}
|
||||
\runningfooter{}{\thepage}{}
|
||||
|
||||
\setlength{\baselineskip}{15pt}
|
||||
\setlength{\parindent}{0.0cm}
|
||||
\setlength{\parskip}{0.3cm}
|
||||
\renewcommand{\baselinestretch}{1.15}
|
||||
|
||||
%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{listings}
|
||||
\lstset{
|
||||
language=Matlab,
|
||||
basicstyle=\ttfamily\footnotesize,
|
||||
numbers=left,
|
||||
numberstyle=\tiny,
|
||||
title=\lstname,
|
||||
showstringspaces=false,
|
||||
commentstyle=\itshape\color{darkgray},
|
||||
breaklines=true,
|
||||
breakautoindent=true,
|
||||
columns=flexible,
|
||||
frame=single,
|
||||
xleftmargin=1em,
|
||||
xrightmargin=1em,
|
||||
aboveskip=10pt
|
||||
}
|
||||
|
||||
%%%%% math stuff: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{bm}
|
||||
\usepackage{dsfont}
|
||||
\newcommand{\naZ}{\mathds{N}}
|
||||
\newcommand{\gaZ}{\mathds{Z}}
|
||||
\newcommand{\raZ}{\mathds{Q}}
|
||||
\newcommand{\reZ}{\mathds{R}}
|
||||
\newcommand{\reZp}{\mathds{R^+}}
|
||||
\newcommand{\reZpN}{\mathds{R^+_0}}
|
||||
\newcommand{\koZ}{\mathds{C}}
|
||||
|
||||
%%%%% page breaks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\newcommand{\continue}{\ifprintanswers%
|
||||
\else
|
||||
\vfill\hspace*{\fill}$\rightarrow$\newpage%
|
||||
\fi}
|
||||
\newcommand{\continuepage}{\ifprintanswers%
|
||||
\newpage
|
||||
\else
|
||||
\vfill\hspace*{\fill}$\rightarrow$\newpage%
|
||||
\fi}
|
||||
\newcommand{\newsolutionpage}{\ifprintanswers%
|
||||
\newpage%
|
||||
\else
|
||||
\fi}
|
||||
|
||||
%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\newcommand{\qt}[1]{\textbf{#1}\\}
|
||||
\newcommand{\pref}[1]{(\ref{#1})}
|
||||
\newcommand{\extra}{--- Zusatzaufgabe ---\ \mbox{}}
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\input{instructions}
|
||||
|
||||
\begin{questions}
|
||||
|
||||
\question \qt{Covariance and correlation coefficient\vspace{-3ex}}
|
||||
\begin{parts}
|
||||
\part Generate two vectors $x$ and $z$ with $n=1000$ Gausian distributed random numbers.
|
||||
\part Compute $y$ as a linear combination of $x$ and $z$ according to
|
||||
\[ y = r \cdot x + \sqrt{1-r^2}\cdot z \]
|
||||
where $r$ is a parameter $-1 \le r \le 1$.
|
||||
What does $r$ do?
|
||||
\part Plot a scatter plot of $y$ versus $x$ for about 10 different values of $r$.
|
||||
What do you observe?
|
||||
\part Also compute the covariance matrix and the correlation
|
||||
coefficient matrix between $x$ and $y$ (functions \texttt{cov} and
|
||||
\texttt{corrcoef}). How do these matrices look like for different
|
||||
values of $r$? How do the values of the matrices change if you generate
|
||||
$x$ and $z$ with larger variances?
|
||||
\part Do the same analysis (scatter plot, covariance, and correlation coefficient)
|
||||
for \[ y = x^2 + 0.5 \cdot z \]
|
||||
Are $x$ and $y$ really independent?
|
||||
\end{parts}
|
||||
|
||||
\question \qt{Principal component analysis in 2D\vspace{-3ex}}
|
||||
\begin{parts}
|
||||
\part Generate pairs $(x,y)$ of Gaussian distributed random numbers such
|
||||
that all $x$ values have zero mean, half of the $y$ values have mean $+d$
|
||||
and the other half mean $-d$, with $d \ge0$.
|
||||
\part Plot scatter plots of the pairs $(x,y)$ for $d=0$, 1, 2, 3, 4 and 5.
|
||||
Also plot a histogram of the $x$ values.
|
||||
\part Apply PCA on the data and plot a histogram of the data projected onto
|
||||
the PCA axis with the largest eigenvalue.
|
||||
What do you observe?
|
||||
\end{parts}
|
||||
|
||||
\question \qt{Principal component analysis in 3D\vspace{-3ex}}
|
||||
\begin{parts}
|
||||
\part Generate triplets $(x,y,z)$ of Gaussian distributed random numbers such
|
||||
that all $x$ values have zero mean, half of the $y$ and $z$ values have mean $+d$
|
||||
and the other half mean $-d$, with $d \ge0$.
|
||||
\part Plot 3D scatter plots of the pairs $(x,y)$ for $d=0$, 1, 2, 3, 4 and 5.
|
||||
Also plot a histogram of the $x$ values.
|
||||
\part Apply PCA on the data and plot a histogram of the data projected onto
|
||||
the PCA axis with the largest eigenvalue.
|
||||
What do you observe?
|
||||
\end{parts}
|
||||
|
||||
\continue
|
||||
\question \qt{Spike sorting}
|
||||
Extracellular recordings often pick up action potentials originating
|
||||
from more than a single neuron. In case the waveforms of the action
|
||||
potentials differ between the neurons one could assign each action
|
||||
potential to the neuron it originated from. This process is called
|
||||
``spike sorting''. Here we explore this methods on a simulated
|
||||
recording that contains action potentials from two different
|
||||
neurons.
|
||||
\begin{parts}
|
||||
\part Load the data from the file \texttt{extdata.mat}. This file
|
||||
contains the voltage trace of the recording (\texttt{voltage}),
|
||||
the corresponding time vector in seconds (\texttt{time}), and a
|
||||
vector containing the times of the peaks of detected action
|
||||
potentials (\texttt{spiketimes}). Further, and in contrast to real
|
||||
data, the waveforms of the actionpotentials of the two neurons
|
||||
(\texttt{waveform1} and \texttt{waveform2}) and the corresponding
|
||||
time vector (\texttt{waveformt}) are also contained in the file.
|
||||
|
||||
\part Plot the voltage trace and mark the peaks of the detected
|
||||
action potentials. Zoom into the plot and look whether you can
|
||||
differentiate between two different waveforms of action
|
||||
potentials. How do they differ?
|
||||
|
||||
\part Cut out the waveform of each action potential (5\,ms before
|
||||
and after the peak). Plot all these snippets in a single
|
||||
plot. Can you differentiate the two actionpotential waveforms?
|
||||
|
||||
\part Apply PCA on the waveform snippets, that is compute the
|
||||
eigenvalues and eigenvectors of their covariance matrix, and plot
|
||||
the sorted eigenvalues (the ``eigenvalue spectrum''). How many
|
||||
eigenvalues are clearly larger than zero?
|
||||
|
||||
\part Plot the two eigenvectors (``features'') with the two
|
||||
largest eigenvalues.
|
||||
|
||||
\part Project the waveform snippets onto these two eigenvectors
|
||||
and display them with a scatter plot. What do you observe? Can you
|
||||
separate two ``clouds'' of data points (``clusters'')?
|
||||
|
||||
\part Think about a very simply way how to separate the two
|
||||
clusters. Generate a vector whose elements label the action
|
||||
potentials, e.g. that contains '1' for all snippets belonging to
|
||||
the one cluster and '2' for the waveforms of the other
|
||||
cluster. Use this vector to mark the two clusters in the previous
|
||||
plot with two different colors.
|
||||
|
||||
\part Plot the waveform snippets of each cluster together with the
|
||||
true waveform obtained from the data file. Do they match?
|
||||
|
||||
\part Mark the action potentials in the recording according to
|
||||
their cluster identity.
|
||||
|
||||
\part Compute interspike-interval histograms of all the (unsorted)
|
||||
action potentials, and of each of the two neurons. What do they
|
||||
tell you?
|
||||
\end{parts}
|
||||
|
||||
\end{questions}
|
||||
|
||||
\end{document}
|
6
linearalgebra/exercises/instructions.tex
Normal file
6
linearalgebra/exercises/instructions.tex
Normal file
@ -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}
|
Reference in New Issue
Block a user