Gradient descent & Backpropagation

This commit is contained in:
Clemens Dautermann 2020-01-09 16:53:20 +01:00
parent 411d967069
commit 30246947ee
8 changed files with 73 additions and 10022 deletions

View file

@ -63,7 +63,11 @@
\newlabel{CEL_Function}{{8}{12}{Die Gleichung für den Kreuzentropiefehler}{figure.8}{}} \newlabel{CEL_Function}{{8}{12}{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}}{12}{figure.9}\protected@file@percent } \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{12}{figure.9}\protected@file@percent }
\newlabel{CEL_Finction_cummulative}{{9}{12}{Die Gleichung für den durchschnittlichen absoluten Fehler}{figure.9}{}} \newlabel{CEL_Finction_cummulative}{{9}{12}{Die Gleichung für den durchschnittlichen absoluten Fehler}{figure.9}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Gradientenverfahren}{13}{subsection.3.6}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Gradientenverfahren und Backpropagation}{12}{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}}{12}{figure.10}\protected@file@percent }
\newlabel{Gradient_Function}{{10}{12}{Die Gleichung für den Gradienten der Fehlerfunktion}{figure.10}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters}}{13}{figure.11}\protected@file@percent }
\newlabel{Learning_Rate_Function}{{11}{13}{Die Gleichung für die Anpassung eines einzelnen Parameters}{figure.11}{}}
\@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 {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}Fully connected Layers}{13}{subsubsection.3.7.1}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.1}Fully connected Layers}{13}{subsubsection.3.7.1}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.2}Convolutional Layers}{13}{subsubsection.3.7.2}\protected@file@percent } \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.2}Convolutional Layers}{13}{subsubsection.3.7.2}\protected@file@percent }

View file

