Semi-supervised Learning aus ML kopiert

This commit is contained in:
paul-loedige 2021-02-04 13:24:52 +01:00
parent 86b6d158a6
commit 105e441c4b
35 changed files with 155 additions and 2 deletions

View File

@ -2,6 +2,13 @@
% list of acronyms % list of acronyms
%% %%
\begin{acronym} \begin{acronym}
\acro{VC-Dimension} {Vapnik-Chervonenkis-Dimension}
\acro{SRM} {Structural Risk Minimisation}
\acro{SVM} {Support Vector Machine}
\acro{KKT} {Karush-Kuhn-Tucker}
\acro{RBF} {Radial Basis Function}
\acro{DBSCAN} {Density-Based Spatial Clustering of Applications with Noise}
\acro{VSM}{Vector Space Model}
\acro{KI}{Künstliche Intelligenz} \acro{KI}{Künstliche Intelligenz}
\acro{AI}{Artificial Intelligence} \acro{AI}{Artificial Intelligence}
\acro{ML}{Machine Learning} \acro{ML}{Machine Learning}
@ -14,4 +21,9 @@
\acro{RL}{Reinforcement Learning} \acro{RL}{Reinforcement Learning}
\acro{MDP}{Markov Decision Process} \acro{MDP}{Markov Decision Process}
\acro{TD}{Temporal Difference} \acro{TD}{Temporal Difference}
\acro{CNN}{Convolutional Neural Network}
\acro{RNN}{Recurrent Neural Network}
\acro{FPC}{(Bocklisch's) Fuzzy Pattern Classifier}
\acro{MFPC}{Modified-Fuzzy-Pattern-Classifier}
\acro{FPGA}{Field Programmable Gate Array}
\end{acronym} \end{acronym}

View File

@ -6,4 +6,5 @@
\input{parts/Problemlösen durch Suchen.tex} \input{parts/Problemlösen durch Suchen.tex}
\input{parts/Optimierung.tex} \input{parts/Optimierung.tex}
\input{parts/Logik.tex} \input{parts/Logik.tex}
\input{parts/Maschinelles Lernen.tex} \input{parts/Maschinelles Lernen.tex}
\input{parts/Semi-supervised Learning.tex}

View File

@ -21,7 +21,6 @@
\def \AUTHORCOMPACT{Paul Lödige} \def \AUTHORCOMPACT{Paul Lödige}
\def \DATE{WS 2020/21} \def \DATE{WS 2020/21}
\begin{document} \begin{document}
\input{TitlePage.tex} \input{TitlePage.tex}
\clearpage \clearpage

View File

@ -0,0 +1,139 @@
\chapter{Deep Learning}
\label{chapter: deep learning}
Das \say{Deep Learning} ist ein Teilbereich des \ac{ML}.
Dieses ist wiederum ein Teilbereich der \ac{KI}.
Obwohl es faktisch ein Teilbereich ist haben sich \ac{KI} und \ac{ML} zu separaten Forschungsfeldern entwickelt.\\
\includegraphics[width = \textwidth]{ai_and_ml.png}\\
Allgemein beschrieben wird bei dem Deep Learning ein Modell aus mehreren Schichten aufgebaut.
Diese Schichten sind grundsätzlich hierarchisch aufgebaut und verarbeiten jeweils die Ausgabe des vorhergegangenen Schicht.
Hierfür werden sowohl Methoden aus dem Supervised Learning (siehe Zusammenfassung ML: Supervised Learning), als auch Methoden aus dem Unsupervised Learning (siehe Zusammenfassung ML: Unsupervised Learning) verwendet.
Da die Modelle meist an das Menschliche Gehirn angelehnt sind werden hierfür Neurale Netzwerke verwendet.
Im Allgemeinen kommen 2 Arten von Neuralen Netzwerken zum Einsatz:
\begin{itemize}
\item \textbf{Faltunsnetzwerke (\ref{cnn}):}\\
für statische Daten (Bilder, Sprachaufnahmen, \dots)
\item \textbf{Zyklische Netzwerke (\ac{RNN}):}\\
für sequentielle Daten (Videostream, Fließtext, \dots)
\end{itemize}
\section{Allgemeines Lernprinzip}
\label{deep learning: principle}
\includegraphics[width=\textwidth]{deep-learing_learning-principle.png}
\section{Exkurs: Bilderkennung}
\label{bilderkennung}
\subsection{Neuro-biologisches Konzept}
\label{neuro-biological concept}
\includegraphics[width=.8\textwidth]{neuro-biological_concept.png}
\subsection{Bild Klassifizierung}
\label{image classification}
Der Inhalt eines Bildes soll klassifiziert werden.\\
\includegraphics[width=.8\textwidth]{image-classification.png}\\
Hierbei gibt es viele Probleme:
\begin{itemize}
\item \textbf{Semantic Gap:}\\
Der Computer sieht das Bild als eine Datenmenge von unabhängigen Pixeln.\\
\includegraphics[width=.6\textwidth]{semantical gap.png}
\item \textbf{Viewpoint Variation:}\\
Eine kleine Veränderung in der Kameraposition kann dazu führen, dass sich alle Pixel verändern.\\
\includegraphics[width=\textwidth]{viewpoint variation.png}
\item \textbf{Beleuchtung:}\\
Eine Veränderung der Beleuchtung kann zu sehr unterschiedlichen Pixeldaten führen.\\
\includegraphics[width=.8\textwidth]{illumination.png}
\item \textbf{Deformation:}\\
Die Objekte im Bild können unterschiedlich verzerrt sein.\\
\includegraphics[width=.8\textwidth]{deformation.png}
\item \textbf{Occlusion:}\\
Die zu klassifizierenden Objekte können teilweise verdeckt sein.\\
\includegraphics[width = .8\textwidth]{occlusion.png}
\item \textbf{Background Clutter:}\\
Das Bild kann einen Hintergrund mit starker Ähnlichkeit zu dem Objekt haben.\\
\includegraphics[width = .8\textwidth]{background clutter.png}
\end{itemize}
Um diese Probleme zu umgehen werden mehrschichtige Erkennungsmodelle verwendet.
Hierdurch wird versucht eine abstraktere Erkennung der Objekte zu ermöglichen.\\
\includegraphics[width=\textwidth]{abstract catifier.png}\\
Ein Beispiel für die einzelnen Features könnte wie folgt aussehen:\\
\includegraphics[width = \textwidth]{car features.png}
\section{\acp{CNN}}
\label{cnn}
\acp{CNN} enthalten 3 wichtige Bestandteilen:\\
\includegraphics[width=.8\textwidth]{cnn_building_blocks.png}\\
Diese Bestandteile können beliebig oft hintereinander geschaltet sein.
Zudem ist an ein komplettes \ac{CNN} zumeist noch ein weiteres Netzwerk für die Ausgabe der Vorhersage angeschlossen:\\
\includegraphics[width = \textwidth]{cnn_complete.png}
\subsection{convolutional stage}
\label{cnn: convolutional stage}
In der \say{convolutional stage} werden \say{convolutional layer} (Faltunsschicht) verwendet.
Diese wenden einen beweglichen Filter (detector) auf die Daten der vorhergegangenen Schicht an.
Hierbei stellt der detector ein Rezeptives Feld dar (vergleichbar mit dem Auge).\\
\includegraphics[width = \textwidth]{convolutional_operation.png}\\
\begin{wrapfigure}{h}{.4\textwidth}
\includegraphics[width = .4\textwidth]{cnn_inter_layer_connection.png}
\end{wrapfigure}
Aufgrund der geringen Größe des rezeptiven Feldes ist jedes Neuron in der nachfolgenden Schicht jeweils nur mit wenigen Neuronen in der unterliegenden Schicht verbunden:\\
\includegraphics[width=\textwidth]{convolutional filter.png}\\
\subsubsection{Beispiel}
\label{cnn: example}
Im folgenden wird das Verfahren des convolutional layers anhand von $3\times 3$ Filtern demononstriert.
Diese werden auf einem $6\times 6$ Bild verschoben.
Die Filter sollen jeweils unterschiedliche geometrische Formen erkennen (Filter1: Diagonalen)\\
\includegraphics[width=.8\textwidth]{cnn_example1.png}\\
Über den Parameter \say{stride} kann eingestellt werden, um wieviele Elemente der Filter jeweils verschoben wird:\\
\includegraphics[width = .8\textwidth]{cnn_example_stride1.png}\\
\includegraphics[width = .8\textwidth]{cnn_example_stride2.png}\\
Für jeden Filter entsteht durch diese Anwendung ein kleineres Bild, welches aus dem Ausgangsbild errechnet wurde:\\
\includegraphics[width=.8\textwidth]{cnn_feature_map1.png}\\
Durch die Anwendung der verschiedenen Filter entsteht hierbei eine mehrdimensionale \say{Feature Map}.
Diese wird allgemein als \say{Tensor} bezeichnet:\\
\includegraphics[width=.8\textwidth]{cnn_feature_map2.png}\\
\subsubsection{Convolutional vs. Fully Connected}
\label{cnn: convolutional vs. fully connected}
Der Vorteil, den der Ansatz der Faltungsschichten gegenüber dem einsatz von \say{fully connected layers} hat ist,
dass deutlich weniger Parameter benötigt werden.\\
\includegraphics[width = .8\textwidth]{convolutional_vs_fully-connected.png}
\subsection{non-linear stage}
\label{cnn: non-linear stage}
Es ist mathematisch beweisbar, dass für die Abbildung von gleichen Äquivalenzklassen auf eine Referenzklasse eine nicht-linear Funktion benötigt wird.
Hierbei gibt es mehrere mögliche Funktionen.
Die bekannteste ist hierbei die \say{Sigmoid}-Funktion.
Bei \acp{CNN} wird allerdings meistens die \say{ReLU}-Funktion verwendet.\\
\includegraphics[width = \textwidth]{non-linear_functions.png}
\subsection{Pooling}
\label{cnn:pooling}
Beim \say{Pooling} wird die Menge der Elemente in einer Schicht reduziert.
Hierbei wird darauf geachtet, dass nur unwichtige Daten \say{verloren gehen}.
Man spricht auch von \say{Subsampling}.\\
\includegraphics[width = .8\textwidth]{subsampling.png}
\subsubsection{Max Pooling}
\label{cnn: max pooling}
Das \say{Max Pooling} ist eine Form des Poolings, bei dem mehrere Elemente einer schicht dadurch zusammengefasst werden,
dass nur die Element mit dem höchsten Wert erhalten bleiben.\\
\includegraphics[width = .8\textwidth]{max_pooling.png}
\section{classsical \ac{ML} vs. Deep Learning}
\includegraphics[width = \textwidth]{classical_ml_vs_deep_learning.png}
\section{Probleme des Deep Learning}
\begin{itemize}
\item \textbf{Deep Learning ist gierig:}\\
Es werden Millionen von Datensätze für das Training von Deep Learning Modellen benötigt.
\item \textbf{Deep Learing ist undurchsichtig:}\\
Deep Learing Modelle sind Black Box Modelle, die kontextunabhängig arbeiten
\item \textbf{Deep Learning ist spröde:}\\
Deep Learning Modelle können bei manchen Anwendungen gut funktionieren und bei anderen komplett scheitern;
sie sind nicht-linerare Natur
\end{itemize}
\includegraphics[width = \textwidth]{deep_learing_problems.png}\\
\includegraphics[width = \textwidth]{dumm_aber_raffiniert.png}
\section{aktuelle Trends}
\includegraphics[width = \textwidth]{trends.png}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
images/ai_and_ml.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

BIN
images/car features.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

BIN
images/cnn_complete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

BIN
images/cnn_example1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
images/cnn_feature_map1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
images/cnn_feature_map2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

BIN
images/deformation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

BIN
images/illumination.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
images/max_pooling.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
images/occlusion.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

BIN
images/semantical gap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

BIN
images/subsampling.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
images/trends.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -0,0 +1,2 @@
\part{Semi-supervised Learning}
\input{chapters/Semi-supervised Learning/Deep Learning.tex}