\documentclass[12pt,a4paper]{article}
\usepackage{german}
\usepackage{graphicx}
\graphicspath{{eps/}{pdf/}}
\pagestyle{empty}
\oddsidemargin 2.1mm
\textwidth     155mm
\topmargin     -15mm
\textheight    240mm

\def\net{\mathop{\rm net}\nolimits}

\begin{document}

%-----------------------------------------------------------------------

\noindent
{\bf K"unstliche Neuronale Netze und Deep Learning}
\hfill Sommer 2018 \\
Christian Borgelt und Christoph Doell \hfill ab 2018.06.19

%-----------------------------------------------------------------------

\vskip3ex
\centerline{\bf 7.~"Ubungsblatt}

%-----------------------------------------------------------------------

\subsubsection*{Aufgabe 27 \quad\rm
                Aktivierungsfunktion und Klassifikation}

\begin{enumerate}\itemsep0pt
\item[a)\hfill]
     Nehmen Sie an, in einem mehrschichtigen Perzeptron werde der
     {\em tangens hyperbolicus\/} als Aktivierungsfunktion verwendet.
     Leiten Sie den Faktor in der Fehler-R"uck"ubertragungsformel ab,
     der sich aus dieser Aktivierungsfunktion ergibt! Versuchen Sie,
     einen Ausdruck zu finden, der "ahnlich einfach ist wie der, der
     sich f"ur die logistische Funktion ergibt (siehe Ableitung in
     der Vorlesung)!
\item[b)\hfill]
     Betrachten Sie ein Drei-Klassen-Problem, d.h., einen Datensatz,
     in dem jeder Datenpunkt genau einer von drei Klassen zugeordnet
     ist. Der in der Vorlesung besprochene Iris-Datensatz mag als
     Beispiel dienen. Um dieses Problem mit einem mehrschichtigen
     Perzeptron zu l"osen, d.h., um einen Klassifikator in Form eines
     neuronalen Netzes zu erzeugen/trainieren, mu"s man die Zahl der
     Ausgabeneuronen sowie die gew"unschten Ausgabewerte f"ur diese
     Neuronen w"ahlen. Welche Anzahl von Neuronen w"urden Sie w"ahlen
     und welche Ausgabewerte w"urden Sie zuordnen, wenn die
     Aktivierungsfunktion (1)~die logistische Funktion oder
     (2)~der {\em tangens hyperbolicus\/} ist? Ist es eine gute Idee,
     die gew"unschten Werte aus den S"attigungswerten dieser
     Funktionen abzuleiten? Begr"unden Sie Ihre Antwort!
\end{enumerate}

%-----------------------------------------------------------------------

\subsubsection*{Aufgabe 28 \quad\rm Convolutional Neural Networks}

In der Bildverarbeitung werden Graustufenbilder oft als zweiparametrige
Funktion $f(x,y)$ dargestellt ($x$ und $y$: Koordinaten eines
Bildpunktes, Funktionswert: Graustufe des Bildpunktes) und als Matrix
beschrieben. Es sei das folgende Bild~$\mathbf{A}$ gegeben:
\[ \mathbf{A} = \left[\begin{array}{cccccc}
                0 &  0 &  0 &  0 &  0 & 0 \\
                0 & 10 & 10 & 10 & 10 & 0 \\
                0 & 10 & 10 & 10 & 10 & 0 \\
                0 & 10 & 10 &  0 &  0 & 0 \\
                0 & 10 & 10 &  0 &  0 & 0 \\
                0 &  0 &  0 &  0 &  0 & 0
                \end{array}\right] \]
Convolutional Neural Networks sind in der Lage, Bilddaten effizient
und unabh"angig von Position und Rotation in den Bildern sichtbarer
Objekte zu verarbeiten. Hierf"ur werden sogenannte Kernfunktionen
({\em kernel functions\/}) verwendet, welche mit Ausschnitten der
Bildmatrix verrechnet (mit dem Bild gefaltet) werden. Die berechneten
Faltungsmerkmale ({\em convolved features\/}) dienen dann zur
Erkennung von Objekten.

