194 lines
6.3 KiB
TeX
194 lines
6.3 KiB
TeX
\PassOptionsToPackage{table}{xcolor}
|
||
\documentclass{custombeamer}
|
||
|
||
\usepackage[ngerman]{babel}
|
||
|
||
\usepackage{biblatex}
|
||
\nocite{*}
|
||
\addbibresource{sources.bib}
|
||
|
||
\usetikzlibrary{decorations.pathreplacing, positioning}
|
||
|
||
\usepackage{tabularx}
|
||
|
||
\title{Machine Learning}
|
||
\subtitle{Eine Einführung}
|
||
\author{Simon Bruder}
|
||
%\titlegraphic{\includegraphics[scale=1.25]{focuslogo.pdf}}
|
||
\institute{Christian-von-Bomhard-Schule}
|
||
\usepackage{datetime}
|
||
\newdate{date}{09}{07}{2019}
|
||
\date{\displaydate{date}}
|
||
|
||
\begin{document}
|
||
\begin{frame}
|
||
\maketitle
|
||
\end{frame}
|
||
|
||
\begin{frame}[noframenumbering]
|
||
\tableofcontents
|
||
\end{frame}
|
||
|
||
\section{Einsatzgebiete}
|
||
\begin{frame}{Einsatzgebiete}
|
||
\begin{itemize}
|
||
\item{Computerspiele-»KI«}
|
||
\item{Medizinische Diagnostik}
|
||
\item{Personalisierte Werbung}
|
||
\item{Selbstfahrende Autos}
|
||
\item{Spracherkennung}
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
\section{Praxis: Tic Tac Toe}
|
||
\begin{frame}{Tic Tac Toe}
|
||
\begin{minipage}[t]{.5\textwidth}
|
||
\textbf{Lernen}
|
||
\begin{itemize}
|
||
\item{Computer weiß nur, wann das Spiel gewonnen ist}
|
||
\item{\textbf{Generator} gibt zufällige Züge zurück}
|
||
\item{Wenn gewonnen: \textbf{Diskriminator} wertet Züge von Gewinner auf, Züge von Verlierer ab}
|
||
\end{itemize}
|
||
\end{minipage}%
|
||
\begin{minipage}[t]{.5\textwidth}
|
||
\textbf{Anwenden}
|
||
\begin{itemize}
|
||
\item{\textbf{Generator} weiß für jede Spielsituation, wie erfolgreich ein Zug ist}
|
||
\item{Erfolgreichster Zug wird ausgeführt}
|
||
\item{→ Immer Gewinn oder Unentschieden}
|
||
\end{itemize}
|
||
\end{minipage}
|
||
|
||
\vspace{1em}
|
||
\renewcommand*{\o}{$\pmb\bigcirc$}
|
||
\newcommand*{\x}{$\pmb\times$}
|
||
\begin{center}
|
||
\pause
|
||
\ttfamily\begin{tabularx}{7em}{|X|X|X|}
|
||
\x & \o & \x \\\hline
|
||
1 & \o & 0.5\\\hline
|
||
\x & 0 & \o \\
|
||
\end{tabularx}
|
||
X am Zug
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\section{Theorie: Neuronale Netzwerke}
|
||
\begin{frame}{Neuronale Netzwerke: Eingabe}
|
||
\begin{center}
|
||
\begin{tikzpicture}
|
||
\onslide<+>\node[] (traffic light) {\includegraphics[height=.75\textheight]{traffic-light-ryg}};
|
||
\onslide<+->\node[] (traffic light) {\includegraphics[height=.75\textheight]{traffic-light-ryg-gray}};
|
||
\onslide<+->
|
||
\draw[decoration={brace, raise=1pt, amplitude=5pt}, decorate] (traffic light.north west) -- node[above=5pt] (width) {$25$} (traffic light.north east);
|
||
\draw[decoration={brace, mirror, raise=1pt, amplitude=5pt}, decorate] (traffic light.south east) -- node[right=5pt] (height) {$75$} (traffic light.north east);
|
||
\onslide<+->
|
||
\node[right=5 of traffic light.north east] (input) {$25 \cdot 75 = 1875$};
|
||
\draw[->, thick] (traffic light.north east) ++ (0.25,0) -- (input);
|
||
\onslide<+->
|
||
\node[below=1em of input] (values) {$[0 .. 255]$ → $[0, 1]$};
|
||
\node[below=1em of values] {\includegraphics[width=.33\textwidth]{traffic-light-ryg-gray-values}};
|
||
\onslide<1-> % I don’t use reveal because I have to do ugly hacks there … wait what?
|
||
\end{tikzpicture}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Neuronale Netzwerke}
|
||
% stolen from https://tex.stackexchange.com/a/153974
|
||
\tikzset{%
|
||
every neuron/.style={
|
||
circle,
|
||
draw,
|
||
minimum size=1cm
|
||
},
|
||
neuron missing/.style={
|
||
draw=none,
|
||
scale=4,
|
||
text height=0.333cm,
|
||
execute at begin node=\color{black}$\vdots$
|
||
},
|
||
}
|
||
|
||
\begin{tikzpicture}[x=2.4cm, y=1.5cm, >=stealth, font=\sffamily]
|
||
|
||
\foreach \m/\l [count=\y] in {1,2,3,missing,4}
|
||
\node [every neuron/.try, neuron \m/.try] (input-\m) at (0,2.5-\y) {};
|
||
|
||
\foreach \m [count=\y] in {1,missing,2}
|
||
\node [every neuron/.try, neuron \m/.try ] (hidden-\m) at (2,2-\y*1.25) {};
|
||
|
||
\foreach \m [count=\y] in {1,2,3}
|
||
\node [every neuron/.try, neuron \m/.try ] (output-\m) at (4,1.5-\y) {};
|
||
|
||
\foreach \l [count=\i] in {1,2,3,1875}
|
||
\draw [<-] (input-\i) -- ++(-1,0)
|
||
node [above, midway] {$I_{\l}$};
|
||
|
||
\foreach \l [count=\i] in {1,n}
|
||
\node [above] at (hidden-\i.north) {$H_\l$};
|
||
|
||
\foreach \l [count=\i] in {1,2,3}
|
||
\draw [->] (output-\i) -- ++(1,0)
|
||
node [above, midway] {$O_\l$};
|
||
|
||
\foreach \i in {1,...,4}
|
||
\foreach \j in {1,...,2}
|
||
\draw [->] (input-\i) -- (hidden-\j);
|
||
|
||
\foreach \i in {1,...,2}
|
||
\foreach \j in {1,...,3}
|
||
\draw [->] (hidden-\i) -- (output-\j);
|
||
|
||
\foreach \l [count=\x from 0] in {Input, Hidden, Output}
|
||
\node [align=center, above] at (\x*2,1.9) {\l \\ layer};
|
||
|
||
\end{tikzpicture}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Graphische Demo}
|
||
\href{https://playground.tensorflow.org/\#activation=tanh&batchSize=10&dataset=gauss®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=4,2&seed=0.90019&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false&discretize_hide=true&numHiddenLayers_hide=true®ularizationRate_hide=true&learningRate_hide=true&batchSize_hide=true&dataset_hide=true®ularization_hide=true&noise_hide=true&problem_hide=true&activation_hide=true&showTestData_hide=false&percTrainData_hide=false}{playground.tensorflow.org}
|
||
\end{frame}
|
||
|
||
\section{Training in der Praxis}
|
||
\begin{frame}{Training}
|
||
\pause\begin{minipage}[t]{.30\textwidth}
|
||
\textbf{Computer trainiert sich selbst}
|
||
|
||
\begin{itemize}
|
||
\item{Diskriminator hat Regelwerk vorliegen}
|
||
\item{In zufälliger Generation ist auch ein richtiges Ergebnis vorhanden}
|
||
\item{Funktioniert gut für Spiele}
|
||
\end{itemize}
|
||
\end{minipage}\hfill%
|
||
\pause\begin{minipage}[t]{.30\textwidth}
|
||
\textbf{Entwickelnde Menschen als Diskriminator}
|
||
|
||
\begin{itemize}
|
||
\item{Menschen geben Eingabe und gewünschte Ausgabe vor}
|
||
\item{Teilweise existieren schon Datensätze}
|
||
\item{Arbeitsaufwändig/Teuer}
|
||
\end{itemize}
|
||
\end{minipage}\hfill%
|
||
\pause\begin{minipage}[t]{.30\textwidth}
|
||
\includegraphics[height=.1\textheight]{im-not-a-robot} \\
|
||
\includegraphics[height=.7\textheight]{captcha}
|
||
\end{minipage}%
|
||
\end{frame}
|
||
|
||
\appendix
|
||
\begin{frame}{Quellen}
|
||
\printbibliography[heading=none]
|
||
\end{frame}
|
||
|
||
\begin{frame}[focus]
|
||
Nicht ganz verstanden? \\
|
||
Fragen?
|
||
\end{frame}
|
||
|
||
\begin{frame}{Bonus/Weiterführende Informationen}
|
||
\begin{itemize}
|
||
\item{Videoserie: \href{https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi}{3Blue1Brown: Neural networks}}
|
||
\end{itemize}
|
||
\end{frame}
|
||
\end{document}
|