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

194 lines
6.3 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

\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 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}