% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
  8pt,
  ignorenonframetext,
]{beamer}
\usepackage{pgfpages}
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{caption label separator}{: }
\setbeamercolor{caption name}{fg=normal text.fg}
\beamertemplatenavigationsymbolsempty
% Prevent slide breaks in the middle of a paragraph
\widowpenalties 1 10000
\raggedbottom
\setbeamertemplate{part page}{
  \centering
  \begin{beamercolorbox}[sep=16pt,center]{part title}
    \usebeamerfont{part title}\insertpart\par
  \end{beamercolorbox}
}
\setbeamertemplate{section page}{
  \centering
  \begin{beamercolorbox}[sep=12pt,center]{part title}
    \usebeamerfont{section title}\insertsection\par
  \end{beamercolorbox}
}
\setbeamertemplate{subsection page}{
  \centering
  \begin{beamercolorbox}[sep=8pt,center]{part title}
    \usebeamerfont{subsection title}\insertsubsection\par
  \end{beamercolorbox}
}
\AtBeginPart{
  \frame{\partpage}
}
\AtBeginSection{
  \ifbibliography
  \else
    \frame{\sectionpage}
  \fi
}
\AtBeginSubsection{
  \frame{\subsectionpage}
}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{iftex}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\newif\ifbibliography
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ImportTok}[1]{#1}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\usepackage{longtable,booktabs,array}
\usepackage{calc} % for calculating minipage widths
\usepackage{caption}
% Make caption package work with longtable
\makeatletter
\def\fnum@table{\tablename~\thetable}
\makeatother
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newlength{\cslentryspacingunit} % times entry-spacing
\setlength{\cslentryspacingunit}{\parskip}
\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
 {% don't indent paragraphs
  \setlength{\parindent}{0pt}
  % turn on hanging indent if param 1 is 1
  \ifodd #1
  \let\oldpar\par
  \def\par{\hangindent=\cslhangindent\oldpar}
  \fi
  % set entry spacing
  \setlength{\parskip}{#2\cslentryspacingunit}
 }%
 {}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{#1\hfill\break}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
% type setting
% ------------------------------------------------------------------------------
\usepackage[german]{babel}     

% fonts
% ------------------------------------------------------------------------------
\usefonttheme{professionalfonts}

% slide title and horizontal line
% ------------------------------------------------------------------------------
\setbeamertemplate{frametitle}{%
    \vskip-30pt \color{black}\large%
    \begin{minipage}[b][23pt]{120mm}%
    \flushleft\insertframetitle%
    \end{minipage}%
}

\setbeamertemplate{headline}										
{
\vskip10pt\hfill\hspace{3.5mm} 										 
\vskip15pt\color{black}\rule{\textwidth}{0.4pt} 					 
}

% slide number
% ---------------------------------------------------------------
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}
{
\vskip5pt
\vskip2pt
\makebox[123mm]{\hspace{7.5mm}
\hfill Multivariate Datenanalyse $\vert$ 
\copyright $ $ 2022 Dirk Ostwald CC BY-NC-SA 4.0 $\vert$ 
Folie \insertframenumber}
\vskip4pt
}

% block color scheme
% ------------------------------------------------------------------------------
% colors
\definecolor{white}{RGB}{255,255,255}
\definecolor{grey}{RGB}{235,235,235}
\definecolor{lightgrey}{RGB}{245,245,245}
\definecolor{LightBlue}{RGB}{220,220,255}
\definecolor{darkblue}{RGB}{51, 51, 153}

% definitions and theorems
\setbeamercolor{block title}{fg = black, bg = grey}
\setbeamercolor{block body}{fg = black, bg = lightgrey}

% general line spacing 
% ------------------------------------------------------------------------------
\linespread{1.3}

% local line spacing
% ------------------------------------------------------------------------------
\usepackage{setspace}

% colors
% -----------------------------------------------------------------------------
\usepackage{color}

% justified text
% ------------------------------------------------------------------------------
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{etoolbox}
\apptocmd{\frame}{}{\justifying}{}

% bullet point lists
% -----------------------------------------------------------------------------
\setbeamertemplate{itemize item}[circle]
\setbeamertemplate{itemize subitem}[circle]
\setbeamertemplate{itemize subsubitem}[circle]
\setbeamercolor{itemize item}{fg = black}
\setbeamercolor{itemize subitem}{fg = black}
\setbeamercolor{itemize subsubitem}{fg = black}
\setbeamercolor{enumerate item}{fg = black}
\setbeamercolor{enumerate subitem}{fg = black}
\setbeamercolor{enumerate subsubitem}{fg = black}
\setbeamerfont{itemize/enumerate body}{}
\setbeamerfont{itemize/enumerate subbody}{size = \normalsize}
\setbeamerfont{itemize/enumerate subsubbody}{size = \normalsize}

% color links
% ------------------------------------------------------------------------------
\usepackage{hyperref}
\definecolor{urls}{RGB}{204,0,0}
\hypersetup{colorlinks, citecolor = darkblue, urlcolor = urls}


% additional math commands
% ------------------------------------------------------------------------------
\usepackage{bm}                                         % bold math symbols
\newcommand{\niton}{\not\owns}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}

% text highlighting
% ------------------------------------------------------------------------------
\usepackage{soul}
\makeatletter
\let\HL\hl
\renewcommand\hl{%
  \let\set@color\beamerorig@set@color
  \let\reset@color\beamerorig@reset@color
  \HL}
\makeatother

% equation highlighting
% -----------------------------------------------------------------------------
\newcommand{\highlight}[2][yellow]{\mathchoice%
  {\colorbox{#1}{$\displaystyle#2$}}%
  {\colorbox{#1}{$\textstyle#2$}}%
  {\colorbox{#1}{$\scriptstyle#2$}}%
  {\colorbox{#1}{$\scriptscriptstyle#2$}}}%
  
\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
  hidelinks,
  pdfcreator={LaTeX via pandoc}}

\author{}
\date{\vspace{-2.5em}}

\begin{document}

\begin{frame}[plain]{}
\protect\hypertarget{section}{}
\center

\begin{center}\includegraphics[width=0.2\linewidth]{9_Abbildungen/mvda_9_otto} \end{center}

\vspace{2mm}

\Huge

Multivariate Datenanalyse \vspace{6mm}

\Large

MSc Psychologie WiSe 2021/22

\vspace{6mm}
\large

Prof.~Dr.~Dirk Ostwald
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-1}{}
\vfill
\center
\huge

\textcolor{black}{(9) Neuronale Netze} \vfill
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-2}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

Funktionale Architektur

Lernen

Backpropagation

Anwendungsbeispiel

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-3}{}
\vfill
\setstretch{2}
\large

\textbf{Vorbemerkungen}

Funktionale Architektur

Lernen

Backpropagation

Anwendungsbeispiel

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen}{}
\textcolor{darkblue}{Struktur der Prädiktiven Modellierung}

\begin{minipage}{.6\textwidth}

\begin{center}\includegraphics[width=0.8\linewidth]{9_Abbildungen/mvda_9_prädiktive_modellierung_1} \end{center}
\end{minipage}
\begin{minipage}{.4\textwidth}

\begin{center}\includegraphics[width=1\linewidth]{9_Abbildungen/mvda_9_prädiktive_modellierung_2} \end{center}
\end{minipage}

\flushright
\tiny

nach Dwyer, Falkai, and Koutsouleris (2018) \vspace{3mm}

\flushleft
\small

Rhetorik der Prädiktiven Modellierung

\center
\begin{tabular}{ll}
Daten                     & Trainingsdaten und Testdaten                  \\
Statistisches Modell      & Modell, Machine Learning Algorithmus          \\
Schätzen von Parametern   & Trainieren des Modells, Lernen von Parametern, Supervised Learning
\end{tabular}
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen-1}{}
\textcolor{darkblue}{Neuronale Netze (Neural Networks)}

\small

\begin{itemize}
\tightlist
\item
  AKA \emph{Künstliche Neuronale Netze (Artificial Neural Networks)}.
\item
  Keine Modelle für biologische neuronale Netze.
\item
  Mathematische Modelle zur Approximation multivariater vektorwertiger
  Funktionen.
\end{itemize}

\vspace{3mm}

Typische Visualisierungen

\begin{minipage}{.5\linewidth}

\begin{center}\includegraphics[width=0.9\linewidth]{9_Abbildungen/mvda_9_neural_network} \end{center}
\end{minipage}
\begin{minipage}{.5\linewidth}

\begin{center}\includegraphics[width=0.9\linewidth]{9_Abbildungen/mvda_9_neuron} \end{center}
\end{minipage}
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen-2}{}
\textcolor{darkblue}{Zur Geschichte neuronaler Netze}

\footnotesize

Anfänge

\begin{itemize}
\tightlist
\item
  McCulloch and Pitts (1943) \textbar{} Analyse der mit biologischen
  Neuronen möglichen logischen Operationen.
\item
  Rosenblatt (1958) \textbar{} Implementation eines
  Mustererkennungsalgorithmus in einem frühen Computer.
\item
  Minsky and Papert (1969) \textbar{} Mathematische Analyse der
  logischen Stärken und Schwächen eines Perzeptrons.
\end{itemize}

\(\quad\quad\quad\Rightarrow\) Erster Winter Neuronaler Netze

Erste Renaissance

\begin{itemize}
\tightlist
\item
  Hopfield (1982) \textbar{} Mehrschichtige neuronale Netze beleben das
  Interesse an neuronalen Netzen erneut.
\item
  Rumelhart, Hinton, and Williams (1986) \textbar{} Popularisierung des
  Backpropagation Algorithmus.
\item
  Hauptinteresse in den 1990er und 2000er Jahren im Machine Learning
  gilt aber SVMs und Bayesian Inference.
\end{itemize}

\(\quad\quad\quad\Rightarrow\) Zweiter Winter Neuronaler Netze

Zweite Renaissance

\begin{itemize}
\tightlist
\item
  2009 - 2012 \textbar{} Schmidhuber (2015) gewinnen
  Klassifikationswettbewerbe mit neuronalen Netzen.
\item
  LeCun, Bengio, and Hinton (2015) \textbar{} Neuronale Netze unter dem
  Label ``Deep Learning'' wieder sehr in Mode.
\item
  2015 - 2022 \textbar{} Viele Menschen verwechseln die Begriffe
  ``Künstliche Intelligenz'' und ``Neuronales Netz''.
\item
  Ostwald and Usée (2021) \textbar{} Beweis der Validität des
  Backpropagation Algorithmus in Matrixform.
\end{itemize}
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen-3}{}
\textcolor{darkblue}{Neuronale Netze und Prädiktive Modellierung}
\vspace{3mm}

\begin{center}\includegraphics[width=0.8\linewidth]{9_Abbildungen/mvda_9_prädiktive_vs_explanatorische_modellierung} \end{center}
\vspace{3mm}

\small

\(\Rightarrow\) Neuronale Netze zur Approximation multivariater
vektorwertiger Funktionen im prädiktiven Sinn.
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen-4}{}
\textcolor{darkblue}{Universelle Approximationstheoreme} \small
\setstretch{1.8}

Topologische Aussagen über die Dichten von Funktionenräumen (cf.
Friedman (1970)).

Neuronale Netze können eine Vielzahl von Funktionen sehr genau
approximieren, wenn

\begin{itemize}
\tightlist
\item
  \small \justifying die Anzahl der Neurone gegen Unendlich geht
  (\emph{arbitrary width case}) bzw.
\item
  die Anzahl der Neuronenschichten gegen Unendlich geht (\emph{arbitrary
  depth case}).
\end{itemize}

Arbitrary width case \(\Rightarrow\) Cybenko (1989), Hornik (1991),
Leshno et al. (1993), Pinkus (1999)

Arbitrary depth case \(\Rightarrow\) Lu et al. (2017), Hanin and Sellke
(2018), Kidger and Lyons (2020)

Universelle Approximationstheoreme sind Existenzaussagen, keine
Konstruktionsaussagen.

\(\quad\Rightarrow\) Parameter neuronaler Netze müssen durch
Gradientenverfahren gelernt werden.
\end{frame}

\begin{frame}{Vorbemerkungen}
\protect\hypertarget{vorbemerkungen-5}{}
\textcolor{darkblue}{Universelle Approximationstheoreme}

\small

Beispiel \footnotesize \setstretch{1.2}

\begin{theorem}[Universelles Approximationstheorem nach Kidger (2020)]
\justifying
\normalfont
$\mathcal{X}$ sei eine kompakte Teilmenge von $\mathbb{R}^m$, $\sigma:\mathbb{R} \to \mathbb{R}$
sei eine nicht-affine stetige und zumindest in einem Punkt stetig differenzierbare Funktion
mit einer von Null verschiedenen Ableitung in diesem Punkt. $F$ sei
die Menge der neuronalen Netze $f$ mit Inputdimension $m$, Outputdimension $n_k$ und einer
beliebigen Anzahl verdeckter Schichten mit jeweils $m + n_k + 2$ Neuronen und Aktivierungsfunktion
$\sigma$, sowie der Identitätsabbildung als Aktivierungsfunktion der Outputschicht. 
Dann existiert zu jeder stetigen multivariaten vektorwertigen Funktion
\begin{equation}
g : \mathcal{X} \to \mathbb{R}^{n_k}, x \mapsto g(x)
\end{equation}
ein neuronales Netz $f \in F$, so dass für ein beliebig kleines
$\epsilon > 0$ gilt, dass
\begin{equation}
\sup_{x \in \mathcal{X}} \Vert f(x) - g(x) \Vert < \epsilon.
\end{equation}
\end{theorem}

Bemerkungen

\begin{itemize}
\tightlist
\item
  \justifying Das Supremum \(\sup\) kann intuitiv als Maximum verstanden
  werden.
\item
  \(\Vert \cdot \Vert\) bezeichnet eine \emph{Metrik} (Abstandsfunktion)
  auf \(\mathbb{R}^{n_k}\).
\item
  Für jedes \(x \in \mathcal{X}\) wird der Abstand zwischen dem Wert von
  \(g\) und dem Wert von \(f\) also beliebig klein.
\item
  Man sagt dazu auch, dass \(F\) im Raum der stetigen multivariaten
  vektorwertigen Funktionen \emph{dicht} ist.
\item
  Man kann das Theorem sicherlich noch präziser formulieren und sollte
  es beweisen.
\item
  Wir verzichten hier darauf und führen das Theorem nur als ``intuitives
  Beispiel'' auf.
\end{itemize}
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-4}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

