2. Vorlesung semi-supervised Learning abgeschlossen
@ -57,5 +57,64 @@
|
|||||||
Ein Beispiel für die einzelnen Features könnte wie folgt aussehen:\\
|
Ein Beispiel für die einzelnen Features könnte wie folgt aussehen:\\
|
||||||
\includegraphics[width = \textwidth]{car features.png}
|
\includegraphics[width = \textwidth]{car features.png}
|
||||||
|
|
||||||
\section{\ac{CNN}}
|
\section{\acp{CNN}}
|
||||||
\label{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}
|
BIN
images/cnn_building_blocks.png
Normal file
After Width: | Height: | Size: 185 KiB |
BIN
images/cnn_complete.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
images/cnn_example1.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
images/cnn_example_stride1.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
images/cnn_example_stride2.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
images/cnn_feature_map1.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
images/cnn_feature_map2.png
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
images/cnn_inter_layer_connection.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
images/convolutional filter.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
images/convolutional_operation.png
Normal file
After Width: | Height: | Size: 120 KiB |
BIN
images/convolutional_vs_fully-connected.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
images/max_pooling.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
images/non-linear_functions.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
images/subsampling.png
Normal file
After Width: | Height: | Size: 154 KiB |