This repository has been archived on 2022-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
presis/latex/machine-learning/index.tex

195 lines
6.4 KiB
TeX
Raw Normal View History

2019-07-08 21:18:31 +02:00
\PassOptionsToPackage{table}{xcolor}
\documentclass[aspectratio=1610, theme=focus]{custombeamer}
%\usetheme{focus}
\usepackage[ngerman]{babel}
\usepackage{biblatex}
\nocite{*}
\addbibresource{sources.bib}
\usetikzlibrary{decorations.pathreplacing, positioning}
\usepackage[thinlines]{easytable}
\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{TAB}(e,1em,1em){|c|c|c|}{|c|c|c|}
\x & \o & \x \\
1 & \o & 0 \\
\x & 0.5 & \o \\
\end{TAB} \\
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 dont 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&regDataset=reg-plane&learningRate=0.03&regularizationRate=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&regularizationRate_hide=true&learningRate_hide=true&batchSize_hide=true&dataset_hide=true&regularization_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}