\textbf{Funktionale Architektur}

Lernen

Backpropagation

Anwendungsbeispiel

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur}{}
\setstretch{1.1}
\footnotesize
\begin{definition}[Potentialfunktionen]\label{def:potential_functions}
\justifying
$W \in \mathbb{R}^{m \times (n+1)}$ sei eine Matrix, die wir \textit{Wichtungsmatrix}
nennen und $a \in \mathbb{R}^n$  sei ein Vektor, den wir \textit{Aktivierungsvektor}
nennen. Dann nennen wir eine Funktion der Form
\begin{equation}\label{eq:Phi}
\Phi : \mathbb{R}^{m \times (n+1)} \times \mathbb{R}^{n} \to \mathbb{R}^m,
(W,a) \mapsto \Phi(W,a)
:= W\cdot
\begin{pmatrix}
a \\ 1
\end{pmatrix}
\end{equation}
eine \textit{bivariate Potentialfunktion}. Für ein festes $a \in \mathbb{R}^n$
nennen wir eine Funktion der Form
\begin{equation}\label{eq:Phi_a}
\Phi_a : \mathbb{R}^{m \times (n+1)} \to \mathbb{R}^m, \,
W \mapsto \Phi_a(W) := \Phi(W,a)
\end{equation}
eine \textit{Wichtungsmatrix-variate Potentialfunktion}. Weiterhin nennen wir für
eine feste Matrix  $W \in \mathbb{R}^{m \times (n+1)}$ eine Funktion der Form
\begin{equation}\label{eq:Phi_W}
\Phi_W : \mathbb{R}^{n} \to \mathbb{R}^m,
a \mapsto \Phi_W(a) := \Phi(W,a)
\end{equation}
eine \textit{Potentialfunktion}. Schließlich nennen wir $z := \Phi_W(a)$ einen
\textit{Potentialvektor}.
\end{definition}

\footnotesize
\begin{definition}[Aktivierungsfunktion]\label{def:activation_functions}
\justifying
Wir nennen eine multivariate vektorwertige Funktion der Form
\begin{equation}\label{eq:Sigma}
\Sigma : \mathbb{R}^n \to \mathbb{R}^n,
z \mapsto \Sigma(z) := (\sigma(z_1), ..., \sigma(z_n))^T,
\end{equation}
mit
\begin{equation}\label{eq:sigma}
\sigma: \mathbb{R} \to \mathbb{R},
z_i \mapsto \sigma(z_i) =: a_i
\mbox{ für alle } i = 1,...,n,
\end{equation}
eine \textit{komponentenweise Aktivierungsfunktion} und die
univariate reellwertige Funktion $\sigma$ eine \textit{Aktivierungsfunktion}.
\end{definition}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-1}{}
Typische Aktivierungsfunktionen und ihre Ableitungen \vspace{3mm} \small

\begin{tabularx}{\textwidth}{XXX}
Name
& Definition
& Ableitung
\\
\hline
\\
Standard logistic
& $\sigma(z_i) := \frac{1}{1+\exp(-z_i)}$
& $\sigma'(z_i) = \frac{\exp(z_i)}{(1 + \exp(z_i))^2}$
\\
\\
Hyperbolic tangent
& $\sigma(z_i) := \mbox{tanh}(z_i)$
& $\sigma'(z_i) = 1 - \mbox{tanh}^2(z_i)$
\\
\\
ReLU
& $\sigma(z_i) := \max(0, z_i)$
& $\sigma'(z_i) =
\begin{cases}
0,                  & z_i < 0 \\
\emptyset,          & z_i = 0 \\
1,                  & z_i > 0 \\
\end{cases}$
\\
\\
Leaky ReLU
&
$\sigma(z_i) :=
\begin{cases}
0.1z_i, & z_i \le 0     \\
z_i,        & z_i > 0   \\
\end{cases}$
& $\sigma'(z_i) =
\begin{cases}
0.01,       & z_i \le 0     \\
1,          & z_i > 0   \\
\end{cases}$
\\
\end{tabularx}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-2}{}
Typische Aktivierungsfunktionen und ihre Ableitungen \vspace{1cm}

