forked from TH_General/Template_Summary
170 lines
8.3 KiB
TeX
170 lines
8.3 KiB
TeX
\chapter{Basics}%
|
|
\label{cha:Neural Networks:Basics}
|
|
Neuronale Netze sind vom menschlichen Gehirn inspiriert.
|
|
Dieses besteht aus einer Vielzahl ($\approx 10^11$) Neuronen,
|
|
die untereinander stark verknüpft sind ($\approx 10^4$ Verknüpfungen pro Neuron).
|
|
Das Signal der eingehenden Neuronen muss stark genug sein,
|
|
damit ein angesteuertes Neuron ein Signal ausgibt.
|
|
|
|
Diesem Prinzip folgend bestehen auch Neuronale Netze aus einfachen Bestandteilen (den Neuronen\slash\,Perzeptronen).
|
|
Ein Neuron hat dabei mehrere Eingänge und einen Ausgang.
|
|
Die Berechnung des Ausgabewertes ergibt sich durch
|
|
|
|
\begin{equation} \label{eq:perceptron_output_function}
|
|
y = \nomeq{activation_function}(\bm{w}^T\bm x + b)
|
|
\end{equation}
|
|
\begin{wrapfigure}{r}{.5\textwidth}
|
|
\vspace*{-5mm}
|
|
\centering
|
|
\includegraphics[width=0.8\linewidth]{perceptron.png}
|
|
\caption{Aufbau eines Perzeptron}
|
|
\label{fig:perceptron}
|
|
\vspace*{-20mm}
|
|
\end{wrapfigure}
|
|
\begin{itemize}
|
|
\item $y$:\tabto{15mm}Output
|
|
\item \nomsym{activation_function}:\tabto{15mm}\noms{activation_function}
|
|
\item $\bm w$:\tabto{15mm}Gewichte
|
|
\item $\bm x$:\tabto{15mm} Inputs
|
|
\item $b$:\tabto{15mm}Bias
|
|
\end{itemize}
|
|
Ein Beispiel für eine solche Output-Funktion ist schon aus \cref{cha:Linear Regression} bekannt.
|
|
|
|
\section{Feedforward Neural Networks}%
|
|
\label{sec:Feedforward Neural Networks}
|
|
\begin{wrapfigure}{r}{.4\textwidth}
|
|
\vspace*{-10mm}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{feedforward_neural_network.png}
|
|
\caption{Feedforward Neural Network}
|
|
\label{fig:feedforward_neural_network}
|
|
\end{wrapfigure}
|
|
Ein Feedforward Neural Network ist ein Neurales Netzwerk,
|
|
bei dem die einzelnen Neuronen in Schichten aufgebaut sind,
|
|
wobei jedes Neutronen nur Inputs aus der darunterliegenden Schicht erhält und an die darüberliegende Schicht weitergibt.
|
|
Feedforward Neural Networks werden daher auch als \glspl{MLP} bezeichnet.
|
|
Das Netzwerk hat daher die Form eines gerichteten azyklischen Graphens (Directed Acyclic Graph).
|
|
|
|
Hierbei werden die Eingabewerte an die Eingabeschicht (Input Layer) übergeben und die Ausgabe des Neuralen Netzwerkes erfolgt an der Output Layer.
|
|
Alle Schichten zwischen Input und Output Layer werden als verdeckte Schichten (Hidden Layer) bezeichnet.
|
|
|
|
Die Gewichte zwischen den einzelnen Layern bilden eine Matrix $\bm W$.
|
|
Der Ausgabevektor $\bm y$,
|
|
bestehend aus den Ausgabewerten der in der Schicht enthaltenen Neuronen,
|
|
ergibt sich durch:
|
|
|
|
\begin{equation} \label{eq:output_function_feedforward_layer}
|
|
\bm y = \nomeq{activation_function}(\bm W\bm x + \bm b)
|
|
\end{equation}
|
|
\begin{wrapfigure}{r}{.3\textwidth}
|
|
\vspace*{-8mm}
|
|
\centering
|
|
\includegraphics[width=0.8\linewidth]{feedforward_neural_network_composition.png}
|
|
\caption{Feedforward Neural Network mit Funktionen}
|
|
\label{fig:feedforward_neural_network_composition}
|
|
\vspace*{-20mm}
|
|
\end{wrapfigure}
|
|
Da jede Layer einen Vektor als Eingabe und Ausgabe hat,
|
|
kann man sie auch als vektorwertige Funktion schreiben
|
|
\begin{align} \label{eq:feedforward_neural_network_vector_valued_function}
|
|
\bm h^{(1)} &= f^{(1)}(\bm x)\\
|
|
\bm h^{(2)} &= f^{(2)}(\bm h^{(1)})\\
|
|
\vdots\\
|
|
\bm y &= f^{(L)}(\bm h^{(L-1)})
|
|
\end{align}
|
|
Daher kann man die Ausgabe eines Feedforward Neural Networks auch als Komposition der Funktionen der einzelnen Schichten betrachten.
|
|
\begin{equation} \label{eq:feedforward_neural_network_composition}
|
|
\bm y = f^{(L)}\circ f^{(L-1)}\circ\dots f^{(1)}(\bm x)
|
|
\end{equation}
|
|
Hieraus ergibt sich allerdings auch,
|
|
dass jedes mehrschichtige Feedforward Neural Network auch durch ein Netzwerk mit nur einer Schicht ersetzt werden kann (Universal Representation).
|
|
Hierzu wären allerdings eine exponentielle Anzahl an Neuronen nötig,
|
|
weshalb in der Praxis mehrschichtige Netzwerke verwendet werden (Compact Representation).
|
|
|
|
\subsection{Example: XOR}%
|
|
\label{sub:Example: XOR}
|
|
({\color{red}siehe Vorlesung 08 Folie 25 und 26})
|
|
|
|
\section{\nomf{activation_function}}%
|
|
\label{sec:Activation Function}
|
|
Die \nomf{activation_function} gibt vor,
|
|
ab welchem Schwellwert das Produkt aus Eingangswerten und Gewichten zu relevanten Ausgabewert führt.
|
|
In den meisten Fällen wird die \glsxtrshort{ReLU} \noms{activation_function} verwendet,
|
|
wobei es sich auch lohnt, die Leaky \glsxtrshort{ReLU} oder \glsxtrshort{ELU} auszubrobieren.
|
|
Die Sigmoid Funktion (\cref{ssub:Logistic sigmoid function}) sollte ausschließlich als \noms{activation_function} in Klassifikationsproblemen verwendet werden.\\
|
|
\includegraphics[scale=.7]{sigmoid_activation_function.png}\\
|
|
\hrule{\textwidth,1mm}
|
|
\includegraphics[scale=.7]{tanh_activation_function.png}\\
|
|
\hrule{\textwidth,1mm}
|
|
\includegraphics[scale=.7]{ReLU_activation_function.png}\\
|
|
\hrule{\textwidth,1mm}
|
|
\includegraphics[scale=.7]{Leaky_ReLU_activation_function.png}\\
|
|
\hrule{\textwidth,1mm}
|
|
\includegraphics[scale=.7]{exponential_linear_units_activation_function.png}\\
|
|
|
|
|
|
\section{Optimization}%
|
|
\label{sec:Optimization}
|
|
Die Optimierung der Parameter $\bm \theta$ erfolgen nach allgemeinen ML Rezept:
|
|
\begin{equation} \label{eq:neural_network_parameter_optimization}
|
|
\bm\theta^* = \argmin_{\bm\theta} \sum_{i=1}^N l(\bm x_i,\bm\theta) + \nomeq{regularization_factor}\text{ penalty}(\bm\theta)
|
|
\end{equation}
|
|
Welche Loss Function $l$ verwendet werden sollte hängt dabei vom Anwendungsgebiet ab:
|
|
\begin{table}[H]
|
|
\centering
|
|
\caption{Loss Functions für verschiedene Anwendungsaufgaben}
|
|
\label{tab:loss_functions_for_different_tasks}
|
|
\begin{tabularx}{\textwidth}{|c|Y|Y|}
|
|
\hline
|
|
& \bfseries Deterministic & \bfseries Probabilistic \\
|
|
\hline
|
|
\hline
|
|
\multicolumn{3}{|c|}{\bfseries Regression} \\
|
|
\hline
|
|
\bfseries Output Layer &
|
|
\begin{tabular}{@{}c@{}} linear \\ $\bm f = \bm W^{(L)}\bm h^{(L-1)}+\bm b^{(L)}$ \end{tabular} &
|
|
\begin{tabular}{@{}c@{}} linear Gaussian \\ $p(\bm y|\bm x) = \nomeq{gaussian_distribution}(\bm y|\bm W^{(L)}\bm h^{(L-1)} + \bm b^{(L)}, \nomeq{covariance})$\end{tabular}\\
|
|
\hline
|
|
\bfseries Loss &
|
|
\begin{tabular}{@{}c@{}} squared error \\ $l_i(\bm x_i,\bm\theta) = \frac{1}{2}(\bm f(\bm x_i)-\bm y_i)^2$\end{tabular} &
|
|
\begin{tabular}{@{}c@{}} negative log-likelihood \\ $l_i(\bm x_i,\bm\theta) = -\log\nomeq{gaussian_distribution}(\bm y_i|\bm\mu(\bm x_i),\nomeq{covariance})$ \end{tabular}\\
|
|
\hline
|
|
\hline
|
|
\multicolumn{3}{|c|}{\bfseries Binary Classification} \\
|
|
\hline
|
|
\bfseries Output Layer &
|
|
\begin{tabular}{@{}c@{}} linear \\ $\bm f = \bm W^{(L)}\bm h^{(L-1)}+ b^{(L)}$ \end{tabular} &
|
|
\begin{tabular}{@{}c@{}} sigmoid \\ $f = \sigma(\bm W^{(L)}\bm h^{(L-1)} + b^{(L)})$\end{tabular}\\
|
|
\hline
|
|
\bfseries Loss &
|
|
\begin{tabular}{@{}c@{}} \nameref{sub:Hinge Loss} \\ $l(\bm x_i, \bm\theta) = \max(0,1-y_i f(\bm x_i))$\end{tabular} &
|
|
\begin{tabular}{@{}c@{}} negative log-likelihood \\ $l_i(\bm x_i,\bm\theta) = -c_i \log f(\bm x_i)$\end{tabular}\\
|
|
\hline
|
|
\hline
|
|
\multicolumn{3}{|c|}{\bfseries Multi-class Classification} \\
|
|
\hline
|
|
\bfseries Output Layer &
|
|
\begin{tabular}{@{}c@{}} linear \\ $\bm f = \bm W^{(L)}\bm h^{(L-1)} + \bm b^{(L)}$\end{tabular} &
|
|
\begin{tabular}{@{}c@{}} sigmoid \\ $\bm f = \softmax(\bm W^{(L)}\bm h^{(L-1)} + \bm b^{(L)})$\end{tabular}\\
|
|
\hline
|
|
\bfseries Loss &
|
|
\begin{tabular}{@{}c@{}} Multi-class SVM loss \\ {\color{red} in diesem Fach nicht behandelt} \end{tabular} &
|
|
\begin{tabular}{@{}c@{}} negative log-likelihood \\ $l_i(\bm x_i,\bm\theta) = -\sum_{k=1}^K \bm h_{c_i,k} \log y_k(\bm x_i)$\end{tabular}\\
|
|
\hline
|
|
\end{tabularx}
|
|
\end{table}
|
|
|
|
\section{Feature Learning}%
|
|
\label{sec:Feature Learning}
|
|
Die letzte Schicht eines Neural Networks macht im Prinzip nur eine \dref{cha:Linear Regression},
|
|
welche durch die vorhergegangenen Schichten vorbereitet wird.
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=0.7\textwidth]{feature_learning.png}
|
|
\caption{Schichten vor dem letzten Layer bereiten die Daten für eine \nameref{cha:Linear Regression} vor}
|
|
\label{fig:feature_learning}
|
|
\end{figure}
|
|
\subsection{Beispiel}%
|
|
\label{sub:Feature Learning:Beispiel}
|
|
{\color{red} siehe Vorlesung 08 Folie 35}
|