generated from TH_General/Template_Summary
backpropagation hinzugefügt
This commit is contained in:
parent
7260e91d26
commit
5b12ef3ab1
@ -6,11 +6,10 @@ Dieses Repo beinhaltet die $\LaTeX$ Informationen für die Zusammenfassung im Fa
|
|||||||
- [x] Nachteile von Accuracy
|
- [x] Nachteile von Accuracy
|
||||||
- [x] Fokus auf Accuracy, F1, Precision und Recall
|
- [x] Fokus auf Accuracy, F1, Precision und Recall
|
||||||
- [x] $w_0$ bei Perzeptron erklären (siehe Feedback Übung 3.1)
|
- [x] $w_0$ bei Perzeptron erklären (siehe Feedback Übung 3.1)
|
||||||
- [ ] Verlustfunktionen aus KI
|
- [x] Backpropagation Rechenbeispiel (Übung ML_2020_11_16, KI Zusammenfassung, Feedback Übung 3.2)
|
||||||
- [ ] Backpropagation Rechenbeispiel (Übung ML_2020_11_16, KI Zusammenfassung, Feedback Übung 3.2)
|
- [x] Gradientenverfahren aus KI
|
||||||
- [ ] Gradientenverfahren aus KI
|
- [x] inkl. mehrere Schichten (Übung 3.3)
|
||||||
- [ ] inkl. mehrere Schichten (Übung 3.3)
|
- [x] Begründung für Anzahl von Neuronen in der verdeckten Schicht (ML_2020_11_23)
|
||||||
- [ ] Begründung für Anzahl von Neuronen in der verdeckten Schicht (ML_2020_11_23)
|
|
||||||
- [ ] Beispiele aus ML_2020_11_23 (43:00) miteinbeziehen
|
- [ ] Beispiele aus ML_2020_11_23 (43:00) miteinbeziehen
|
||||||
- [ ] Perzeptron ist ein Überbegriff (kann aus mehreren Neuronen bestehen)(Besteht aus Input-Gedöns-Output)
|
- [ ] Perzeptron ist ein Überbegriff (kann aus mehreren Neuronen bestehen)(Besteht aus Input-Gedöns-Output)
|
||||||
- [ ] Regularisierung
|
- [ ] Regularisierung
|
||||||
|
@ -83,8 +83,15 @@
|
|||||||
\subsection{Das XOR-Problem}
|
\subsection{Das XOR-Problem}
|
||||||
Um das XOR-Problem zu zergliedern werden 2 Diskriminanten benötigt:\\
|
Um das XOR-Problem zu zergliedern werden 2 Diskriminanten benötigt:\\
|
||||||
\includegraphics[width=\textwidth]{XOR-Problem1.png}\\
|
\includegraphics[width=\textwidth]{XOR-Problem1.png}\\
|
||||||
Um das XOR-Problem von einer linearen Maschine klassifizieren zu lassen muss diese aus mindestens 2 Schichten bestehen.\\
|
Um das XOR-Problem von einer linearen Maschine klassifizieren zu lassen muss diese aus mindestens 2 Schichten bestehen.
|
||||||
\includegraphics[width=\textwidth]{XOR-Problem2.png}
|
\begin{center}
|
||||||
|
\includegraphics[width=.8\textwidth]{XOR-Problem2.png}
|
||||||
|
\end{center}
|
||||||
|
Allgemein werden mehr Neuronen in der verdeckten Schicht gebraucht, je komplexer die Klassifizierung ist.
|
||||||
|
Hierbei kann sich an der \ac{VC-Dimension} orientiert werden.
|
||||||
|
Dies gibt allerdings nur eine Angabe für die minimale Anzahl an benötigten Neuronen in der verdeckten Schicht.
|
||||||
|
Die genaue Anzahl der verdeckten Schichten und der darin enthaltenen Neuronen müssen vom Entwickler gewählt werden.
|
||||||
|
Hierbei ist die Erfahrung des Entwicklers entscheidend, um ein möglich gutes Modell zu erstellen.
|
||||||
|
|
||||||
\section{Maximum Margin Approaches}
|
\section{Maximum Margin Approaches}
|
||||||
Aus \ref{novikoffs theorem} ist bekannt, dass eine Diskriminate erstellt werden kann.
|
Aus \ref{novikoffs theorem} ist bekannt, dass eine Diskriminate erstellt werden kann.
|
||||||
@ -158,4 +165,76 @@
|
|||||||
Eine Reduzierung kann entweder dadurch erreicht werden,
|
Eine Reduzierung kann entweder dadurch erreicht werden,
|
||||||
dass das empirische Risiko (\ref{empirical risk}) bei gleichbleibenden $\varepsilon$ (\ref{capacity term}) reduziert wird,
|
dass das empirische Risiko (\ref{empirical risk}) bei gleichbleibenden $\varepsilon$ (\ref{capacity term}) reduziert wird,
|
||||||
oder durch eine Reduzierung von $\varepsilon$ bei gleichbleibenden empirischen Risiko.
|
oder durch eine Reduzierung von $\varepsilon$ bei gleichbleibenden empirischen Risiko.
|
||||||
Letzteres ist der Ansatz den die \ac{SVM}s (\ref{svm}) verfolgen.
|
Letzteres ist der Ansatz den die \ac{SVM}s (\ref{svm}) verfolgen.
|
||||||
|
|
||||||
|
\section{Parameteroptimierung}
|
||||||
|
\label{knn: parameteroptimierung}
|
||||||
|
Die Parameter werden iterativ so verändert/ optimiert, dass die Fehlerfunktion (Zusammenfassung KI: Fehlerfunktionen) minimal wird.
|
||||||
|
|
||||||
|
\subsection{Gradientenabstieg}
|
||||||
|
\label{knn: gradientenabstieg}
|
||||||
|
Das Gradientenverfahren ist ein Verfahren zur Parameteroptimierung.
|
||||||
|
Die Idee für das Verfahren leitet sich vom Hill-Climbing Algorithmus (Zusammenfassung KI: Hill Climbing) ableitet.
|
||||||
|
Der größte Unterschied liegt darin, dass der Parameterraum nicht diskret sondern kontinuierlich ist.
|
||||||
|
Das bedeutet, das jeder Punkt unendlich viele Nachbarn hat.
|
||||||
|
Durch die Bestimmung des \textbf{Gradienten} kann die Richtung des steilsten Abstiegs angegeben werden:
|
||||||
|
\large
|
||||||
|
$$\Delta g= \begin{bmatrix}
|
||||||
|
\frac{\delta g}{\delta w_1}\\
|
||||||
|
\frac{\delta g}{\delta w_2}\\
|
||||||
|
\vdots\\
|
||||||
|
\frac{\delta g}{\delta w_n}
|
||||||
|
\end{bmatrix}
|
||||||
|
$$
|
||||||
|
\normalsize
|
||||||
|
Zu beginn werden die Gewichte $w$ des Neuronen definiert (zufällig oder anders).
|
||||||
|
Anschließend werden sie bei jeder Iteration über
|
||||||
|
\large
|
||||||
|
$$w\gets w+\alpha\cdot \Delta g(w)$$
|
||||||
|
\normalsize
|
||||||
|
umdefiniert.
|
||||||
|
Hierbei ist $\alpha$ ein Hyperparamter, der die \textbf{Lernrate} definiert.\\
|
||||||
|
Zu erwähnen ist noch, dass auch hier wie beim Hill-Climbing (Zusammenfassung KI: Hill Climbing) die Gefahr besteht,
|
||||||
|
dass lediglich ein lokales anstatt dem globalen Minimum gefunden wird.
|
||||||
|
|
||||||
|
\subsection{Backpropagation}
|
||||||
|
\label{knn: backpropagation}
|
||||||
|
Da der Fehler, den die Fehlerfunktion angibt auf alle Schichten zurückzuführen ist,
|
||||||
|
muss auch die Optimierung Rückwärtsgerichtet in allen Schichten stattfinden.
|
||||||
|
Man spricht hierbei von einer \say{Backpropagation}.\\
|
||||||
|
Um ein Ausgangsneuron zu updaten muss die Fehlerfunktion
|
||||||
|
$$f(a,t) = \sum_i \frac{1}{2}(a_i-t_i)^2$$
|
||||||
|
erstmal auf den Ausgabewert des jeweiligen Neurons abgeleitet werden:
|
||||||
|
$$\frac{\delta f}{\delta a_i}=a_i-t$$
|
||||||
|
Wenn man dies nun auf die Zustandsfunktion des Neurons ableitet erhält man:
|
||||||
|
$$\frac{\delta f}{\delta z_i} = \frac{\delta f}{\delta a_i}\cdot\frac{\delta a_i}{\delta z_i}$$
|
||||||
|
Um die Änderung für eine Gewichtung $g_{ij}$ zu bestimmen muss die Fehlerfunktion nun zunächst auf dieses $g_{ij}$ abgeleitet werden:
|
||||||
|
$$\frac{\delta f}{\delta g_{ij}} = \frac{\delta f}{\delta z_i} \cdot\frac{\delta z_i}{\delta g_{ij}} = \frac{\delta f}{\delta a_i}\cdot\frac{\delta a_i}{\delta z_i}\cdot\frac{\delta z_i}{\delta g_{ij}}$$
|
||||||
|
Nun kann man durch Einsetzen der verwendeten $f$, $a_i$ und $z_i$ die Formel für die Änderung von $g_{ij}$ aufstellen.\\
|
||||||
|
\textbf{Beispiel:}
|
||||||
|
\Large
|
||||||
|
\begin{tabbing}
|
||||||
|
$f(a,t)=\sum_i\frac{1}{2}(a_i-t_i)^2$\hspace{5mm}\=und\hspace{5mm}\=$\frac{\delta f}{\delta a_i}=a_i-t_i$\\\\
|
||||||
|
$a_i =\frac{1}{a+e^{z_i}}$ \>und \>$\frac{\delta a_i}{\delta z_i}=a_i(1-a_i)$\\\\
|
||||||
|
$z_i=\sum^{N+1}_{j=1}g_{ij}\cdot a_i$ \>und \>$\frac{\delta z_i}{\delta g_{ij}}=a_j$
|
||||||
|
\end{tabbing}
|
||||||
|
\normalsize
|
||||||
|
Hieraus ergibt sich:
|
||||||
|
$$\frac{\delta f}{\delta g_{ij}} = \frac{\delta f}{\delta z_i} \cdot\frac{\delta z_i}{\delta g_{ij}} = \frac{\delta f}{\delta a_i}\cdot\frac{\delta a_i}{\delta z_i}\cdot\frac{\delta z_i}{\delta g_{ij}}=(a_i-t_i)\cdot a_i(1-a_i)\cdot a_j$$
|
||||||
|
Da uns alle diese Werte bekannt sind können wir $g_{ij}$ updaten:
|
||||||
|
\large
|
||||||
|
$$g_{ij}\gets g_{ij} + \alpha\cdot\left((a_i-t_i)\cdot a_i(1-a_i)\cdot a_j\right)$$
|
||||||
|
\normalsize
|
||||||
|
Um die Backpropagation nun bei den anderen Neuronen auf tieferen Schichten anzuwenden muss auf diese abgeleitet werden:\\
|
||||||
|
\begin{wrapfigure}{r}{.4\textwidth}
|
||||||
|
\vspace{-10mm}
|
||||||
|
\includegraphics[width = .4\textwidth]{backpropagation_inner_layer.png}
|
||||||
|
\end{wrapfigure}
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\frac{\delta f}{\delta a_i}&=(a_i-t_i)\\
|
||||||
|
\frac{\delta f}{\delta z_i}&=\frac{\delta f}{\delta a_i}\cdot\frac{\delta a_i}{\delta z_i}=a_i(1-a_i)\frac{\delta f}{\delta a_i}\\
|
||||||
|
\frac{\delta f}{\delta g_{ij}}&=\frac{\delta f}{\delta z_i}\cdot\frac{\delta z_i}{\delta g_{ij}} = a_j\frac{\delta f}{\delta z_i}\\
|
||||||
|
\frac{\delta f}{\delta a_j}&=\sum_i\frac{\delta f}{\delta z_i}\cdot\frac{\delta z_i}{\delta a_j}=\sum_i g_{ij}\frac{\delta f}{\delta z_i}
|
||||||
|
\end{align*}
|
||||||
|
Die Summe wird durch die Mehrzahl der Nachfolgenden Neuronen von $B_j$ berursacht.
|
BIN
images/backpropagation_inner_layer.png
Normal file
BIN
images/backpropagation_inner_layer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Loading…
x
Reference in New Issue
Block a user