\begin{center}\includegraphics[width=1\linewidth]{9_Abbildungen/mvda_9_aktivierungsfunktionen} \end{center}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-3}{}
\footnotesize
\begin{definition}[$k$-schichtiges neuronales Netz]\label{def:neural_network}
Eine multivariate vektorwertige Funktion
\begin{equation}
f : \mathbb{R}^{n_0} \to \mathbb{R}^{n_k}, x \mapsto f(x) =: y
\end{equation}
heißt  \textit{$k$-schichtiges neuronales Netz}, wenn $f$ von der Form
\begin{multline}
f : \mathbb{R}^{n_0}
\xrightarrow[]{\Phi^1_{W^1}}
\mathbb{R}^{n_1}
\xrightarrow[]{\Sigma^1}
\mathbb{R}^{n_1}
\xrightarrow[]{\Phi^2_{W^2}}
\mathbb{R}^{n_2}
\xrightarrow[]{\Sigma^2}
\mathbb{R}^{n_2}
\xrightarrow[]{\Phi^3_{W^3}}
\\
\cdots
\xrightarrow[]{\Phi^{k-1}_{W^{k-1}}}
\mathbb{R}^{n_{k-1}}
\xrightarrow[]{\Sigma^{k-1}}
\mathbb{R}^{n_{k-1}}
\xrightarrow[]{\Phi^k_{W^k}}
\mathbb{R}^{n_{k}}
\xrightarrow[]{\Sigma^{k}}
\mathbb{R}^{n_{k}},
\end{multline}
ist, wobei für  $l = 1,...,k$
\begin{equation}
\Phi^l_{W^l} : \mathbb{R}^{n_{l-1}} \to \mathbb{R}^{n_l},
a^{l-1} \mapsto \Phi^l_{W^l}(a^{l-1}) :=
W^l
\cdot
\begin{pmatrix}
a^{l-1} \\ 1
\end{pmatrix}
=: z^l
\end{equation}
Potentialfunktionen und
\begin{equation}
\Sigma^l : \mathbb{R}^{n_l} \to \mathbb{R}^{n_l},
z^l \to \Sigma^l(z^l) =: a^l
\end{equation}
komponentenweise Aktvierungsfunktionen sind. Für ein $x \in \mathbb{R}^{n_0}$
nimmt ein $k$-schichtiges neuronales Netz den Wert
\begin{equation}
f(x) :=
\Sigma^{k}
(\Phi^k_{W^k}(\Sigma^{k-1}(\Phi^{k-1}_{W^{k-1}}(\Sigma^{k-2}(\cdots(\Sigma^{1}(\Phi^1_{W^1}(x))\cdots))))))
\in \mathbb{R}^{n_k}.
\end{equation}
an.
\end{definition}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-4}{}
\footnotesize

Bemerkungen \setstretch{1.8}

\begin{itemize}
\tightlist
\item
  \justifying Die Vektoren
  \(a^l = (a_1^l, ..., a_{n_l}^l)^T \in \mathbb{R}^{n_l}, l = 0,1,..., k\)
  heißen \emph{Aktivierungsvektoren der \(l\)ten Schicht}.
\item
  Die Komponenten \(a_i^l \in \mathbb{R},i = 1,...,n_l, l = 0,1,...,k\)
  heißen \emph{Aktivierungen der \(l\)ten Schicht}.
\item
  Die Schicht mit Index \(l = 0\) und Dimension \(n_0\) heißt
  \emph{Inputschicht}.
\item
  Der Aktivierungsvektor mit Index \(l = 0\) heißt \emph{Input} und wird
  mit \(x := a^0\) bezeichnet.
\item
  Die Schicht mit Index \(l = k\) und Dimension \(n_k\) heißt
  \emph{Outputschicht}
\item
  Der Aktivierungsvektor mit Index \(l = k\) heißt Output und wird mit
  \(y := a^k\) bezeichnet.
\item
  Die Schichten mit den Indizes \(l = 1,...,k-1\) heißen \emph{verdeckte
  Schichten (hidden layers)}.
\item
  \(w_{ij}^l \in \mathbb{R}\) sei der \(ij\)te Eintrag der \(l\)ten
  Wichtungsmatrix, d.h. \begin{equation}
  W^l = (w_{ij}^l)_{1 \le i \le n_l, 1 \le j \le n_{l-1}+1} \in \mathbb{R}^{n_l \times (n_{l-1}+1)}
  \mbox{ für }
  l = 1,...,k.
  \end{equation}
\item
  \(w_{ij}^l\) heißt \emph{(synaptisches) Gewicht} der Verbindung von
  Neuron \(j\) in Schicht \(l-1\) and Neuron \(i\) in Schicht \(l\).
\item
  Für \(i = 1,...,n_l\) heißt \(w_{i,n_{l-1}+1}\) \emph{Bias} von Neuron
  \(i\) in Schicht \(l\).
\item
  Die letzte Spalte von \(W^l\) enkodiert also die Biases für die
  Neuronen in Schicht \(l\).
\end{itemize}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-5}{}
\footnotesize

Bemerkungen

Auf der Ebene einzelner Neurone ergibt sich damit folgende Nomenklatur:

\begin{itemize}
\item
  Das \emph{Potential} von Neuron \(i\) in Schicht \(l\) für
  \(i = 1,...,n_l\) und \(l = 1,...,k\) ist gegeben durch
  \begin{equation}
  z_i^l = \sum_{j = 1}^{n_{l-1}} w^l_{ij}  a_j^{l-1} + w_{i, n_{l-1} + 1} \in \mathbb{R}.
  \end{equation}
\item
  Die \emph{Aktivierung} von Neuron \(i\) in Schicht \(l\) für
  \(i = 1,...,n_l\) und \(l = 1,...,k\) ist gegeben durch
  \begin{equation}
  a_i^l = \sigma\left(\sum_{j = 1}^{n_{l-1}} w^l_{ij}  a_j^{l-1} + w_{i, n_{l-1} + 1} \right) \in \mathbb{R},
  \end{equation}
\item
  Die Aktivierung \(a_i^l\) kann als die mittlere Feuerungsrate des
  \(i\)ten Neuron in der \(l\)ten Schicht verstanden werden.
\end{itemize}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-6}{}
\begin{center}\includegraphics[width=0.8\linewidth]{9_Abbildungen/mvda_9_neuron_annotated} \end{center}
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-7}{}
Beispiel

\small

\(k = 3, n_0 = 2, n_1 = 3\), \(n_2 = 3, n_3 = 2\)

\begin{center}\includegraphics[width=1\linewidth]{9_Abbildungen/mvda_9_beispiel_1} \end{center}

Es gilt \(x = a^0\) und \(a^3 = y\).
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-8}{}
Beispiel

\small

\(k = 3, n_0 = 2, n_1 = 3\), \(n_2 = 3, n_3 = 2\)

\begin{center}\includegraphics[width=0.4\linewidth]{9_Abbildungen/mvda_9_beispiel_2} \end{center}

Es gilt \(x = a^0\) und \(a^3 = y\).
\end{frame}

\begin{frame}{Funktionale Architektur}
\protect\hypertarget{funktionale-architektur-9}{}
Beispiel

\small

\(k = 3, n_0 = 2, n_1 = 3\), \(n_2 = 3, n_3 = 2\)

\begin{center}\includegraphics[width=0.6\linewidth]{9_Abbildungen/mvda_9_neural_network_annotated} \end{center}

\begin{itemize}
\tightlist
\item
  Die Biases sind hier nicht visualiert.
\end{itemize}
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-5}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

Funktionale Architektur

\textbf{Lernen}

Backpropagation

Anwendungsbeispiel

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen}{}
\textcolor{darkblue}{Überblick} \small \justifying

Anhand eines Trainingsdatensatzes werden die Parameter eines neuronalen
Netzes wie folgt gelernt:

\begin{itemize}
\item
  \justifying Zunächst wird eine Funktion definiert, die misst,
  inwiefern sich bei einem gegebenen Inputvektor und Zielvektor der
  Output des neuronalen Netzes basierend auf einem Wert der Parameter
  unterscheidet. Diese Funktion nennt man eine \emph{Kostenfunktion}
  oder \emph{Zielfunktion}.
\item
  Der summierte Wert der Kostenfunktion über alle Trainingsdatenpunkte
  wird dann durch Veränderung der Parameter minimiert, so dass
  Parameterwerte gefunden werden, für die die Abweichung zwischen
  Zielvektor und Output des neuronalen Netzes bei gegebenemen
  Inputvektor möglichst gering ist.
\item
  Zur Minimierung der Kostenfunktion wird üblicherweise ein
  Gradientenverfahren benutzt.
\item
  \justifying Zur Berechnung der in diesem Verfahren auftretenden
  Zielfunktionsgradienten wird ein komputational effizienter Algorithmus
  eingesetzt, der die spezielle Struktur neuronaler Netze ausnutzt und
  unter dem Namen \emph{Backpropagation Algorithmus} bekannt ist.