@ -18,3 +18,7 @@
\contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler}}{12}{figure.8}% \contentsline {figure}{\numberline {8}{\ignorespaces Die Gleichung f\IeC {\"u}r den Kreuzentropiefehler}}{12}{figure.8}%
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{12}{figure.9}% \contentsline {figure}{\numberline {9}{\ignorespaces Die Gleichung f\IeC {\"u}r den durchschnittlichen absoluten Fehler}}{12}{figure.9}%
\defcounter {refsection}{0}\relax
\contentsline {figure}{\numberline {10}{\ignorespaces Die Gleichung f\IeC {\"u}r den Gradienten der Fehlerfunktion}}{12}{figure.10}%
\defcounter {refsection}{0}\relax
\contentsline {figure}{\numberline {11}{\ignorespaces Die Gleichung f\IeC {\"u}r die Anpassung eines einzelnen Parameters}}{13}{figure.11}%

File diff suppressed because it is too large Load diff

View file

@ -18,7 +18,7 @@
\BOOKMARK [3][-]{subsubsection.3.5.1}{MSE \205 Durchschnittlicher quadratischer Fehler}{subsection.3.5}% 18 \BOOKMARK [3][-]{subsubsection.3.5.1}{MSE \205 Durchschnittlicher quadratischer Fehler}{subsection.3.5}% 18
\BOOKMARK [3][-]{subsubsection.3.5.2}{MAE \205 Durchschnitztlicher absoluter Fehler}{subsection.3.5}% 19 \BOOKMARK [3][-]{subsubsection.3.5.2}{MAE \205 Durchschnitztlicher absoluter Fehler}{subsection.3.5}% 19
\BOOKMARK [3][-]{subsubsection.3.5.3}{Kreuzentropiefehler}{subsection.3.5}% 20 \BOOKMARK [3][-]{subsubsection.3.5.3}{Kreuzentropiefehler}{subsection.3.5}% 20
\BOOKMARK [2][-]{subsection.3.6}{Gradientenverfahren}{section.3}% 21 \BOOKMARK [2][-]{subsection.3.6}{Gradientenverfahren und Backpropagation}{section.3}% 21
\BOOKMARK [2][-]{subsection.3.7}{Verschiedene Layerarten}{section.3}% 22 \BOOKMARK [2][-]{subsection.3.7}{Verschiedene Layerarten}{section.3}% 22
\BOOKMARK [3][-]{subsubsection.3.7.1}{Fully connected Layers}{subsection.3.7}% 23 \BOOKMARK [3][-]{subsubsection.3.7.1}{Fully connected Layers}{subsection.3.7}% 23
\BOOKMARK [3][-]{subsubsection.3.7.2}{Convolutional Layers}{subsection.3.7}% 24 \BOOKMARK [3][-]{subsubsection.3.7.2}{Convolutional Layers}{subsection.3.7}% 24

View file

@ -230,7 +230,35 @@ Existieren mehr als 2 Klassen, handelt es sich also nicht mehr um eine Binärkla
\end{figure} \end{figure}
\newline \newline
Dabei gibt M die Anzahl der Klassen an, c das Label für die Klasse und o die berechnete Klassifizierung für diese Klasse. Dabei gibt M die Anzahl der Klassen an, c das Label für die Klasse und o die berechnete Klassifizierung für diese Klasse.
\subsection{Gradientenverfahren} \subsection{Gradientenverfahren und Backpropagation}
Das Gradientenverfahren ist ein Verfahren um das Minimum einer Funktion zu finden. Die Funktion, deren Minimum gefunden werden soll ist in diesem Fall die Fehlerfunktion. Diese ist von allen Gewichtungen und Biases des Netzwerkes abhängig, da sie direkt vom Ausgabevektor des Netzes abhängig ist. Der Gradient dieser Funktion ist in Abbildung \ref{Gradient_Function} dargestellt.
\begin{figure}[h]
\begin{equation*}
\nabla C(w_1,b_1,\ldots,w_n,b_n)=
\begin{bmatrix}
\frac{\partial C}{\partial w_1}\\
\frac{\partial C}{\partial b_1}\\
\vdots\\
\frac{\partial C}{\partial w_n}\\
\frac{\partial C}{\partial b_n}
\end{bmatrix}
\end{equation*}
\caption{Die Gleichung für den Gradienten der Fehlerfunktion}
\label{Gradient_Function}
\end{figure}
\newline
Um also das Ergebnis \glqq richtiger'' zu machen, müssen alle Gewichtungen und Biases negativ zu diesem Gradienten angepasst werden, da der Gradient ja den Hochpunkt angibt.\newline
Diese Anpassung erfolgt, indem das Netz vom Ausgabelayer an, deshalb heißt das Verfahren Backpropagation, durchgegangen wird, und die Gewichtungen und Biases angepasst werden. Dies geschieht in der Regel mit hilfe der \glqq Lernrate'' $\eta$, mit der die Änderung nach der Formel in Abbildung \ref{Learning_Rate_Function} berechnet wird.
\begin{figure}[h]
\begin{equation*}
w^n_{neu}=w^n_{alt}-\eta\times\frac{\partial C}{\partial w^n}
\end{equation*}
\caption{Die Gleichung für die Anpassung eines einzelnen Parameters}
\label{Learning_Rate_Function}
\end{figure}
\newline
Diese Lernrate ist notwendig um nicht über das Minimum \glqq hinweg zu springen''. Sollte sie zu groß sein, passiert genau dies, da die Anpassungen der Parameter in zu großen Schritten erfolgt, sollte sie hingegen zu klein sein, lernt das Netz sehr langsam. Typische Werte sind abhängig von der zu erlernenden Aufgabe, liegen jedoch in der Regel bei etwa 0.01 bis 0.00001
\subsection{Verschiedene Layerarten} \subsection{Verschiedene Layerarten}
\subsubsection{Fully connected Layers} \subsubsection{Fully connected Layers}
\subsubsection{Convolutional Layers} \subsubsection{Convolutional Layers}

View file

@ -41,7 +41,7 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{\numberline {3.5.3}Kreuzentropiefehler}{11}{subsubsection.3.5.3}% \contentsline {subsubsection}{\numberline {3.5.3}Kreuzentropiefehler}{11}{subsubsection.3.5.3}%
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6}Gradientenverfahren}{13}{subsection.3.6}% \contentsline {subsection}{\numberline {3.6}Gradientenverfahren und Backpropagation}{12}{subsection.3.6}%
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{13}{subsection.3.7}% \contentsline {subsection}{\numberline {3.7}Verschiedene Layerarten}{13}{subsection.3.7}%
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax