generated from TH_General/Template_Summary
regularisierung hinzugefügt
This commit is contained in:
98
chapters/Semi-supervised Learning/CNN.tex
Normal file
98
chapters/Semi-supervised Learning/CNN.tex
Normal file
@@ -0,0 +1,98 @@
|
||||
\chapter{\acfp{CNN}}
|
||||
\label{cnn}
|
||||
\acp{CNN} enthalten 3 wichtige Bestandteilen:
|
||||
\begin{center}
|
||||
\includegraphics[width=.7\textwidth]{cnn_building_blocks.png}
|
||||
\end{center}
|
||||
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:
|
||||
\begin{center}
|
||||
\includegraphics[width = .7\textwidth]{cnn_complete.png}
|
||||
\end{center}
|
||||
|
||||
\section{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}{r}{.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:\\
|
||||
\vspace{30mm}
|
||||
|
||||
\includegraphics[width=\textwidth]{convolutional filter.png}
|
||||
\pagebreak
|
||||
|
||||
\subsection{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=.6\textwidth]{cnn_example1.png}\\
|
||||
Über den Parameter \say{stride} kann eingestellt werden, um wieviele Elemente der Filter jeweils verschoben wird:\\
|
||||
\includegraphics[width = .7\textwidth]{cnn_example_stride1.png}\\
|
||||
\includegraphics[width = .7\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}\\
|
||||
\pagebreak
|
||||
|
||||
\subsection{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}
|
||||
|
||||
\section{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 = .9\textwidth]{non-linear_functions.png}
|
||||
|
||||
\section{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}
|
||||
|
||||
\subsection{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{Regularisierung}
|
||||
\label{cnn: regularisierung}
|
||||
Um Overfitting zu vermeiden können die Verlustfunktionen (Zusammenfassung KI),
|
||||
mithilfe derer die Gewichte über Backpropagation (\ref{knn: backpropagation}) geupdated werden,
|
||||
regularisiert werden.\\
|
||||
\textbf{Vorsicht:} eine zu starke Regularisierung kann zu einem Underfitting führen,
|
||||
wohingegen eine zu schwache Regularisierung das Overfitting nicht verhindert.
|
||||
Meist lässt sich die \say{Stärke} der Regularisierung durch eine Parameter ($\lambda$) vorgeben.
|
||||
|
||||
\subsection{Lasso Regularisierung}
|
||||
\label{cnn: lasso regularisierung}
|
||||
Die Lasso Regularisierung nutzt die $L_1$-Norm:
|
||||
$$L_1(\bm{w})=\sum_{w_i\in\bm{w}}|w_i|$$
|
||||
Hierdurch ergibt sich für den Wert, mit dem die Gewichte geupdated werden:
|
||||
$$V(y,y')+\lambda\cdot L_1(\bm{w}) = V(y,y') + \lambda\cdot\sum_{w_i\in\bm{w}}|w_i|$$
|
||||
|
||||
\subsection{Tikhonov Regularisierung}
|
||||
\label{cnn: ridge regression}
|
||||
Die auch als \say{Ridge Regression} bekannte Regularisierung nutzt die $L_2$-Norm:
|
||||
$$L_2(\bm{w})=\sqrt{\sum_{w_i\in\bm{w}}|w_i|^2}$$
|
||||
Hierdurch ergibt sich für den Wert, mit dem die Gewichte geupdated werden:
|
||||
$$V(y,y')+\lambda\cdot L_2^2(\bm{w}) = V(y,y') + \lambda\cdot\sum_{w_i\in\bm{w}}|w_i|^2$$
|
||||
|
||||
\subsection{Early Stopping}
|
||||
\label{cnn: early stopping}
|
||||
Das Verfahren des \say{Early Stopping} kann als eine Regularisierung in der Zeit betrachtet werden.
|
||||
Hierbei wird nach einer bestimmten Anzahl von Epochen das Lernen beendet.
|
||||
Dies kann ebenfalls ein Overfitting verhindern.
|
||||
@@ -56,68 +56,6 @@
|
||||
\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}
|
||||
|
||||
Reference in New Issue
Block a user