\end{itemize}

In der Folge wollen wir die Aspekte dieses Lernprozesses genauer
betrachten.
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-1}{}
\small
\begin{definition}[Trainingsdatensatz]
Ein \textit{Trainingsdatensatz} für ein neuronales Netz ist eine Menge
\begin{equation}
\mathcal{D}
:= \lbrace(x^{(i)}, y^{(i)})\rbrace_{i=1}^n,
\end{equation}
wobei $x^{(i)} \in \mathbb{R}^{n_0}$ \textit{Featurvektor} und $y^{(i)} \in \mathbb{R}^{n_k}$
\textit{Zielvektor} genannt werden.
\end{definition}

Bemerkungen

\begin{itemize}
\item Im Kontext der zuvor betrachteten multivariaten Verfahren gilt hier $n_0 = m$.
\item Typische Zielvektorformate beim Training neuronaler Netze sind
\begin{itemize}
\begin{footnotesize}
\item[] $y^{(i)} \in \{0,1\}$ für binäre Klassifikationsprobleme,
\item[] $y^{(i)} \in \{0,1\}^{n_k}$ mit $\sum_{i=1}^{n_k} y_i = 1, n_k > 1$ für $n_k$-fache Klassifikationsprobleme,
\item[] $y^{(i)} \in \mathbb{R}^{n_k}, n_k > 1$ für Regressionsprobleme.
\end{footnotesize}
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-2}{}
\small
\begin{definition}[Trainieren eine neuronalen Netzes]
\justifying
$f$ sei ein $k$-schichtiges neuronales Netz und $\mathcal{D}$ sei ein Trainingsdatensatz.
Dann bezeichnet der Begriff des \textit{Trainierens} den Prozess der Adaptation
der Wichtungsmatrizen $W^1, ..., W^k$ des neuronalen Netzes mit dem Ziel, ein
Abweichungskriterium zwischen der Ouptutaktivierung $f(x^{(i)})$ und dem assoziierten
Wert des Zielvektors $y^{(i)}$ über alle Trainingsdatenpunkte $(x^{(i)},y^{(i)}), i = 1,...,n$
des Trainingsdatensatzes $\mathcal{D}$ hinweg zu minimieren.
\end{definition}

Bemerkungen

\begin{itemize}
\tightlist
\item
  Wir erinnern an das Ziel
  \(f := \mbox{argmin}_{\tilde{f} \in F} \Vert Y - \tilde{f}(X) \Vert\)
  der prädiktiven Modellierung.
\item
  Das erwähnte Abweichungskriterium wird in Form von
  \emph{Kostenfunktionen} definiert.
\item
  Wir benötigen noch den Begriff der \emph{Wichtungsmatrix-variaten
  neuronalen Netzfunktion}.
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-3}{}
\footnotesize
\begin{definition}[Wichtungsmatrix-variate neuronale Netzfunktion]\label{def:matrix_variate_neural_network_function}
\justifying
$f$ sei ein $k$-schichtiges neuronales Netz und $x$ sei ein Input von $f$. Dann ist
\textit{Wichtungsmatrix-variate neuronale Netzfunktion $f_x$ von $f$} definiert als die
Funktion
\begin{multline}\label{eq:f_x}
f_x : \mathbb{R}^{n_{1} \times (n_0 + 1)} \times \cdots \times \mathbb{R}^{n_{k} \times (n_{k-1} + 1)} \to \mathbb{R}^{n_k},
(W^1, ..., W^k) \mapsto f_x(W^1,...,W^k)
\\
:= \Sigma^k(\Phi^k(W^k,\Sigma^{k-1}(\Phi^{k-1}(W^{k-1}, \cdots (W^2,\Sigma^1(\Phi^1(W^1,x)))\cdots)))),
\end{multline}
wobei für $l = 1,...,k$, $\Phi^l$ die bivariate Potentialfunktion bezeichnet,
die der Potentialfunktion $\Phi^l_{W^l}$ in der Definition des neuronalen Netzes entspricht.
Weiterhin definieren wir für $l = 1,..., k$, die  \textit{Wichtungsmatrix-variate neuronale Netzfunktion der $l$ten Schicht $f_x^l$}
für festes fixed $W^\ell \in \mathbb{R}^{n_\ell \times (n_{\ell-1} + 1)}$m mit $\ell = 1,..., k$ und $\ell \neq l$ als
\begin{equation}\label{eq:f_x_l}
f_x^l : \mathbb{R}^{n_{1} \times (n_{l-1} + 1)} \to \mathbb{R}^{n_k},
W^l \mapsto f_x^l(W^l) := f_x^l(W^1, ..., W^k).
\end{equation}
\end{definition}

Bemerkungen

\begin{itemize}
\tightlist
\item
  \justifying Die Definition von \(f\) in der Definition eines
  \(k\)-schichtiges neuronales Netzes ist eine Funktion des Inputs \(x\)
  bei festen Wichtungsmatrizen \(W^1, ..., W^l\). Zum Trainieren eines
  neuronalen Netzes ist es aber entscheidend, bei festem Input den
  Output des neuronalen Netzes bei Variation der Parameter
  \(W^1, ..., W^l\) zu monitoren. Dies motiviert den Begriff der
  Wichtungsmatrix-variaten neuronalen Netzfunktion: Die Definition von
  \(f_x\) in \eqref{eq:f_x} ist eine Funktion der Wichtungsmatrizen
  \(W^1, ..., W^l\) bei festem Input \(x\).
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-4}{}
\footnotesize
\begin{definition}[Output-spezifische Kostenfunktionen]\label{def:cost_function_1}
$f$ sei ein $k$-schichtiges neuronales Netz und $y$ sei ein Zielvektor von $f$. Dann wird
eine multivariate reelwertige Funktion der Form 
\begin{equation}\label{eq:output_cost_function}
c_y : \mathbb{R}^{n_k} \to \mathbb{R}, a^k \mapsto c_y(a^k)
\end{equation}
\textit{Output-spezifische Kostenfunktion} genannt.
\end{definition}

Bemerkung

\begin{itemize}
\tightlist
\item
  \justifying Eine Output-spezifische Kostenfunktion \(c_y\) misst die
  Abweichung des Outputs \(a^k\) eines neuronalen Netzes von einem
  Zielvektor \(y\). Untenstehende Tabelle führt zwei typische Beispiele
  für Output-spezifische Kostenfunktionen und ihre Gradienten, die in
  der Folge wichtig werden, auf.
\end{itemize}

\setstretch{1.6}
\begin{tabularx}{\textwidth}{ll}
\underline{Quadratische Kostenfunktion}
&
\\
Definition
& Gradient
\\
$c_y(a^k) := \frac{1}{2}\sum_{j=1}^{n_k}(a_j^k - y_j)^2$
& $\nabla c_y(a^k) := \left(a_j^k - y_j\right)_{j = 1,...,n_k}$
\\
\underline{Cross-entropy Kostenfunktion}
\\
Definition
& Gradient
\\
$c_y(a^k) := -\sum_{i=1}^{n_k}y_j \ln a_j^k + (1 - y_j)\ln (1-a_j^k)$
& $\nabla c_y(a^k) := \left(-\frac{y_j}{a_j^k} + \frac{1-y_j}{1-a_j^k}\right)_{j = 1,...,n_k}$
\end{tabularx}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-5}{}
\small

Output-spezifische Kostenfunktionswerte für \(y = (0,1)^T\) bei
logistischer Aktivierungsfunktion \vspace{2mm}

\begin{center}\includegraphics[width=0.8\linewidth]{9_Abbildungen/mvda_9_kostenfunktionen} \end{center}

\begin{itemize}
\tightlist
\item
  Beide Funktionen haben ihr Minimum bei \(a = y\).
\item
  Die Pfeile bilden die skalierten Gradientenwerte der jeweiligen
  Funktion ab.
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-6}{}
\footnotesize
\begin{definition}[Trainingsdatenpunkt-spezifische Kostenfunktionen]\label{def:cost_function_2}
\justifying
$f$ sei ein $k$-schichtiges neuronales Netz, $f_x$ sei die zugehörige wichtungsmatrix-variate 
neuronale Netzfunktion, $x$ und $y$ seien Inputs und Outputs des neuronalen Netzes, 
$\mathcal{D}$ sei ein Trainingsdatensatz und $c_y$ sei eine Output-spezifische Kostenfunktion. 
Dann heißt eine multimatrixvariate reellwertige Funktion der Form
\begin{multline}\label{eq:training_exemplar_cost_function}
c_{xy} :
\mathbb{R}^{n_1 \times (n_0 + 1)} \times \cdots \times
\mathbb{R}^{n_k \times (n_{k-1} + 1)}
\to \mathbb{R},
\\
(W^1, ..., W^k) \mapsto c_{xy}(W^1, ..., W^k) := c_y(f_x(W^1,...,W^k))
\end{multline}
\textit{Trainingsdatenpunkt-spezifische Kostenfunktion}.
\end{definition}

Bemerkung

\begin{itemize}
\tightlist
\item
  \justifying Eine Trainingsdatenpunkt-spezifische Kostenfunktion
  \(c_{xy}\) misst die Abweichung des Outputs \(a^k\) eines neuronalen
  Netzes von einem Zielvektor \(y\) mithilfe einer Output-spezifischen
  Kostenfunktion \(c_y\) für einen festen Input \(x\) als Funktion der
  (also bei variablen) Wichtungsmatrizen.
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-7}{}
\footnotesize
\begin{definition}[Gewichtsvektor]
\justifying
$f$ sei ein $k$-schichtige neuronales Netz mit $n_l \times n_{l-1} + 1$-dimensionalen
Gewichtsmatrizen $W^l, l = 1,.., k$ und es sei
\begin{equation}
p:=\sum_{l=1}^{n_k} n_{l} (n_{l-1} + 1).
\end{equation}
die Anzahl der Gewichtsparameter des neuronalen Netzes. Dann heißt
\begin{equation}\label{eq:weight_vector}
\mathcal{W} :=
\begin{pmatrix}
\mbox{vec}\left(W^l\right)
\end{pmatrix}_{1 \le l \le k}
\in \mathbb{R}^p
\end{equation}
der \textit{Gewichtsvektor} des neuronalen Netzes. 
\end{definition}

Bemerkung

\begin{itemize}
\tightlist
\item
  \justifying Die Vektorisierung und Konkatenation der Wichtungsmatrizen
  im Sinne des Gewichtsvektors erlaubt es, dass Trainieren eines
  neuronalen Netzes als ein Standardoptimierungsproblem einer
  multivariaten (nicht multimatrixvariaten) reellwertigen zu
  formulieren.
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-8}{}
\footnotesize
\begin{definition}[Additive Kostenfunktion]
\justifying
$\mathcal{D}$ sei ein Trainingsdatensatz und $c_{xy}$ sei eine Trainingsdatenpunkt-spezifische
Kostenfunktion. Dann nennt man eine multivariate reellwertige Funktion der Form
\begin{equation}\label{eq:additive_cost_function}
c_{\mathcal{D}}: \mathbb{R}^{p} \to \mathbb{R},
\mathcal{W} \mapsto c_\mathcal{D}(\mathcal{W})
:= \frac{1}{n}\sum_{i=1}^n c_{x^{(i)}y^{(i)}}(W^1, ..., W^k)
\end{equation}
eine \textit{additive Kostenfunktion}.
\end{definition}

Bemerkung

\begin{itemize}
\item
  \justifying Die additive Kostenfunktion ist die zentrale Zielfunktion
  beim Trainierung eines neuronalen Netzes.
\item
  \(c_{\mathcal{D}}\) ist eine multivariate reellwertige Funktion, es
  liegt also ein Standardoptimierungsproblem vor.
\item
  Wir nehmen dabei stillschweigend an, dass die sinnvolle Aufteilung des
  Gewichtsvektors \(\mathcal{W}\) auf die Wichtungsmatrizen
  \(W^1, ..., W^k\) in der Auswertung der Funktion \(c_\mathcal{D}\)
  geschieht.
\end{itemize}
\end{frame}

\begin{frame}{Lernen}
\protect\hypertarget{lernen-9}{}
\footnotesize
\setstretch{1.1}
\begin{definition}[Batch Gradientenverfahren für neuronale Netze]\label{def:gradient_descent}
\justifying
$f$ sei ein $k$-schichtiges neuronales Netz mit Gewichtsvektor  $\mathcal{W}$,
$\mathcal{D}$ sei ein Trainingsdatensatz bestehend aus $n$ Trainingsdatenpunkten,
und $c_{\mathcal{D}}$ sei eine additive Kostenfunktion mit assoziierter Trainingsexemplar-spezifischer
Kostenfunktion $c_{xy}$. Dann ist ein Gradientenverfahren zur Minimierung der additiven 
Kostenfunktion $c_{\mathcal{D}}$ (und damit zum Lernen der Parameter von $f$) definiert durch
\vspace{1mm}

\noindent\underline{Initialisierung}
\vspace{1mm}

\noindent Wahl eines Startpunktes $\mathcal{W}^{(0)}$ und einer Lernrate $\alpha > 0$.
\vspace{1mm}

\noindent\underline{Iterationen}
\vspace{1mm}

\noindent Für $j = 1,2,...$ setze
\begin{equation}\label{eq:w_update}
\mathcal{W}^{(j)} :=
\mathcal{W}^{(j-1)}
- \frac{\alpha}{n}
\sum_{i=1}^n
\nabla c_{x^{(i)}y^{(i)}}(W^1, ..., W^k),
\end{equation}
wobei
\begin{equation}\label{eq:c_gradient}
\nabla c_{x^{(i)}y^{(i)}}(W^1, ..., W^k)
=
\begin{pmatrix}
\nabla_{W^l} c_{x^{(i)}y^{(i)}}(W^1, ..., W^k)
\end{pmatrix}_{1\le l \le k}
\end{equation}
für $i = 1,...,n$ den Gradienten der $i$ten Trainingsexemplar-spezifischen Kostenfunktion
bezeichnet
\end{definition}
\vspace{-2mm}

Bemerkungen

\begin{itemize}
\tightlist
\item
  \justifying \(\mathcal{W}^{(j)}\) wird in (22) in die negative
  Richtung des Gradientenmittelwerts über Trainingsdatenpunkte
  adaptiert. Wird der Gradientenmittelwert dagegen nur über eine
  zufällig gewählte Teilmenge der Trainingsdatenpunkte berechnet, so
  spricht man von einem \emph{stochastischen Gradientenverfahren}.
\end{itemize}
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-6}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

Funktionale Architektur

Training

\textbf{Backpropagation}

Anwendungsbeispiel

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}{Backpropagation}
\protect\hypertarget{backpropagation}{}
\setstretch{1.2}

\textcolor{darkblue}{Wesen und Motivation des Backpropagation Algorithmus}
\small

Der Backpropagation (BP) Algorithmus dient der numerischen Bestimmung
der Komponenten \begin{equation}\label{eq:partial_derivatives}
\frac{\partial}{\partial w_{ij}^{l}} c_{xy}(W^1,...,W^k)
\mbox{ für alle }
i = 1,...,n_l, j = 1,...,n_{l-1}+1, \mbox{ und } l = 1,...,k.
\end{equation} des Gradienten
\(\nabla c_{x^{(i)}y^{(i)}}(W^1, ..., W^k)\) der \(i\)ten
Trainingsexemplar-spezifischen Kostenfunktion. \vspace{2mm}

Prinzipiell können diese partiellen Ableitungen numerisch durch
\begin{equation}
\frac{\partial}{\partial w_{ij}^{l}} c_{xy}(W^1,..., W^k)
\approx
\frac{c_{xy}(W^1,..., \tilde{W}^l,..., W^k) - c_{xy}(W^1,..., W^l, ...,W^k)}{\epsilon},
\end{equation} mit

\begin{itemize}
\tightlist
\item
  \(\tilde{W}^l := W^l + 1_{ij}^{l}\epsilon\) ,
\item
  einer Matrix \(1_{ij}^{l} \in \mathbb{R}^{n_l \times (n_{l-1}+1)}\)
  aus \(0\)en mit einer \(1\) an der \(w_{ij}^{l}\) Stelle in \(W^l\)
  und
\item
  einem Schrittweitenparameter \(\epsilon > 0\)
\end{itemize}

approximiert werden (vgl. Definition der partiellen Ableitung).
\end{frame}

\begin{frame}{Backpropagation}
\protect\hypertarget{backpropagation-1}{}
\textcolor{darkblue}{Wesen und Motivation des Backpropagation Algorithmus}
\small

Dieses Vorgehen würde für jede Iteration des Gradientenverfahren und für
jeden Trainingsdatenpunkt \begin{equation}
K := 1 + \sum_{l = 1}^k n_{l}({n_{l-1}}+1)
\end{equation} Auswertungen der Trainingsdatenpunkt-spezifischen
Kostenfunktion \(c_{xy}\) und somit von \(f\) erfordern. Man nennt die
Auswertung von \(f\) für einen Trainingsdatenpunkt \(x\) einen
\emph{Forward Pass}.

Die zentrale Eigenschaft des Backpropagation Algorithmus ist es, für die
Auswertung von \(\nabla c_{xy}\) die Anzahl der notwendigen
\emph{Forward Passes} pro Gradientenverfahrensiteration von \(K\) auf
\(1\) zu reduzieren.

Um dies zu erreichen, nutzt der Backpropagation Algorithmus einen
sogenannten \emph{Backward Pass}, der die gleiche komputationale
Komplexität wie der \emph{Forward Pass} hat und auf einer multivariate
Version der Kettenregel der Differentialrechnung sowie der repetitiven
funktionalen Architektur neuronaler Netze beruht.

Der Backpropagation Algorithmus reduziert die Anzahl nötiger
\emph{Passes} zur Auswertung von \(\nabla c_{xy}\) also von \(K\)
\emph{Forward Passes} auf \(1\) \emph{Forward Pass} und \(1\)
\emph{Backward Pass}.
\end{frame}

\begin{frame}{Backpropagation}
\protect\hypertarget{backpropagation-2}{}
\footnotesize
\setstretch{1.2}

