Finished convolution chapter

This commit is contained in:
Clemens Dautermann 2020-01-15 22:22:34 +01:00
parent 4def1fd44d
commit aaafd4b6f9
14 changed files with 357 additions and 239 deletions

View file

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

View file

@ -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}%

View file

@ -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)
<use ../graphics/Neuron.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)
<use ../graphics/Neural_Net.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)
<use ../graphics/gdf_big_lr.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)
<use ../graphics/conv/conv008.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)
<use ../graphics/mnist_5/mnist_5_raw.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)
<use ../graphics/mnist_5/mnist_5_upper_edges.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)
<use ../graphics/mnist_5/mnist_5_left_edges.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)
<use ../graphics/mnist_5/mnist_5_lower_edges.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)
<use ../graphics/mnist_5/mnist_5_right_edges.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)
<use ../graphics/features.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}</usr/share/texlive/texm
f-dist/fonts/type1/public/libertine/LinBiolinumT.pfb></usr/share/texlive/texmf-
@ -1589,11 +1597,11 @@ hare/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/te
xmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/
type1/urw/times/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times
/utmri8a.pfb>
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)

View file

@ -17,11 +17,14 @@
\usepackage{biblatex}
\usepackage{pgfplots}
\usepackage{txfonts}
\usepackage{caption}
\author{Clemens Dautermann}
\title{\Huge Grundbegriffe des maschinellen Lernens}
\date{\today{}}
\pagestyle{fancy}
\captionsetup{justification=raggedright,singlelinecheck=false}
\begin{document}
@ -275,7 +278,7 @@ Abbildung \ref{Learning_Rate_Graphic} stellt dar, wieso das Minimum nicht erreic
\subsection{Verschiedene Layerarten}
Mit Hilfe von maschinellem Lernen lassen sich eine Vielzahl von Aufgaben bewältigen. Entsprechend komplex müssen Neuronale Netze aber auch sein. Demzufolge ist es notwendig, Neuronen zu entwickeln, die andere Fähigkeiten aufweisenl, als das einfache oben im sogenannten \glqq Linear Layer'' verwendete Neuron. Da man in der Regel nur eine Art von Neuron in einem Layer verwendet, wird das gesamte Layer nach der verwendeten Neuronenart benannt. Die unten beschriebenen Layerarten werden vor allem in einer Klasse von neuronalen Netzen verwendet, die als \glqq Convolutional neural networks'' bezeichnet werden. Sie werden meißt im Bereich der komplexen fragmentbasierten Bilderkennung eingesetzt, da sie besonders gut geeignet sind um Kanten oder gewisse Teile eines Bildes, wie zum Beispiel Merkmale eines Gesichtes, zu erkennen.
\subsubsection{Convolutional Layers}
Convolutional Layers weisen eine fundamental andere Funktionsweise als lineare Layers auf. Sie nehmen zwar ebenfalls rationale Zahlen an und geben rationale Zahlen aus \footnote{Im Folgenden werden 2 Dimensionale convolutional Layers betrachtet, da diese einfacher vorstellbar sind. Sie nehmen dann eine Matrix rationaler Zahlen an und geben auch eine Matrix rationaler Zahlen aus. Dies korrespondiert mit dem Anwendungsbereich der Erkennung von schwarz weiß Bildern.}, berechnen die Ausgabe jedoch nicht nur mit Hilfe einer Aktivierungsfunktion sondern unter der Verwendung sogenannter \glqq Filter''. Diese Filter sind eine $m\times n$ große Matrix, die auch als \glqq Kernel'' bezeichnet wird. Der Kernel wird dabei über die Eingabematrix bewegt (daher der Zusatz convolution) und erzeugt eine Ausgabematrix. Dafür wird der betrachtete Abschnitt der Eingabematrix $A$ und des Kernels $B$ skalar multipliziert wobei das Skalarprodukt als Frobenius-Skalarprodukt also als
Convolutional Layers weisen eine fundamental andere Funktionsweise als lineare Layers auf. Sie nehmen zwar ebenfalls rationale Zahlen an und geben rationale Zahlen aus \footnote{Im Folgenden werden 2 Dimensionale convolutional Layers betrachtet, da diese einfacher vorstellbar sind. Sie nehmen dann eine Matrix rationaler Zahlen an und geben auch eine Matrix rationaler Zahlen aus. Dies korrespondiert mit dem Anwendungsbereich der Erkennung von schwarz weiß Bildern.}, berechnen die Ausgabe jedoch nicht nur mit Hilfe einer Aktivierungsfunktion sondern unter der Verwendung sogenannter \glqq Filter''. Diese Filter sind eine $m\times n$ große Matrix, die auch als \glqq Kernel'' bezeichnet wird. Der Kernel wird dabei über die Eingabematrix bewegt (daher der Name convolution) und erzeugt eine Ausgabematrix. Dafür wird der betrachtete Abschnitt der Eingabematrix $A$ und des Kernels $B$ skalar multipliziert wobei das Skalarprodukt als Frobenius-Skalarprodukt, also als
\begin{equation*}
\langle A, B\rangle=\sum_{i=1}^{m}\sum_{j=1}^{n}a_{ij}b_{ij}
\end{equation*}
@ -283,15 +286,16 @@ definiert ist. Die Matritzen werden also Komponentenweise multipliziert und dies
Dies ist in Abbildung \ref{Convolution_illustration} verbildlicht.
\begin{figure}[h]
\begin{center}
\includegraphics[width=0.35\linewidth]{../graphics/conv/conv008.png}
\includegraphics[width=0.2\linewidth]{../graphics/conv/conv008.png}
\end{center}
\caption[Eine Verbildlichung einer Convolution\newline
\caption[Eine Verbildlichung der Vorgänge in einem convolutional Layer\newline
Aus einer Animation von\newline
https://deeplizard.com/learn/video/YRhxdVk\_sIs]{Eine Verbildlichung einer Convolution}
https://github.com/vdumoulin/conv\_arithmetic/blob/master/README.md\\
Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning (BibTeX)]{Eine Verbildlichung der Vorgänge in einem convolutional Layer. Das blaue Raster stellt die Eingabe dar, das grüne die Ausgabe.}
\label{Convolution_illustration}
\end{figure}
\newline
Ein Filter kann ganz verschiedene Werte aufweisen. So können Filter der Form
\newpage
Ein Filter kann ganz verschiedene Werte aufweisen. So können Filter der Form
\begin{figure}[h]
\begin{minipage}{0.2\linewidth}
\centering
@ -339,10 +343,53 @@ Ein Filter kann ganz verschiedene Werte aufweisen. So können Filter der Form
\end{bmatrix}
\end{equation*}
\caption{Erkennt rechte vertikale Kanten}
\end{minipage}´
\end{minipage}
\end{figure}
\newline
beispielsweise zur einfachen Kantenerkennung genutzt werden. Das ist definitiv mehr text als auf die Seite passt lalalalalalala
beispielsweise zur einfachen Kantenerkennung genutzt werden. Zur Veranschaulichung wurden diese Filter auf das Beispielbild in Abbildung \ref{Filter_Example_raw} angewandt. Das Ergebnis ist in Abbildung \ref{Filter_output dargestellt} dargestellt.
\begin{figure}[h]
\begin{center}
\includegraphics[width=0.5\linewidth]{../graphics/mnist_5/mnist_5_raw.png}
\caption{Das Beispielbild aus dem Mnist Datensatz}
\label{Filter_Example_raw}
\end{center}
\end{figure}
\\
\begin{figure}[h]
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=\linewidth]{../graphics/mnist_5/mnist_5_upper_edges.png}
\end{minipage}
\hfill
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=\linewidth]{../graphics/mnist_5/mnist_5_left_edges.png}
\end{minipage}
\hfill
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=\linewidth]{../graphics/mnist_5/mnist_5_lower_edges.png}
\end{minipage}
\hfill
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=\linewidth]{../graphics/mnist_5/mnist_5_right_edges.png}
\end{minipage}
\caption{Die jeweils oben stehenden Filter wurden auf das Beispielbild angewandt.}
\label{Filter_output dargestellt}
\end{figure}
\\
Der jeweils dunkel dargestellte Bereich kann als das identifiziert werden, was vom convolutional Layer als Kante erkannt wurde. Hier werden eindeutige Limitationen deutlich: Es kann nur als Kante erkannt werden, was auch eindeutig senkrecht oder waagerecht ist. Außerdem kann es zu Fehlentscheidungen kommen.\\
Die Kernels werden natürlich nicht per Hand initialisiert und angepasst, sondern setzen sich aus Parameternm zusammen, die im Laufe des Lernprozesses durch das Netz anpassbar sind. Das Netz kann also die Filtermatrix selber verändern. Die Filter werden meißt mit Zufallswerten initialisiert und dann während des Lernens angepasst. Ferner muss ein Kernel auch nicht immer drei Einheiten breit sein, sondern kann jede Größe $\ge2$ annehmen. Je nachdem, wie sich der Kernel über die Eingabematrix bewegt, ist außerdem ein sogenanntes \glqq Padding'' nötig, da gegebenenfalls Werte betrachtet werden müssten, die nicht in der Eingabematrix liegen. In der Regel werden daher alle Werte, die nicht in der Eingabematrix vorhanden sind durch 0 ersetzt. Das Padding ist in Abbildung \ref{Convolution_illustration} als weiß in der Eingabematrix dargestellt. Es ist eine Art \glqq Rand aus Nullen'', der um dasd Bild gelegt wird.\\
\\
Hintereinander können convolutional Layers auch ganze Elemente eines Bildes erkennen. Erkennt das erste Layer wie oben gezeigt beispielsweise Kanten, so kann das Layer darauf Kombinationen aus diesen, wie beispielsweise Ecken oder Winkel, erkennen. Wie gefilterte Bilder für sogenannte \glqq High-Level-Features'' aussehen können ist in Abbilldung \ref{HL_features_conv} dargestellt.
\begin{figure}[h]
\includegraphics[width=\linewidth]{../graphics/features.png}
\caption[Beispiele für low- mid- und high-level Features in Convolutional Neural Nets\newline
Quelle: https://tvirdi.github.io/2017-10-29/cnn/]{Beispiele für low- mid- und high-level Features in Convolutional Neural Nets}
\label{HL_features_conv}
\end{figure}
Das bemerkenswerte an Convolutional Layers ist vor allem, dass duch ähnliche Optimierungsalgorytmen auch hier maschinelles lernen möglich ist, dass sich ein neuronales Netz diese Filter also selbstständig beibringen kann.
\subsubsection{Pooling Layers}
\section{PyTorch}
\subsection{Datenvorbereitung}

View file

@ -43,40 +43,40 @@
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6}Gradientenverfahren und Backpropagation}{11}{subsection.3.6}%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{\numberline {3.6.1}Lernrate}{11}{subsubsection.3.6.1}%
\contentsline {subsubsection}{\numberline {3.6.1}Lernrate}{12}{subsubsection.3.6.1}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{12}{subsection.3.7}%
\contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{13}{subsection.3.7}%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{\numberline {3.7.1}Convolutional Layers}{13}{subsubsection.3.7.1}%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{\numberline {3.7.2}Pooling Layers}{15}{subsubsection.3.7.2}%
\contentsline {subsubsection}{\numberline {3.7.2}Pooling Layers}{16}{subsubsection.3.7.2}%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4}PyTorch}{15}{section.4}%
\contentsline {section}{\numberline {4}PyTorch}{16}{section.4}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.1}Datenvorbereitung}{15}{subsection.4.1}%
\contentsline {subsection}{\numberline {4.1}Datenvorbereitung}{16}{subsection.4.1}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2}Definieren des Netzes}{15}{subsection.4.2}%
\contentsline {subsection}{\numberline {4.2}Definieren des Netzes}{16}{subsection.4.2}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3}Trainieren des Netzes}{15}{subsection.4.3}%
\contentsline {subsection}{\numberline {4.3}Trainieren des Netzes}{16}{subsection.4.3}%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5}Fallbeispiel I:\newline Ein Klassifizierungsnetzwerk f\IeC {\"u}r handgeschriebene Ziffern}{15}{section.5}%
\contentsline {section}{\numberline {5}Fallbeispiel I:\newline Ein Klassifizierungsnetzwerk f\IeC {\"u}r handgeschriebene Ziffern}{16}{section.5}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.1}Aufgabe}{15}{subsection.5.1}%
\contentsline {subsection}{\numberline {5.1}Aufgabe}{16}{subsection.5.1}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.2}Der MNIST Datensatz}{15}{subsection.5.2}%
\contentsline {subsection}{\numberline {5.2}Der MNIST Datensatz}{16}{subsection.5.2}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3}Fragmentbasierte Erkennung}{15}{subsection.5.3}%
\contentsline {subsection}{\numberline {5.3}Fragmentbasierte Erkennung}{16}{subsection.5.3}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4}Ergebnis}{15}{subsection.5.4}%
\contentsline {subsection}{\numberline {5.4}Ergebnis}{16}{subsection.5.4}%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6}Fallbeispiel II:\newline Eine selbsttrainierende KI f\IeC {\"u}r Tic-Tac-Toe}{15}{section.6}%
\contentsline {section}{\numberline {6}Fallbeispiel II:\newline Eine selbsttrainierende KI f\IeC {\"u}r Tic-Tac-Toe}{16}{section.6}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.1}Das Prinzip}{15}{subsection.6.1}%
\contentsline {subsection}{\numberline {6.1}Das Prinzip}{16}{subsection.6.1}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.2}Chance-Tree Optimierung}{15}{subsection.6.2}%
\contentsline {subsection}{\numberline {6.2}Chance-Tree Optimierung}{16}{subsection.6.2}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3}L\IeC {\"o}sung mittels eines neuronalen Netzes}{15}{subsection.6.3}%
\contentsline {subsection}{\numberline {6.3}L\IeC {\"o}sung mittels eines neuronalen Netzes}{16}{subsection.6.3}%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4}Vergleich}{15}{subsection.6.4}%
\contentsline {subsection}{\numberline {6.4}Vergleich}{16}{subsection.6.4}%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {7}Schlusswort}{15}{section.7}%
\contentsline {section}{\numberline {7}Schlusswort}{16}{section.7}%

BIN
graphics/features.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1,50 @@
import torch
import PIL
import numpy
from torchvision import transforms, datasets
import matplotlib.pyplot as plt
def frobdot(mat1, mat2):
return mat1[0][0] * mat2[0][0] + mat1[0][1] * mat2[0][1] + mat1[0][2] * mat2[0][2] + mat1[1][0] * mat2[1][0] + \
mat1[1][1] * mat2[1][1] + mat1[1][2] * mat2[1][2] + mat1[2][0] * mat2[2][0] + mat1[2][1] * mat2[2][1] + \
mat1[2][2] * mat2[2][2]
data = datasets.MNIST('../datasets', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor()
]))
loader = torch.utils.data.DataLoader(data, batch_size=1, shuffle=False)
examples = enumerate(loader)
batch_idx, (example_data, example_targets) = next(examples)
raw_img = example_data[0][0]
new_img = numpy.zeros((28, 28))
kernel = numpy.array([[1, 20, 1],
[20, 0, 20],
[1, 20, 1]])
print(new_img.shape)
for y, line in enumerate(raw_img):
for x, value in enumerate(line):
tempmat = numpy.zeros((3, 3))
possible_positions = [[y + 1, x - 1], [y + 1, x], [y + 1, x + 1], [y, x - 1], [y, x], [y, x + 1],
[y - 1, x - y], [y - 1, x], [y - 1, x - 1]]
n = -1
for i, pos in enumerate(possible_positions):
if i % 3 is 0:
n += 1
if (pos[0] < 0) or (pos[0] > 27) or (pos[1] < 0) or (pos[1] > 27):
tempmat[n][i % 3] = 0
else:
tempmat[n][i % 3] = raw_img[pos[0]][pos[1]]
new_img[y][x] = frobdot(tempmat, kernel)
plt.xticks([])
plt.yticks([])
plt.imshow(new_img, cmap='gray')
plt.show()