From aaafd4b6f91a29ca1d206954f43e8e5bc8a0baf7 Mon Sep 17 00:00:00 2001 From: Clemens Dautermann Date: Wed, 15 Jan 2020 22:22:34 +0100 Subject: [PATCH] Finished convolution chapter --- doc/Grundlagen_des_maschinellen_lernens.aux | 95 +++--- doc/Grundlagen_des_maschinellen_lernens.lof | 40 ++- doc/Grundlagen_des_maschinellen_lernens.log | 312 +++++++++--------- doc/Grundlagen_des_maschinellen_lernens.pdf | Bin 457912 -> 1088555 bytes ...dlagen_des_maschinellen_lernens.synctex.gz | Bin 118225 -> 129448 bytes doc/Grundlagen_des_maschinellen_lernens.tex | 63 +++- doc/Grundlagen_des_maschinellen_lernens.toc | 36 +- graphics/features.png | Bin 0 -> 404370 bytes graphics/mnist_5/mnist_5_left_edges.png | Bin 0 -> 4416 bytes graphics/mnist_5/mnist_5_lower_edges.png | Bin 0 -> 4455 bytes graphics/mnist_5/mnist_5_raw.png | Bin 0 -> 3777 bytes graphics/mnist_5/mnist_5_right_edges.png | Bin 0 -> 4368 bytes graphics/mnist_5/mnist_5_upper_edges.png | Bin 0 -> 4121 bytes other scripts/convolutioner.py | 50 +++ 14 files changed, 357 insertions(+), 239 deletions(-) create mode 100644 graphics/features.png create mode 100644 graphics/mnist_5/mnist_5_left_edges.png create mode 100644 graphics/mnist_5/mnist_5_lower_edges.png create mode 100644 graphics/mnist_5/mnist_5_raw.png create mode 100644 graphics/mnist_5/mnist_5_right_edges.png create mode 100644 graphics/mnist_5/mnist_5_upper_edges.png create mode 100644 other scripts/convolutioner.py diff --git a/doc/Grundlagen_des_maschinellen_lernens.aux b/doc/Grundlagen_des_maschinellen_lernens.aux index feec8e7..0dea0dd 100644 --- a/doc/Grundlagen_des_maschinellen_lernens.aux +++ b/doc/Grundlagen_des_maschinellen_lernens.aux @@ -39,62 +39,69 @@ \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Best\IeC {\"a}rkendes Lernen}{4}{subsection.2.3}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3}Neuronale Netze}{4}{section.3}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Maschinelles Lernen und menschliches Lernen}{4}{subsection.3.1}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Neuron \newline Quelle: simple.wikipedia.org/wiki/File:Neuron.svg\newline Copyright: CC Attribution-Share Alike von Nutzer Dhp1080,\newline bearbeitet}}{5}{figure.1}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Neuron \newline Quelle: simple.wikipedia.org/wiki/File:Neuron.svg\newline Copyright: CC Attribution-Share Alike von Nutzer Dhp1080,\newline bearbeitet}}{5}{figure.caption.2}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Der Aufbau eines neuronalen Netzes}{5}{subsection.3.2}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Ein einfaches neuronales Netz}}{6}{figure.2}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Ein einfaches neuronales Netz\relax }}{6}{figure.caption.3}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Berechnung des Ausgabevektors}{6}{subsection.3.3}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Der Plot der Sigmoid Funktion $\sigma (x)=\frac {e^x}{e^x+1}$}}{7}{figure.3}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Formel zur Berechnung eines Ausgabevektors aus einem Eingabevektor durch ein Layer Neuronen. }}{8}{figure.4}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Der Plot der Sigmoid Funktion $\sigma (x)=\frac {e^x}{e^x+1}$\relax }}{7}{figure.caption.4}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Formel zur Berechnung eines Ausgabevektors aus einem Eingabevektor durch ein Layer Neuronen. \relax }}{8}{figure.caption.5}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Der Lernprozess}{8}{subsection.3.4}\protected@file@percent } \abx@aux@cite{3} \abx@aux@segm{0}{0}{3} \abx@aux@segm{0}{0}{3} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Fehlerfunktionen}{9}{subsection.3.5}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.1}MSE -- Durchschnittlicher quadratischer Fehler}{9}{subsubsection.3.5.1}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen quadratischen Fehler}}{9}{figure.5}\protected@file@percent } -\newlabel{MSE_equation}{{5}{9}{Die Gleichung für den durchschnittlichen quadratischen Fehler}{figure.5}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen quadratischen Fehler\relax }}{9}{figure.caption.6}\protected@file@percent } +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} +\newlabel{MSE_equation}{{5}{9}{Die Gleichung für den durchschnittlichen quadratischen Fehler\relax }{figure.caption.6}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.2}MAE -- Durchschnitztlicher absoluter Fehler}{9}{subsubsection.3.5.2}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{9}{figure.6}\protected@file@percent } -\newlabel{MAE_equation}{{6}{9}{Die Gleichung für den durchschnittlichen absoluten Fehler}{figure.6}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler\relax }}{9}{figure.caption.7}\protected@file@percent } +\newlabel{MAE_equation}{{6}{9}{Die Gleichung für den durchschnittlichen absoluten Fehler\relax }{figure.caption.7}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.3}Kreuzentropiefehler}{10}{subsubsection.3.5.3}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Der Graph der Kreuzentropie Fehlerfunktion wenn das tats\IeC {\"a}chliche Label 1 ist}}{10}{figure.7}\protected@file@percent } -\newlabel{CEL_Graph}{{7}{10}{Der Graph der Kreuzentropie Fehlerfunktion wenn das tatsächliche Label 1 ist}{figure.7}{}} -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler}}{11}{figure.8}\protected@file@percent } -\newlabel{CEL_Function}{{8}{11}{Die Gleichung für den Kreuzentropiefehler}{figure.8}{}} -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{11}{figure.9}\protected@file@percent } -\newlabel{CEL_Finction_cummulative}{{9}{11}{Die Gleichung für den durchschnittlichen absoluten Fehler}{figure.9}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Der Graph der Kreuzentropie Fehlerfunktion wenn das tats\IeC {\"a}chliche Label 1 ist\relax }}{10}{figure.caption.8}\protected@file@percent } +\newlabel{CEL_Graph}{{7}{10}{Der Graph der Kreuzentropie Fehlerfunktion wenn das tatsächliche Label 1 ist\relax }{figure.caption.8}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler\relax }}{11}{figure.caption.9}\protected@file@percent } +\newlabel{CEL_Function}{{8}{11}{Die Gleichung für den Kreuzentropiefehler\relax }{figure.caption.9}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler\relax }}{11}{figure.caption.10}\protected@file@percent } +\newlabel{CEL_Finction_cummulative}{{9}{11}{Die Gleichung für den durchschnittlichen absoluten Fehler\relax }{figure.caption.10}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Gradientenverfahren und Backpropagation}{11}{subsection.3.6}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Die Gleichung f\IeC {\"u}r den Gradienten der Fehlerfunktion}}{11}{figure.10}\protected@file@percent } -\newlabel{Gradient_Function}{{10}{11}{Die Gleichung für den Gradienten der Fehlerfunktion}{figure.10}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.1}Lernrate}{11}{subsubsection.3.6.1}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters}}{12}{figure.11}\protected@file@percent } -\newlabel{Learning_Rate_Function}{{11}{12}{Die Gleichung für die Anpassung eines einzelnen Parameters}{figure.11}{}} -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces $\eta $ ist hier zu gro\IeC {\ss } gew\IeC {\"a}hlt}}{12}{figure.12}\protected@file@percent } -\newlabel{Learning_Rate_Graphic}{{12}{12}{$\eta $ ist hier zu groß gewählt}{figure.12}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{12}{subsection.3.7}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Die Gleichung f\IeC {\"u}r den Gradienten der Fehlerfunktion\relax }}{11}{figure.caption.11}\protected@file@percent } +\newlabel{Gradient_Function}{{10}{11}{Die Gleichung für den Gradienten der Fehlerfunktion\relax }{figure.caption.11}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.1}Lernrate}{12}{subsubsection.3.6.1}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters\relax }}{12}{figure.caption.12}\protected@file@percent } +\newlabel{Learning_Rate_Function}{{11}{12}{Die Gleichung für die Anpassung eines einzelnen Parameters\relax }{figure.caption.12}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces $\eta $ ist hier zu gro\IeC {\ss } gew\IeC {\"a}hlt\relax }}{12}{figure.caption.13}\protected@file@percent } +\newlabel{Learning_Rate_Graphic}{{12}{12}{$\eta $ ist hier zu groß gewählt\relax }{figure.caption.13}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{13}{subsection.3.7}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.1}Convolutional Layers}{13}{subsubsection.3.7.1}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Eine Verbildlichung einer Convolution\newline Aus einer Animation von\newline https://deeplizard.com/learn/video/YRhxdVk\_sIs}}{13}{figure.13}\protected@file@percent } -\newlabel{Convolution_illustration}{{13}{13}{Eine Verbildlichung einer Convolution\newline Aus einer Animation von\newline https://deeplizard.com/learn/video/YRhxdVk\_sIs}{figure.13}{}} -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Erkennt obere horizontale Kanten}}{14}{figure.14}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Erkennt linke vertikale Kanten}}{14}{figure.15}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Erkennt untere horizontale Kanten}}{14}{figure.16}\protected@file@percent } -\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces Erkennt rechte vertikale Kanten}}{14}{figure.17}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.2}Pooling Layers}{15}{subsubsection.3.7.2}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {4}PyTorch}{15}{section.4}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Datenvorbereitung}{15}{subsection.4.1}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Definieren des Netzes}{15}{subsection.4.2}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Trainieren des Netzes}{15}{subsection.4.3}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {5}Fallbeispiel I:\newline Ein Klassifizierungsnetzwerk f\IeC {\"u}r handgeschriebene Ziffern}{15}{section.5}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Aufgabe}{15}{subsection.5.1}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Der MNIST Datensatz}{15}{subsection.5.2}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Fragmentbasierte Erkennung}{15}{subsection.5.3}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Ergebnis}{15}{subsection.5.4}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {6}Fallbeispiel II:\newline Eine selbsttrainierende KI f\IeC {\"u}r Tic-Tac-Toe}{15}{section.6}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Das Prinzip}{15}{subsection.6.1}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Chance-Tree Optimierung}{15}{subsection.6.2}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}L\IeC {\"o}sung mittels eines neuronalen Netzes}{15}{subsection.6.3}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Vergleich}{15}{subsection.6.4}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {7}Schlusswort}{15}{section.7}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Eine Verbildlichung der Vorg\IeC {\"a}nge in einem convolutional Layer\newline Aus einer Animation von\newline https://github.com/vdumoulin/conv\_arithmetic/blob/master/README.md Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning (BibTeX)}}{13}{figure.caption.14}\protected@file@percent } +\newlabel{Convolution_illustration}{{13}{13}{Eine Verbildlichung der Vorgänge in einem convolutional Layer\newline Aus einer Animation von\newline https://github.com/vdumoulin/conv\_arithmetic/blob/master/README.md\\ Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning (BibTeX)}{figure.caption.14}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Erkennt obere horizontale Kanten\relax }}{14}{figure.caption.15}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Erkennt linke vertikale Kanten\relax }}{14}{figure.caption.15}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Erkennt untere horizontale Kanten\relax }}{14}{figure.caption.15}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces Erkennt rechte vertikale Kanten\relax }}{14}{figure.caption.15}\protected@file@percent } +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces Das Beispielbild aus dem Mnist Datensatz\relax }}{14}{figure.caption.16}\protected@file@percent } +\newlabel{Filter_Example_raw}{{18}{14}{Das Beispielbild aus dem Mnist Datensatz\relax }{figure.caption.16}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces Die jeweils oben stehenden Filter wurden auf das Beispielbild angewandt.\relax }}{14}{figure.caption.17}\protected@file@percent } +\newlabel{Filter_output dargestellt}{{19}{14}{Die jeweils oben stehenden Filter wurden auf das Beispielbild angewandt.\relax }{figure.caption.17}{}} +\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces Beispiele f\IeC {\"u}r low- mid- und high-level Features in Convolutional Neural Nets\newline Quelle: https://tvirdi.github.io/2017-10-29/cnn/}}{15}{figure.caption.18}\protected@file@percent } +\newlabel{HL_features_conv}{{20}{15}{Beispiele für low- mid- und high-level Features in Convolutional Neural Nets\newline Quelle: https://tvirdi.github.io/2017-10-29/cnn/}{figure.caption.18}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.2}Pooling Layers}{16}{subsubsection.3.7.2}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {4}PyTorch}{16}{section.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Datenvorbereitung}{16}{subsection.4.1}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Definieren des Netzes}{16}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Trainieren des Netzes}{16}{subsection.4.3}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {5}Fallbeispiel I:\newline Ein Klassifizierungsnetzwerk f\IeC {\"u}r handgeschriebene Ziffern}{16}{section.5}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Aufgabe}{16}{subsection.5.1}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Der MNIST Datensatz}{16}{subsection.5.2}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Fragmentbasierte Erkennung}{16}{subsection.5.3}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Ergebnis}{16}{subsection.5.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {6}Fallbeispiel II:\newline Eine selbsttrainierende KI f\IeC {\"u}r Tic-Tac-Toe}{16}{section.6}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Das Prinzip}{16}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Chance-Tree Optimierung}{16}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}L\IeC {\"o}sung mittels eines neuronalen Netzes}{16}{subsection.6.3}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Vergleich}{16}{subsection.6.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {7}Schlusswort}{16}{section.7}\protected@file@percent } \bibcite{1}{1} \bibcite{2}{2} \bibcite{3}{3} diff --git a/doc/Grundlagen_des_maschinellen_lernens.lof b/doc/Grundlagen_des_maschinellen_lernens.lof index 08bf5bd..751b3d0 100644 --- a/doc/Grundlagen_des_maschinellen_lernens.lof +++ b/doc/Grundlagen_des_maschinellen_lernens.lof @@ -1,36 +1,42 @@ \boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax \babel@toc {ngerman}{} \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {1}{\ignorespaces Neuron \newline Quelle: simple.wikipedia.org/wiki/File:Neuron.svg\newline Copyright: CC Attribution-Share Alike von Nutzer Dhp1080,\newline bearbeitet}}{5}{figure.1}% +\contentsline {figure}{\numberline {1}{\ignorespaces Neuron \newline Quelle: simple.wikipedia.org/wiki/File:Neuron.svg\newline Copyright: CC Attribution-Share Alike von Nutzer Dhp1080,\newline bearbeitet}}{5}{figure.caption.2}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {2}{\ignorespaces Ein einfaches neuronales Netz}}{6}{figure.2}% +\contentsline {figure}{\numberline {2}{\ignorespaces Ein einfaches neuronales Netz\relax }}{6}{figure.caption.3}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {3}{\ignorespaces Der Plot der Sigmoid Funktion $\sigma (x)=\frac {e^x}{e^x+1}$}}{7}{figure.3}% +\contentsline {figure}{\numberline {3}{\ignorespaces Der Plot der Sigmoid Funktion $\sigma (x)=\frac {e^x}{e^x+1}$\relax }}{7}{figure.caption.4}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {4}{\ignorespaces Formel zur Berechnung eines Ausgabevektors aus einem Eingabevektor durch ein Layer Neuronen. }}{8}{figure.4}% +\contentsline {figure}{\numberline {4}{\ignorespaces Formel zur Berechnung eines Ausgabevektors aus einem Eingabevektor durch ein Layer Neuronen. \relax }}{8}{figure.caption.5}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {5}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen quadratischen Fehler}}{9}{figure.5}% +\contentsline {figure}{\numberline {5}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen quadratischen Fehler\relax }}{9}{figure.caption.6}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {6}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{9}{figure.6}% +\contentsline {figure}{\numberline {6}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler\relax }}{9}{figure.caption.7}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {7}{\ignorespaces Der Graph der Kreuzentropie Fehlerfunktion wenn das tats\IeC {\"a}chliche Label 1 ist}}{10}{figure.7}% +\contentsline {figure}{\numberline {7}{\ignorespaces Der Graph der Kreuzentropie Fehlerfunktion wenn das tats\IeC {\"a}chliche Label 1 ist\relax }}{10}{figure.caption.8}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler}}{11}{figure.8}% +\contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler\relax }}{11}{figure.caption.9}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{11}{figure.9}% +\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler\relax }}{11}{figure.caption.10}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {10}{\ignorespaces Die Gleichung f\IeC {\"u}r den Gradienten der Fehlerfunktion}}{11}{figure.10}% +\contentsline {figure}{\numberline {10}{\ignorespaces Die Gleichung f\IeC {\"u}r den Gradienten der Fehlerfunktion\relax }}{11}{figure.caption.11}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters}}{12}{figure.11}% +\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters\relax }}{12}{figure.caption.12}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {12}{\ignorespaces $\eta $ ist hier zu gro\IeC {\ss } gew\IeC {\"a}hlt}}{12}{figure.12}% +\contentsline {figure}{\numberline {12}{\ignorespaces $\eta $ ist hier zu gro\IeC {\ss } gew\IeC {\"a}hlt\relax }}{12}{figure.caption.13}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {13}{\ignorespaces Eine Verbildlichung einer Convolution\newline Aus einer Animation von\newline https://deeplizard.com/learn/video/YRhxdVk\_sIs}}{13}{figure.13}% +\contentsline {figure}{\numberline {13}{\ignorespaces Eine Verbildlichung der Vorg\IeC {\"a}nge in einem convolutional Layer\newline Aus einer Animation von\newline https://github.com/vdumoulin/conv\_arithmetic/blob/master/README.md Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning (BibTeX)}}{13}{figure.caption.14}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {14}{\ignorespaces Erkennt obere horizontale Kanten}}{14}{figure.14}% +\contentsline {figure}{\numberline {14}{\ignorespaces Erkennt obere horizontale Kanten\relax }}{14}{figure.caption.15}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {15}{\ignorespaces Erkennt linke vertikale Kanten}}{14}{figure.15}% +\contentsline {figure}{\numberline {15}{\ignorespaces Erkennt linke vertikale Kanten\relax }}{14}{figure.caption.15}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {16}{\ignorespaces Erkennt untere horizontale Kanten}}{14}{figure.16}% +\contentsline {figure}{\numberline {16}{\ignorespaces Erkennt untere horizontale Kanten\relax }}{14}{figure.caption.15}% \defcounter {refsection}{0}\relax -\contentsline {figure}{\numberline {17}{\ignorespaces Erkennt rechte vertikale Kanten}}{14}{figure.17}% +\contentsline {figure}{\numberline {17}{\ignorespaces Erkennt rechte vertikale Kanten\relax }}{14}{figure.caption.15}% +\defcounter {refsection}{0}\relax +\contentsline {figure}{\numberline {18}{\ignorespaces Das Beispielbild aus dem Mnist Datensatz\relax }}{14}{figure.caption.16}% +\defcounter {refsection}{0}\relax +\contentsline {figure}{\numberline {19}{\ignorespaces Die jeweils oben stehenden Filter wurden auf das Beispielbild angewandt.\relax }}{14}{figure.caption.17}% +\defcounter {refsection}{0}\relax +\contentsline {figure}{\numberline {20}{\ignorespaces Beispiele f\IeC {\"u}r low- mid- und high-level Features in Convolutional Neural Nets\newline Quelle: https://tvirdi.github.io/2017-10-29/cnn/}}{15}{figure.caption.18}% diff --git a/doc/Grundlagen_des_maschinellen_lernens.log b/doc/Grundlagen_des_maschinellen_lernens.log index e5d6230..038e63b 100644 --- a/doc/Grundlagen_des_maschinellen_lernens.log +++ b/doc/Grundlagen_des_maschinellen_lernens.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2019.12.27) 12 JAN 2020 16:08 +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2019.12.27) 15 JAN 2020 22:21 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1182,6 +1182,25 @@ LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' (Font) U/txexa/m/n --> U/txexa/bx/n on input line 129. LaTeX Info: Redefining \not on input line 1043. ) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen183 +\captionmargin@=\dimen184 +\captionwidth=\dimen185 +\caption@tempdima=\dimen186 +\caption@indent=\dimen187 +\caption@parindent=\dimen188 +\caption@hangindent=\dimen189 +) +\c@caption@flags=\count344 +\c@ContinuedFloat=\count345 +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +) Package csquotes Info: Checking for multilingual support... Package csquotes Info: ... found 'babel' package. Package biblatex Info: Trying to load language 'ngerman'... @@ -1204,59 +1223,59 @@ File: german.lbx 2018/11/02 v3.12 biblatex localization (PK/MW) (./Grundlagen_des_maschinellen_lernens.aux) \openout1 = `Grundlagen_des_maschinellen_lernens.aux'. -LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 27. -LaTeX Font Info: Try loading font information for OML+txmi on input line 27. +LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 30. +LaTeX Font Info: Try loading font information for OML+txmi on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd File: omltxmi.fd 2000/12/15 v3.1 ) -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 27. -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 27. -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 27. -LaTeX Font Info: Try loading font information for OMS+txsy on input line 27. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 30. +LaTeX Font Info: Try loading font information for OMS+txsy on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd File: omstxsy.fd 2000/12/15 v3.1 ) -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 27. -LaTeX Font Info: Try loading font information for OMX+txex on input line 27. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 30. +LaTeX Font Info: Try loading font information for OMX+txex on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd File: omxtxex.fd 2000/12/15 v3.1 ) -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 27. -LaTeX Font Info: Try loading font information for U+txexa on input line 27. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 30. +LaTeX Font Info: Try loading font information for U+txexa on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd File: utxexa.fd 2000/12/15 v3.1 ) -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 27. -LaTeX Font Info: Try loading font information for TS1+cmr on input line 27. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 30. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions ) -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 27. -LaTeX Font Info: ... okay on input line 27. -LaTeX Font Info: Try loading font information for T1+txr on input line 27. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Try loading font information for T1+txr on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd File: t1txr.fd 2000/12/15 v3.1 ) -\c@mv@tabular=\count344 -\c@mv@boldtabular=\count345 +\c@mv@tabular=\count346 +\c@mv@boldtabular=\count347 \AtBeginShipoutBox=\box43 -Package hyperref Info: Link coloring OFF on input line 27. +Package hyperref Info: Link coloring OFF on input line 30. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section @@ -1264,11 +1283,11 @@ Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) ) -\c@section@level=\count346 +\c@section@level=\count348 ) -LaTeX Info: Redefining \ref on input line 27. -LaTeX Info: Redefining \pageref on input line 27. -LaTeX Info: Redefining \nameref on input line 27. +LaTeX Info: Redefining \ref on input line 30. +LaTeX Info: Redefining \pageref on input line 30. +LaTeX Info: Redefining \nameref on input line 30. (./Grundlagen_des_maschinellen_lernens.out) (./Grundlagen_des_maschinellen_lernens.out) @@ -1278,16 +1297,16 @@ LaTeX Info: Redefining \nameref on input line 27. (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count347 -\scratchdimen=\dimen183 +\scratchcounter=\count349 +\scratchdimen=\dimen190 \scratchbox=\box44 -\nofMPsegments=\count348 -\nofMParguments=\count349 +\nofMPsegments=\count350 +\nofMParguments=\count351 \everyMPshowfont=\toks41 -\MPscratchCnt=\count350 -\MPscratchDim=\dimen184 -\MPnumerator=\count351 -\makeMPintoPDFobject=\count352 +\MPscratchCnt=\count352 +\MPscratchDim=\dimen191 +\MPnumerator=\count353 +\makeMPintoPDFobject=\count354 \everyMPtoPDFconversion=\toks42 ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf @@ -1306,7 +1325,7 @@ G,.JBIG2,.JB2,.eps] File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) -\c@lstlisting=\count353 +\c@lstlisting=\count355 Package biblatex Info: Input encoding 'utf8' detected. Package biblatex Info: Automatic encoding selection. (biblatex) Assuming data encoding 'utf8'. @@ -1317,50 +1336,52 @@ Package biblatex Info: ... file 'Grundlagen_des_maschinellen_lernens.bbl' not f ound. No file Grundlagen_des_maschinellen_lernens.bbl. -Package biblatex Info: Reference section=0 on input line 27. -Package biblatex Info: Reference segment=0 on input line 27. +Package biblatex Info: Reference section=0 on input line 30. +Package biblatex Info: Reference segment=0 on input line 30. ABD: EveryShipout initializing macros Package pgfplots Warning: running in backwards compatibility mode (unsuitable t ick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into your preamble. - on input line 27. + on input line 30. +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. LaTeX Font Info: Try loading font information for T1+LinuxBiolinumT-TLF on i -nput line 28. +nput line 31. (/usr/share/texlive/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd File: T1LinuxBiolinumT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Lin uxBiolinumT-TLF. ) LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 10.0pt on input line 28. +(Font) scaled to size 10.0pt on input line 31. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 17.28pt on input line 32. +(Font) scaled to size 17.28pt on input line 35. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 24.88pt on input line 32. +(Font) scaled to size 24.88pt on input line 35. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 12.0pt on input line 32. -LaTeX Font Info: Try loading font information for OT1+txr on input line 32. +(Font) scaled to size 12.0pt on input line 35. +LaTeX Font Info: Try loading font information for OT1+txr on input line 35. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd File: ot1txr.fd 2000/12/15 v3.1 ) -LaTeX Font Info: Try loading font information for U+txmia on input line 32. +LaTeX Font Info: Try loading font information for U+txmia on input line 35. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd File: utxmia.fd 2000/12/15 v3.1 ) -LaTeX Font Info: Try loading font information for U+txsya on input line 32. +LaTeX Font Info: Try loading font information for U+txsya on input line 35. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd File: utxsya.fd 2000/12/15 v3.1 ) -LaTeX Font Info: Try loading font information for U+txsyb on input line 32. +LaTeX Font Info: Try loading font information for U+txsyb on input line 35. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd File: utxsyb.fd 2000/12/15 v3.1 ) -LaTeX Font Info: Try loading font information for U+txsyc on input line 32. +LaTeX Font Info: Try loading font information for U+txsyc on input line 35. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd File: utxsyc.fd 2000/12/15 v3.1 @@ -1381,17 +1402,17 @@ LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/b/n' will be [2] -LaTeX Warning: Citation '1' on page 3 undefined on input line 40. +LaTeX Warning: Citation '1' on page 3 undefined on input line 43. [3] <../graphics/Neuron.png, id=234, 299.9205pt x 158.994pt> File: ../graphics/Neuron.png Graphic file (type png) -Package pdftex.def Info: ../graphics/Neuron.png used on input line 64. +Package pdftex.def Info: ../graphics/Neuron.png used on input line 67. (pdftex.def) Requested size: 299.91975pt x 158.9936pt. -LaTeX Warning: Citation '2' on page 4 undefined on input line 70. +LaTeX Warning: Citation '2' on page 4 undefined on input line 73. LaTeX Warning: `h' float specifier changed to `ht'. @@ -1400,10 +1421,10 @@ LaTeX Warning: `h' float specifier changed to `ht'. <../graphics/Neural_Net.png, id=241, 548.16795pt x 432.8973pt> File: ../graphics/Neural_Net.png Graphic file (type png) -Package pdftex.def Info: ../graphics/Neural_Net.png used on input line 75. +Package pdftex.def Info: ../graphics/Neural_Net.png used on input line 78. (pdftex.def) Requested size: 345.0pt x 272.45592pt. -Underfull \hbox (badness 10000) in paragraph at lines 72--79 +Underfull \hbox (badness 10000) in paragraph at lines 75--82 [] @@ -1422,10 +1443,10 @@ LaTeX Warning: `h' float specifier changed to `ht'. [6 <../graphics/Neural_Net.png>] [7] [8] -LaTeX Warning: Citation '3' on page 9 undefined on input line 183. +LaTeX Warning: Citation '3' on page 9 undefined on input line 186. -LaTeX Warning: Citation '3' on page 9 undefined on input line 194. +LaTeX Warning: Citation '3' on page 9 undefined on input line 197. [9] Missing character: There is no . in font nullfont! @@ -1451,107 +1472,94 @@ LaTeX Warning: `h' float specifier changed to `ht'. <../graphics/gdf_big_lr.png, id=297, 484.57034pt x 482.0409pt> File: ../graphics/gdf_big_lr.png Graphic file (type png) -Package pdftex.def Info: ../graphics/gdf_big_lr.png used on input line 268. +Package pdftex.def Info: ../graphics/gdf_big_lr.png used on input line 271. (pdftex.def) Requested size: 172.5pt x 171.60013pt. - - -LaTeX Warning: `h' float specifier changed to `ht'. - -[11] [12 <../graphics/gdf_big_lr.png>] + [11] [12 <../graphics/gdf_big_lr.png>] <../graphics/conv/conv008.png, id=317, 396.48125pt x 450.68375pt> File: ../graphics/conv/conv008.png Graphic file (type png) -Package pdftex.def Info: ../graphics/conv/conv008.png used on input line 286. -(pdftex.def) Requested size: 120.7521pt x 137.25546pt. +Package pdftex.def Info: ../graphics/conv/conv008.png used on input line 289. +(pdftex.def) Requested size: 68.99895pt x 78.43071pt. + [13 <../graphics/conv/conv008.png>] +<../graphics/mnist_5/mnist_5_raw.png, id=327, 462.528pt x 346.896pt> +File: ../graphics/mnist_5/mnist_5_raw.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/mnist_5/mnist_5_raw.png used on input lin +e 352. +(pdftex.def) Requested size: 172.5pt x 129.37639pt. +<../graphics/mnist_5/mnist_5_upper_edges.png, id=328, 462.528pt x 346.896pt> +File: ../graphics/mnist_5/mnist_5_upper_edges.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/mnist_5/mnist_5_upper_edges.png used on i +nput line 361. +(pdftex.def) Requested size: 68.99895pt x 51.7463pt. +<../graphics/mnist_5/mnist_5_left_edges.png, id=329, 462.528pt x 346.896pt> +File: ../graphics/mnist_5/mnist_5_left_edges.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/mnist_5/mnist_5_left_edges.png used on in +put line 366. +(pdftex.def) Requested size: 68.99895pt x 51.7463pt. +<../graphics/mnist_5/mnist_5_lower_edges.png, id=330, 462.528pt x 346.896pt> +File: ../graphics/mnist_5/mnist_5_lower_edges.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/mnist_5/mnist_5_lower_edges.png used on i +nput line 371. +(pdftex.def) Requested size: 68.99895pt x 51.7463pt. +<../graphics/mnist_5/mnist_5_right_edges.png, id=331, 462.528pt x 346.896pt> +File: ../graphics/mnist_5/mnist_5_right_edges.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/mnist_5/mnist_5_right_edges.png used on i +nput line 376. +(pdftex.def) Requested size: 68.99895pt x 51.7463pt. +<../graphics/features.png, id=334, 833.1125pt x 388.45125pt> +File: ../graphics/features.png Graphic file (type png) + +Package pdftex.def Info: ../graphics/features.png used on input line 387. +(pdftex.def) Requested size: 345.0pt x 160.86047pt. + +Underfull \hbox (badness 10000) in paragraph at lines 298--393 -Underfull \hbox (badness 10000) in paragraph at lines 305--305 -[]\T1/txr/m/n/10 Abbildung 14: [] - -Underfull \hbox (badness 10000) in paragraph at lines 305--305 -[]\T1/txr/m/n/10 Erkennt obe- - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 305--305 -\T1/txr/m/n/10 re ho-ri-zon-ta-le - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 317--317 -[]\T1/txr/m/n/10 Abbildung 15: - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 317--317 -[]\T1/txr/m/n/10 Erkennt lin-ke - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 329--329 -[]\T1/txr/m/n/10 Abbildung 16: - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 329--329 -[]\T1/txr/m/n/10 Erkennt un-te- - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 329--329 -\T1/txr/m/n/10 re ho-ri-zon-ta-le - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 341--341 -[]\T1/txr/m/n/10 Abbildung 17: - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 341--341 -[]\T1/txr/m/n/10 Erkennt rech-te - [] - -LaTeX Font Info: Try loading font information for TS1+txr on input line 342. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/ts1txr.fd -File: ts1txr.fd 2000/12/15 v3.1 -) -Overfull \hbox (0.36746pt too wide) in paragraph at lines 281--346 -\T1/LinuxBiolinumT-TLF/m/n/10 beispielsweise zur ein-fa-chen Kan-te-ner-ken-nun -g ge-nutzt wer-den. Das ist de-fi-ni-tiv mehr - [] - - -LaTeX Warning: `h' float specifier changed to `ht'. - -[13 <../graphics/conv/conv008.png>] +[14 <../graphics/mnist_5/mnist_5_raw.png> <../graphics/mnist_5/mnist_5_upper_ed +ges.png> <../graphics/mnist_5/mnist_5_left_edges.png> <../graphics/mnist_5/mnis +t_5_lower_edges.png> <../graphics/mnist_5/mnist_5_right_edges.png>] Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): -(hyperref) removing `\newline' on input line 351. +(hyperref) removing `\newline' on input line 398. Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): -(hyperref) removing `\newline' on input line 356. +(hyperref) removing `\newline' on input line 403. -[14] [15] -Underfull \hbox (badness 10000) in paragraph at lines 373--377 +[15 <../graphics/features.png>] [16] +Underfull \hbox (badness 10000) in paragraph at lines 420--424 \T1/LinuxBiolinumT-TLF/m/n/10 Quelle: https://towardsdatascience.com/common-los s-functions-in-machine- [] -(./Grundlagen_des_maschinellen_lernens.lof) +(./Grundlagen_des_maschinellen_lernens.lof +Overfull \hbox (21.8196pt too wide) in paragraph at lines 28--28 + \T1/LinuxBiolinumT-TLF/m/n/10 https://github.com/vdumoulin/conv_arithmetic/blo +b/master/README.md + [] + +[17] +Overfull \hbox (5.42265pt too wide) in paragraph at lines 42--42 + [][] [][]\T1/LinuxBiolinumT-TLF/m/n/10 Beispiele für low- mid- und high-level +Fea-tu-res in Con-vo-lu-tio-nal Neural + [] + +) \tf@lof=\write7 \openout7 = `Grundlagen_des_maschinellen_lernens.lof'. - [16] -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 380. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 380. - -(./Grundlagen_des_maschinellen_lernens.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 380. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 380. + [18] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 427. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 427. + (./Grundlagen_des_maschinellen_lernens.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 427. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 427. Package rerunfilecheck Info: File `Grundlagen_des_maschinellen_lernens.out' has not changed. (rerunfilecheck) Checksum: B310243FE389BD4A3D39E25B868838EA;2989. @@ -1570,13 +1578,13 @@ un.xml'. ) Here is how much of TeX's memory you used: - 37270 strings out of 492615 - 834308 string characters out of 6131389 - 1360979 words of memory out of 5000000 - 40487 multiletter control sequences out of 15000+600000 - 83731 words of font info for 120 fonts, out of 8000000 for 9000 + 38343 strings out of 492615 + 854737 string characters out of 6131389 + 1381825 words of memory out of 5000000 + 41550 multiletter control sequences out of 15000+600000 + 83070 words of font info for 118 fonts, out of 8000000 for 9000 1143 hyphenation exceptions out of 8191 - 62i,14n,100p,1509b,3432s stack positions out of 5000i,500n,10000p,200000b,80000s + 62i,14n,100p,1509b,3444s stack positions out of 5000i,500n,10000p,200000b,80000s {/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}{/usr/share/texliv e/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc} -Output written on Grundlagen_des_maschinellen_lernens.pdf (17 pages, 457912 byt -es). +Output written on Grundlagen_des_maschinellen_lernens.pdf (19 pages, 1088555 by +tes). PDF statistics: - 432 PDF objects out of 1000 (max. 8388607) - 390 compressed objects within 4 object streams - 91 named destinations out of 1000 (max. 500000) - 353 words of extra memory for PDF output out of 10000 (max. 10000000) + 465 PDF objects out of 1000 (max. 8388607) + 409 compressed objects within 5 object streams + 93 named destinations out of 1000 (max. 500000) + 383 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/doc/Grundlagen_des_maschinellen_lernens.pdf b/doc/Grundlagen_des_maschinellen_lernens.pdf index 769417dae1bcc82066ede0bee1fe0d58c788cb53..77cd340ba10e195c32cd306e2d59f65716edc567 100644 GIT binary patch delta 712053 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