\begin{theorem}[Backpropagation Algorithmus]\label{thm:BP_algorithm}
\justifying
\normalfont
$f$ sei ein $k$-schichtiges neuronales Netz, $W_\bullet^{l} \in \mathbb{R}^{n_l \times n_{l-1}}$
seien für $l = 1,...,k$ Matrizen, die durch das Entfernen der letzten Spalte der
Wichtungsmatrizen $W^{l} \in \mathbb{R}^{n_l \times n_{l-1} + 1}$ entstehen, $c_{xy}$
sei eine Trainingsdatenpunkt-spezifische Kostenfunktion, $\nabla c_y(a^k)$ sei der
Gradient der Output-spezifischen Kostenfunktion, $\tilde{\Sigma}^l(z^l) := (\sigma'(z^l_1), ..., \sigma'(z^l_{n_l}))^T$
sei der Vektor der Aktivierungsfunktionenableitungen ausgewertet an der Stelle $z^l$
und $\Sigma^l(z^l)$ die komponentenweise Aktivierungsfunktion evaluiert an der Stelle
$z^l$. Dann können die partiellen Gradienten von $c_{xy}$ hinsichtlich der
Wichtungsmatrizen $W^l$ für $l = k, k-1, ...,1$ mit folgendem Algorithmus berechnet werden:
\vspace{1mm}

\underline{Initialisierung}
\vspace{1mm}

Setze
$W^{k+1} :=
(\begin{matrix}
1 & 0
\end{matrix})$
und
$\delta^{k+1} := \nabla c_y(a^{k})$.
\vspace{1mm}

\underline{Iterationen}
\vspace{1mm}

Für $l = k, k-1, k-2, ..., 1$, setze
\begin{equation}\label{eq:error}
\delta^l
:=  \left(
         \left(W^{l+1}_{\bullet}\right)^T \cdot \delta^{l+1}
    \right)
    \circ \tilde{\Sigma}^{l}(z^l)
\end{equation}
\noindent und
\begin{equation}\label{eq:partial_gradient}
\nabla_{W^l}
c_{xy}(W^1,..., W^k)
:= \mbox{vec}
    \left(
        \delta^l
        \cdot
        \begin{pmatrix} \Sigma^{l-1} (z^{l-1})^T & 1 \end{pmatrix}
     \right),
\end{equation}
mit Rekursionstermination durch $\Sigma^0(z^0) := x^T$ und dem Hadamard-Produkt $\circ$.
\end{theorem}

Für weitere Details und einen Beweis verweisen wir auf Ostwald and Usée
(2021).
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-7}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

Funktionale Architektur

Training

Backpropagation

\textbf{Anwendungsbeispiele}

Selbstkontrollfragen \vfill
\end{frame}

\begin{frame}{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele}{}
\small

\textcolor{darkblue}{Simulation und Analyse mit Matlab Implementation}
(Ostwald and Usée (2021))

\footnotesize

\begin{itemize}
\tightlist
\item
  Neuronales Netz mit \(k = 3, n_0 = 2, n_1 = 3\), \(n_2 = 3, n_3 = 2\).
\item
  Trainingsdatensatz anhand eines LDA Modells simuliert.
\end{itemize}

\vspace{2mm}

\begin{center}\includegraphics[width=0.8\linewidth]{9_Abbildungen/mvda_9_matlab_implementation} \end{center}
\end{frame}

\begin{frame}[fragile]{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-1}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Eine verdeckte Schicht mit zwei Neuronen \vspace{3mm}

\tiny
\setstretch{1}