Ein m"ogliches Faltungsmerkmal ist das Vorliegen einer Kante.
Nimmt man an, da\3 an einer Kante die Helligkeit stark wechselt,
so kann man Kanten an den Extremwerten der ersten Ableitung der
Bildfunktion~$f$ erkennen. Auf dieser Idee beruht der sogenannte
Sobel-Operator, der aus zwei Teiloperatoren/Kernfunktionen besteht,
n"amlich
\[ \mathbf{S}_x = \left[\begin{array}{rrr}
                  \phantom{-}1 & \phantom{-}0 & -1 \\
                  2 & 0 & -2 \\
                  1 & 0 & -1
                  \end{array}\right]
   \qquad\mbox{und}\qquad
   \mathbf{S}_y = \left[\begin{array}{rrr}
                   1 &  2 &  1 \\
                   0 &  0 &  0 \\
                  -1 & -2 & -1
  \end{array}\right]. \]
\begin{itemize}
\item[a)\hfill]
     Berechnen Sie die Faltungsmerkmale~$\mathbf{G}_x$ und
     $\mathbf{G}_y$ durch ausschnittweise Multiplikation (Faltung)
     der Operatoren $\mathbf{S}_x$ und $\mathbf{S}_y$ mit der
     Matrix~$\mathbf{A}$, d.h.\
     $\mathbf{G}_x = \mathbf{S}_x * \mathbf{A}$ und
     $\mathbf{G}_y = \mathbf{S}_y * \mathbf{A}$!
     (Ein Tabellenkalkulationsprogramm k"onnte hilfreich sein.)
\item[b)\hfill]
     Aus den erhaltenen richtungsabh"angigen Matrizen~$\mathbf{G}_x$
     und~$\mathbf{G}_y$ soll eine richtungsunabh"angige
     Matrix~$\mathbf{G} = (g_{ij})_{i,j=1,\ldots,6}$ erstellt werden.
     Dazu werden die Eintr"age $g_{x,ij}$ und $g_{y,ij}$ der
     richtungsabh"angigen Matrizen~$\mathbf{G}_x$ und $\mathbf{G}_y$
     jeweils quadriert, dann aufsummiert und aus dem Ergebnis die
     Wurzel gezogen, d.h.\
     $g_{ij} = \sqrt{g_{x,ij}^2 + g_{y,ij}^2}$.
     Berechnen sie die Matrix~$\mathbf{G}$ mit Hilfe der
     Teilergebnisse aus Aufgabenteil~a) und beschreiben Sie das
     Endergebnis!
\end{itemize}

%-----------------------------------------------------------------------

\subsubsection*{Aufgabe 29 \quad\rm Deep Learning: $n$-Bit Parit"at}

In der Vorlesung wurde gezeigt, wie die $n$-Bit Parit"at durch eine
Kette aus Teilnetzen berechnet werden kann, dessen erstes die
Biimplikation und deren restliche $n-2$ das Exklusive Oder berechnen.
Zeigen Sie, wie die $n$-Bit Parit"at auch durch einen bin"aren Baum
von Teilnetzen berechnet werden kann, die jeweils die Biimplikation
berechnen! Wie viele Schichten hat das sich ergebende Netzwerk
(als Funktion von~$n$)? Wie viele Neuronen hat es insgesamt
(als Funktion von~$n$)?

%-----------------------------------------------------------------------

\subsubsection*{Aufgabe 30 \quad\rm Deep Learning: Dropout}

\begin{enumerate}\itemsep0pt
\item[a)\hfill]
     Gegeben sei ein 12-schichtiges Perzeptron mit 10~Eingabeneuronen,
     10~Neuronen je versteckter Schicht und einem Ausgabeneuron.
     Wie viele Gewichte m"ussen in diesem Netz ingesamt trainiert
     werden?
\item[b)\hfill]
     Zum Trainieren des Netzes soll der Dropout-Ansatz verwendet werden.
     Wie viele Gewichte m"ussen je Trainingsschritt beachtet werden,
     wenn durch den Dropout (durchschnittlich) 5~Neuronen je Schicht
     deaktiviert werden?
\item[c)\hfill]
     Wie h"angt die (erwartete) Anzahl der zu beachtenden Gewichte
     von der Dropout-Rate ab, d.h., dem Bruchteil der je Schicht
     deaktivierten Neuronen?
\end{enumerate}

%-----------------------------------------------------------------------

\end{document}