\begin{Shaded}
\begin{Highlighting}[]
\CommentTok{\# R Pakete}
\FunctionTok{library}\NormalTok{(foreign)}
\FunctionTok{library}\NormalTok{(neuralnet)}

\CommentTok{\# Einlesen der Studienerfolgdaten und Fokus auf binäre Klassifikation}
\NormalTok{D              }\OtherTok{=} \FunctionTok{read.spss}\NormalTok{(}\FunctionTok{file.path}\NormalTok{(}\FunctionTok{getwd}\NormalTok{(), }\StringTok{"9\_Daten"}\NormalTok{, }\StringTok{"studienerfolg.sav"}\NormalTok{),}
                          \AttributeTok{to.data.frame =}\NormalTok{ T)}
\NormalTok{D              }\OtherTok{=}\NormalTok{ D[D[,}\DecValTok{1}\NormalTok{] }\SpecialCharTok{!=} \StringTok{"befriedigend"}\NormalTok{,]                  }\CommentTok{\# Binärisierung des Datensatzes}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Intelligenz  }\OtherTok{=}\NormalTok{ D}\SpecialCharTok{$}\NormalTok{X1                                         }\CommentTok{\# Variablenbennenung}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Mathematik   }\OtherTok{=}\NormalTok{ D}\SpecialCharTok{$}\NormalTok{X2                                         }\CommentTok{\# Variablenbenennung}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Erfolg       }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\FunctionTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{,}\DecValTok{15}\NormalTok{), }\FunctionTok{rep}\NormalTok{(}\DecValTok{1}\NormalTok{,}\DecValTok{15}\NormalTok{))                      }\CommentTok{\# Recoding der Binärisierung}


\CommentTok{\# Trainieren eines neuronalen Netzes mit 2 Hidden Neurons}
\FunctionTok{set.seed}\NormalTok{(}\DecValTok{7}\NormalTok{)                                                   }\CommentTok{\# Der Algorithmus ist nicht deterministisch!}
\NormalTok{nn             }\OtherTok{=} \FunctionTok{neuralnet}\NormalTok{(Erfolg }\SpecialCharTok{\textasciitilde{}}\NormalTok{ Intelligenz }\SpecialCharTok{+}\NormalTok{ Mathematik, }\CommentTok{\# y\^{}\{(i)\}, x\^{}\{(i)\} Definitionen}
                           \AttributeTok{data          =}\NormalTok{ D,                 }\CommentTok{\# Datensatz}
                           \AttributeTok{hidden        =} \DecValTok{2}\NormalTok{,                 }\CommentTok{\# 2 Neurone in 1 verdeckte Schicht}
                           \AttributeTok{err.fct       =} \StringTok{"ce"}\NormalTok{,              }\CommentTok{\# Cross Entropie Kostenfunktion}
                           \AttributeTok{linear.output =} \ConstantTok{FALSE}\NormalTok{)             }\CommentTok{\# Sigmoide Aktivierungsfunktion}


\CommentTok{\# Resultatsaufbereitung}
\NormalTok{R              }\OtherTok{=} \FunctionTok{data.frame}\NormalTok{(nn}\SpecialCharTok{$}\NormalTok{covariate, nn}\SpecialCharTok{$}\NormalTok{response, nn}\SpecialCharTok{$}\NormalTok{net.result[[}\DecValTok{1}\NormalTok{]], }\FunctionTok{as.numeric}\NormalTok{(nn}\SpecialCharTok{$}\NormalTok{net.result[[}\DecValTok{1}\NormalTok{]] }\SpecialCharTok{\textgreater{}} \FloatTok{0.5}\NormalTok{))}
\FunctionTok{colnames}\NormalTok{(R)    }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\StringTok{"Intelligenztest"}\NormalTok{, }\StringTok{"Mathematiktest"}\NormalTok{, }\StringTok{"Erfolg"}\NormalTok{, }\StringTok{"Output"}\NormalTok{, }\StringTok{"Prädiktion"}\NormalTok{)}
\FunctionTok{print}\NormalTok{(}\FunctionTok{sprintf}\NormalTok{(}\StringTok{"Prädiktionsakkuratheit = \%0.2f"}\NormalTok{, }\FunctionTok{mean}\NormalTok{(R}\SpecialCharTok{$}\NormalTok{Prädiktion }\SpecialCharTok{==}\NormalTok{ R}\SpecialCharTok{$}\NormalTok{Erfolg)))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Prädiktionsakkuratheit = 0.80"
\end{verbatim}
\end{frame}

\begin{frame}{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-2}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Eine verdeckte Schicht mit zwei Neuronen

\tiny
\setstretch{0.8}

\begin{longtable}[]{@{}lrrrrr@{}}
\toprule()
& Intelligenztest & Mathematiktest & Erfolg & Output & Prädiktion \\
\midrule()
\endhead
1 & 54 & 44 & 0 & 0.0 & 0 \\
2 & 60 & 20 & 0 & 0.0 & 0 \\
3 & 67 & 36 & 0 & 0.7 & 1 \\
4 & 41 & 39 & 0 & 0.0 & 0 \\
5 & 66 & 57 & 0 & 0.8 & 1 \\
6 & 51 & 28 & 0 & 0.0 & 0 \\
7 & 51 & 46 & 0 & 0.0 & 0 \\
8 & 37 & 46 & 0 & 0.0 & 0 \\
9 & 57 & 54 & 0 & 0.0 & 0 \\
10 & 47 & 12 & 0 & 0.0 & 0 \\
11 & 50 & 67 & 0 & 0.6 & 1 \\
12 & 42 & 63 & 0 & 0.1 & 0 \\
13 & 60 & 64 & 0 & 0.2 & 0 \\
14 & 36 & 64 & 0 & 0.0 & 0 \\
15 & 60 & 71 & 0 & 0.2 & 0 \\
31 & 71 & 41 & 1 & 1.0 & 1 \\
32 & 65 & 28 & 1 & 0.4 & 0 \\
33 & 67 & 76 & 1 & 0.9 & 1 \\
34 & 68 & 54 & 1 & 0.9 & 1 \\
35 & 75 & 33 & 1 & 1.0 & 1 \\
36 & 71 & 82 & 1 & 1.0 & 1 \\
37 & 68 & 64 & 1 & 0.9 & 1 \\
38 & 63 & 72 & 1 & 0.6 & 1 \\
39 & 48 & 54 & 1 & 0.4 & 0 \\
40 & 53 & 86 & 1 & 0.8 & 1 \\
41 & 62 & 71 & 1 & 0.5 & 0 \\
42 & 69 & 25 & 1 & 0.8 & 1 \\
43 & 67 & 72 & 1 & 0.9 & 1 \\
44 & 74 & 92 & 1 & 1.0 & 1 \\
45 & 76 & 75 & 1 & 1.0 & 1 \\
\bottomrule()
\end{longtable}
\end{frame}

\begin{frame}[fragile]{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-3}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Eine verdeckte Schicht mit zwei Neuronen

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{plot}\NormalTok{(nn)}
\end{Highlighting}
\end{Shaded}

\vspace{3mm}

\center

\begin{center}\includegraphics[width=1\linewidth]{9_Abbildungen/mvda_9_neural_network_beispiel_1} \end{center}
\end{frame}

\begin{frame}[fragile]{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-4}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Zwei verdeckte Schichten mit drei Neuronen \vspace{3mm}

\tiny
\setstretch{1}

\begin{Shaded}
\begin{Highlighting}[]
\CommentTok{\# R Pakete}
\FunctionTok{library}\NormalTok{(foreign)}
\FunctionTok{library}\NormalTok{(neuralnet)}

\CommentTok{\# Einlesen der Studienerfolgdaten und Fokus auf binäre Klassifikation}
\NormalTok{D              }\OtherTok{=} \FunctionTok{read.spss}\NormalTok{(}\FunctionTok{file.path}\NormalTok{(}\FunctionTok{getwd}\NormalTok{(), }\StringTok{"9\_Daten"}\NormalTok{, }\StringTok{"studienerfolg.sav"}\NormalTok{),}
                          \AttributeTok{to.data.frame =}\NormalTok{ T)}
\NormalTok{D              }\OtherTok{=}\NormalTok{ D[D[,}\DecValTok{1}\NormalTok{] }\SpecialCharTok{!=} \StringTok{"befriedigend"}\NormalTok{,]                  }\CommentTok{\# Binärisierung des Datensatzes}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Intelligenz  }\OtherTok{=}\NormalTok{ D}\SpecialCharTok{$}\NormalTok{X1                                         }\CommentTok{\# Variablenbennenung}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Mathematik   }\OtherTok{=}\NormalTok{ D}\SpecialCharTok{$}\NormalTok{X2                                         }\CommentTok{\# Variablenbenennung}
\NormalTok{D}\SpecialCharTok{$}\NormalTok{Erfolg       }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\FunctionTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{,}\DecValTok{15}\NormalTok{), }\FunctionTok{rep}\NormalTok{(}\DecValTok{1}\NormalTok{,}\DecValTok{15}\NormalTok{))                      }\CommentTok{\# Recoding der Binärisierung}


\CommentTok{\# Trainieren eines neuronalen Netzes mit 2 Hidden Neurons}
\FunctionTok{set.seed}\NormalTok{(}\DecValTok{7}\NormalTok{)                                                   }\CommentTok{\# Der Algorithmus ist nicht deterministisch!}
\NormalTok{nn             }\OtherTok{=} \FunctionTok{neuralnet}\NormalTok{(Erfolg }\SpecialCharTok{\textasciitilde{}}\NormalTok{ Intelligenz }\SpecialCharTok{+}\NormalTok{ Mathematik, }\CommentTok{\# y\^{}\{(i)\}, x\^{}\{(i)\} Definitionen}
                           \AttributeTok{data          =}\NormalTok{ D,                 }\CommentTok{\# Datensatz}
                           \AttributeTok{hidden        =} \FunctionTok{c}\NormalTok{(}\DecValTok{3}\NormalTok{,}\DecValTok{3}\NormalTok{),            }\CommentTok{\# 3 Neurone in 2 verdeckten Schichten}
                           \AttributeTok{err.fct       =} \StringTok{"ce"}\NormalTok{,              }\CommentTok{\# Cross Entropie Kostenfunktion}
                           \AttributeTok{linear.output =} \ConstantTok{FALSE}\NormalTok{)             }\CommentTok{\# Sigmoide Aktivierungsfunktion}


\CommentTok{\# Resultstatsaufbereitung}
\NormalTok{R              }\OtherTok{=} \FunctionTok{data.frame}\NormalTok{(nn}\SpecialCharTok{$}\NormalTok{covariate, nn}\SpecialCharTok{$}\NormalTok{response, nn}\SpecialCharTok{$}\NormalTok{net.result[[}\DecValTok{1}\NormalTok{]], }\FunctionTok{as.numeric}\NormalTok{(nn}\SpecialCharTok{$}\NormalTok{net.result[[}\DecValTok{1}\NormalTok{]] }\SpecialCharTok{\textgreater{}} \FloatTok{0.5}\NormalTok{))}
\FunctionTok{colnames}\NormalTok{(R)    }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\StringTok{"Intelligenztest"}\NormalTok{, }\StringTok{"Mathematiktest"}\NormalTok{, }\StringTok{"Erfolg"}\NormalTok{, }\StringTok{"Output"}\NormalTok{, }\StringTok{"Prädiktion"}\NormalTok{)}
\FunctionTok{print}\NormalTok{(}\FunctionTok{sprintf}\NormalTok{(}\StringTok{"Prädiktionsakkuratheit = \%0.2f"}\NormalTok{, }\FunctionTok{mean}\NormalTok{(R}\SpecialCharTok{$}\NormalTok{Prädiktion }\SpecialCharTok{==}\NormalTok{ R}\SpecialCharTok{$}\NormalTok{Erfolg)))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Prädiktionsakkuratheit = 0.97"
\end{verbatim}
\end{frame}

\begin{frame}{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-5}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Zwei verdeckte Schichten mit drei Neuronen

\tiny
\setstretch{0.8}

\begin{longtable}[]{@{}lrrrrr@{}}
\toprule()
& Intelligenztest & Mathematiktest & Erfolg & Output & Prädiktion \\
\midrule()
\endhead
1 & 54 & 44 & 0 & 0.1 & 0 \\
2 & 60 & 20 & 0 & 0.1 & 0 \\
3 & 67 & 36 & 0 & 0.1 & 0 \\
4 & 41 & 39 & 0 & 0.1 & 0 \\
5 & 66 & 57 & 0 & 0.1 & 0 \\
6 & 51 & 28 & 0 & 0.1 & 0 \\
7 & 51 & 46 & 0 & 0.1 & 0 \\
8 & 37 & 46 & 0 & 0.1 & 0 \\
9 & 57 & 54 & 0 & 0.1 & 0 \\
10 & 47 & 12 & 0 & 0.1 & 0 \\
11 & 50 & 67 & 0 & 0.1 & 0 \\
12 & 42 & 63 & 0 & 0.1 & 0 \\
13 & 60 & 64 & 0 & 0.1 & 0 \\
14 & 36 & 64 & 0 & 0.1 & 0 \\
15 & 60 & 71 & 0 & 0.1 & 0 \\
31 & 71 & 41 & 1 & 1.0 & 1 \\
32 & 65 & 28 & 1 & 1.0 & 1 \\
33 & 67 & 76 & 1 & 1.0 & 1 \\
34 & 68 & 54 & 1 & 1.0 & 1 \\
35 & 75 & 33 & 1 & 1.0 & 1 \\
36 & 71 & 82 & 1 & 1.0 & 1 \\
37 & 68 & 64 & 1 & 1.0 & 1 \\
38 & 63 & 72 & 1 & 1.0 & 1 \\
39 & 48 & 54 & 1 & 0.1 & 0 \\
40 & 53 & 86 & 1 & 1.0 & 1 \\
41 & 62 & 71 & 1 & 1.0 & 1 \\
42 & 69 & 25 & 1 & 1.0 & 1 \\
43 & 67 & 72 & 1 & 1.0 & 1 \\
44 & 74 & 92 & 1 & 1.0 & 1 \\
45 & 76 & 75 & 1 & 1.0 & 1 \\
\bottomrule()
\end{longtable}
\end{frame}

\begin{frame}[fragile]{Anwendungsbeispiele}
\protect\hypertarget{anwendungsbeispiele-6}{}
\small

\textcolor{darkblue}{Prädiktive Modellierung von \textit{studienerfolg.sav} mit neuralnet()}
(Günther and Fritsch (2010))

\(\Rightarrow\) Zwei verdeckte Schichten mit drei Neuronen

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{plot}\NormalTok{(nn)}
\end{Highlighting}
\end{Shaded}

\vspace{3mm}

\center

\begin{center}\includegraphics[width=1\linewidth]{9_Abbildungen/mvda_9_neural_network_beispiel_2} \end{center}
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-8}{}
\vfill
\setstretch{2}
\large

Vorbemerkungen

Funktionale Architektur

Lernen

Backpropagation

Anwendungsbeispiel

\textbf{Selbstkontrollfragen} \vfill
\end{frame}

\begin{frame}{Selbstkontrollfragen}
\protect\hypertarget{selbstkontrollfragen}{}
\footnotesize
\begin{enumerate}
\justifying
\item Erläutern Sie die zentralen Ideen Universeller Approximationstheoreme im Kontext neuronaler Netze.
\item Nennen Sie die Formel für das Potential $z_i^l$ eines Neurons $i$ in einer Schicht $l$ eines neuronalen Netzes
und erläutern Sie die verschiedenen Komponenten dieser Formel und ihre intuitive Bedeutung.
\item Skizzieren Sie die Standard Logistic und ReLU Aktivierungsfunktionen und ihre Ableitungen.
\item Nennen Sie die Formel für die Aktivierung $a_i^l$ eines Neurons $i$ in einer Schicht $l$ eines neuronalen Netzes und erläutern Sie ihre Bestandteile und deren intuitive Bedeutung.
\item Erläutern Sie das prinzipielle Vorgehen zum Trainieren eines neuronalen Netzes.
\item Definieren Sie die (Output-spezifische) Quadratische  Kostenfunktion und erläutern Sie ihre Bestandteile.
\item Geben Sie das Batch Gradientenverfahren zum Trainieren neuronaler Netze wieder.
\item Differenzieren Sie die Begriffe Batch und Stochastischen Gradientenverfahren zum Trainieren neuronaler Netze.
\item Erläutern Sie Wesen und Motivation des Backpropagation Algorithmus.
\item Lesen Sie den Datensatz \href{http://www3.hogrefe.de/fileadmin/redakteure/hogrefe_de/Psychlehrbuchplus/Multivariate_Verfahren_2Aufl/Diskriminanzanalyse/Studienerfolg.sav}{studienerfolg.sav} 
mit R ein und bestimmen Sie den Trainingsdatenprädiktionsfehler nach Trainieren eines neuronalen Netzes mithilfe des R Pakets neuralnet
zur prädiktiven Modellierung des Studienerfolgs (gut, ungenügend) basierend auf (1) den Intelligenztestdaten,
(2) den Intelligenz- und Mathematiktestdaten und (3) den Intelligenztest-, Mathematiktest-, und Gewissenhaftigkeitsdaten. Wiederholen Sie Ihre Analyse zur Bestimmung des 
Generalisierungsfehlers im Rahmen einer Leave-One-Out Kreuzvalidierung.
\end{enumerate}
\end{frame}

\begin{frame}[allowframebreaks]{References}
\protect\hypertarget{references}{}
\setstretch{1}
\footnotesize

\hypertarget{refs}{}
\begin{CSLReferences}{1}{0}
\leavevmode\vadjust pre{\hypertarget{ref-cybenko_1989}{}}%
Cybenko, G. 1989. {``Approximation by Superpositions of a Sigmoidal
Function.''} \emph{Mathematics of Control, Signals, and Systems}, 12.

\leavevmode\vadjust pre{\hypertarget{ref-dwyer_2018}{}}%
Dwyer, Dominic B., Peter Falkai, and Nikolaos Koutsouleris. 2018.
{``Machine {Learning Approaches} for {Clinical Psychology} and
{Psychiatry}.''} \emph{Annual Review of Clinical Psychology} 14 (1):
91--118. \url{https://doi.org/10.1146/annurev-clinpsy-032816-045037}.

\leavevmode\vadjust pre{\hypertarget{ref-friedman_1970}{}}%
Friedman, Avner. 1970. \emph{Foundations of {Modern Analysis}}. {Dover
Publications}.

\leavevmode\vadjust pre{\hypertarget{ref-gunther_2010}{}}%
Günther, Frauke, and Stefan Fritsch. 2010. {``Neuralnet: {Training} of
{Neural Networks}.''} \emph{The R Journal} 2 (1): 30.
\url{https://doi.org/10.32614/RJ-2010-006}.

\leavevmode\vadjust pre{\hypertarget{ref-hanin_2018}{}}%
Hanin, Boris, and Mark Sellke. 2018. {``Approximating {Continuous
Functions} by {ReLU Nets} of {Minimal Width}.''} \emph{arXiv:1710.11278
{[}Cs, Math, Stat{]}}, March. \url{https://arxiv.org/abs/1710.11278}.

\leavevmode\vadjust pre{\hypertarget{ref-hopfield_1982}{}}%
Hopfield, J. J. 1982. {``Neural Networks and Physical Systems with
Emergent Collective Computational Abilities.''} \emph{Proceedings of the
National Academy of Sciences} 79 (8): 2554--58.
\url{https://doi.org/10.1073/pnas.79.8.2554}.

\leavevmode\vadjust pre{\hypertarget{ref-hornik_1991}{}}%
Hornik, Kurt. 1991. {``Approximation Capabilities of Multilayer
Feedforward Networks.''} \emph{Neural Networks} 4 (2): 251--57.
\url{https://doi.org/10.1016/0893-6080(91)90009-T}.

\leavevmode\vadjust pre{\hypertarget{ref-kidger_2020}{}}%
Kidger, Patrick, and Terry Lyons. 2020. {``Universal {Approximation}
with {Deep Narrow Networks}.''} \emph{arXiv:1905.08539 {[}Cs, Math,
Stat{]}}, June. \url{https://arxiv.org/abs/1905.08539}.

\leavevmode\vadjust pre{\hypertarget{ref-lecun_2015}{}}%
LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. 2015. {``Deep
Learning.''} \emph{Nature} 521 (7553): 436--44.
\url{https://doi.org/10.1038/nature14539}.

\leavevmode\vadjust pre{\hypertarget{ref-leshno_1993}{}}%
Leshno, Moshe, Vladimir Ya. Lin, Allan Pinkus, and Shimon Schocken.
1993. {``Multilayer Feedforward Networks with a Nonpolynomial Activation
Function Can Approximate Any Function.''} \emph{Neural Networks} 6 (6):
861--67. \url{https://doi.org/10.1016/S0893-6080(05)80131-5}.

\leavevmode\vadjust pre{\hypertarget{ref-lu_2017a}{}}%
Lu, Zhou, Hongming Pu, Feicheng Wang, Zhiqiang Hu, and Liwei Wang. 2017.
{``The {Expressive Power} of {Neural Networks}: {A View} from the
{Width}.''} \emph{arXiv:1709.02540 {[}Cs{]}}, November.
\url{https://arxiv.org/abs/1709.02540}.

\leavevmode\vadjust pre{\hypertarget{ref-mcculloch_1943}{}}%
McCulloch, Warren S, and Walter Pitts. 1943. {``A Logical Calculus of
the Ideas Immanent in Nervous Activity.''} \emph{Bulletin of
Mathematical Biophysics} 5: 115--33.

\leavevmode\vadjust pre{\hypertarget{ref-minsky_1969}{}}%
Minsky, Marvin, and Seymour A. Papert. 1969. \emph{Perceptrons: An
Introduction to Computational Geometry}. 2. print. with corr.
{Cambridge/Mass.}: {The MIT Press}.

\leavevmode\vadjust pre{\hypertarget{ref-ostwald_2021}{}}%
Ostwald, Dirk, and Franziska Usée. 2021. {``An Induction Proof of the
Backpropagation Algorithm in Matrix Notation.''} \emph{arXiv:2107.09384
{[}Cs, Math, q-Bio, Stat{]}}, July.
\url{https://arxiv.org/abs/2107.09384}.

\leavevmode\vadjust pre{\hypertarget{ref-pinkus_1999}{}}%
Pinkus, Allan. 1999. {``Approximation Theory of the {MLP} Model in
Neural Networks.''} \emph{Acta Numerica} 8 (January): 143--95.
\url{https://doi.org/10.1017/S0962492900002919}.

\leavevmode\vadjust pre{\hypertarget{ref-rosenblatt_1958}{}}%
Rosenblatt, F. 1958. {``The Perceptron: {A} Probabilistic Model for
Information Storage and Organization in the Brain.''}
\emph{Psychological Review} 65 (6): 386--408.
\url{https://doi.org/10.1037/h0042519}.

\leavevmode\vadjust pre{\hypertarget{ref-rumelhart_1986}{}}%
Rumelhart, David E, Geoffrey E Hinton, and Ronald J Williams. 1986.
{``Learning Representations by Back-Propagating Errors.''}
\emph{Nature}, no. 323: 533--36.

\leavevmode\vadjust pre{\hypertarget{ref-schmidhuber_2015}{}}%
Schmidhuber, Jürgen. 2015. {``Deep Learning in Neural Networks: {An}
Overview.''} \emph{Neural Networks} 61 (January): 85--117.
\url{https://doi.org/10.1016/j.neunet.2014.09.003}.

\end{CSLReferences}
\end{frame}

\end{document}
