lineare SVMs hinzugefügt

This commit is contained in:
paul-loedige 2021-01-27 13:03:00 +01:00
parent 1d48b32429
commit 51a4e336cd
7 changed files with 82 additions and 4 deletions

View File

@ -5,4 +5,5 @@
\acro{vc-dimension} [VC-Dimension] {Vapnik-Chervonenkis-Dimension} \acro{vc-dimension} [VC-Dimension] {Vapnik-Chervonenkis-Dimension}
\acro{srm} [SRM] {Structural Risk Minimisation} \acro{srm} [SRM] {Structural Risk Minimisation}
\acro{svm} [SVM] {Support Vector Machines} \acro{svm} [SVM] {Support Vector Machines}
\acro{kkt} [KKT] {Karush-Kuhn-Tucker}
\end{acronym} \end{acronym}

View File

@ -6,6 +6,7 @@
%images %images
\usepackage{graphicx} \usepackage{graphicx}
\graphicspath{ {./images/} } \graphicspath{ {./images/} }
\usepackage{wrapfig}
%svg images %svg images
\usepackage{svg} \usepackage{svg}
%quotation %quotation

View File

@ -1,4 +1,4 @@
\chapter{Linear Machines} \chapter{Linear Machines}\label{linear machines}
Mithilfe von linearen Maschinen lassen sich bestimmte Arten von Problemen klassifizieren.\\ Mithilfe von linearen Maschinen lassen sich bestimmte Arten von Problemen klassifizieren.\\
\includegraphics[width=\textwidth]{seperability.png}\\ \includegraphics[width=\textwidth]{seperability.png}\\
Hierfür wird auf viele Aspekte der Vektoralgebra zurückgegriffen (siehe \ref{Vektoralgebra}). Hierfür wird auf viele Aspekte der Vektoralgebra zurückgegriffen (siehe \ref{Vektoralgebra}).
@ -46,7 +46,7 @@
Ein technisches Neuron besteht aus den Gewichten für die Eingangswerte und der Aktivierungsfunktion:\\ Ein technisches Neuron besteht aus den Gewichten für die Eingangswerte und der Aktivierungsfunktion:\\
\includegraphics[width=.8\textwidth]{technisches_neuron.png} \includegraphics[width=.8\textwidth]{technisches_neuron.png}
\section{Das Perzeptron} \section{Das Perzeptron}\label{perceptron}
Ein Perzeptron beschreibt eine lineare Maschine, die eine Datenmenge durch eine Hyper-Ebene (die Diskriminante) in zwei Cluster unterteilt. Ein Perzeptron beschreibt eine lineare Maschine, die eine Datenmenge durch eine Hyper-Ebene (die Diskriminante) in zwei Cluster unterteilt.
Die Funktion für die Diskriminante ist hierbei $y(\bm{m})=\text{sng}(g(\bm{m})) = \text{sgn}(\bm{w}^T\bm{m}+w_0)$. Die Funktion für die Diskriminante ist hierbei $y(\bm{m})=\text{sng}(g(\bm{m})) = \text{sgn}(\bm{w}^T\bm{m}+w_0)$.
Da sich $\bm{w}$ durch $\bm{w} = \sum^n_{i=1}\alpha_i\cdot y_i \cdot \bm{m}_i$ (mit $n = $Anzahl der Datenpunkte und $\alpha_i = $ Anzahl, wie oft $\bm{m}_i$ ausgewählt wurde) definiert ist die Dimension von $\bm{m}$ unwichtig. Da sich $\bm{w}$ durch $\bm{w} = \sum^n_{i=1}\alpha_i\cdot y_i \cdot \bm{m}_i$ (mit $n = $Anzahl der Datenpunkte und $\alpha_i = $ Anzahl, wie oft $\bm{m}_i$ ausgewählt wurde) definiert ist die Dimension von $\bm{m}$ unwichtig.
@ -129,7 +129,7 @@
\hline \hline
\end{tabular} \end{tabular}
\subsection{Risk Bound} \subsection{Risk Bound}\label{risk bound}
Die Risikoschranke gibt an, wie weit das Empirische Risiko von dem tatsächlichen Risiko abweichen kann. Die Risikoschranke gibt an, wie weit das Empirische Risiko von dem tatsächlichen Risiko abweichen kann.
$$R(\bm{w})\le R_{emp}(\bm{w})+\varepsilon(N,\kappa,h)$$ $$R(\bm{w})\le R_{emp}(\bm{w})+\varepsilon(N,\kappa,h)$$
\begin{itemize} \begin{itemize}

View File

@ -0,0 +1,75 @@
\chapter{\acl{svm}}\label{svm}
\acs{svm}s können als lineare (\ref{linear machines}) oder nicht-lineare Maschinen aufgebaut werden.\\
\begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
\hline
\textbf{Vorteile} & \textbf{Nachteile}\\
\hline
\begin{itemize}
\item bei linear separierbaren Datensätzen ist das empirische Risiko (\ref{empirical risk}) $R_{emp}(\bm{w})=0$
\item die Riskoschranke (\ref{risk bound}) ist ungefähr minimal (\say{eingebaute} generalization)
\end{itemize} &
\begin{itemize}
\item funktioniert nur auf kleinen Datensätzen
\item ein Wechsel des Datensatzes erfordert ein Neu-Lernen
\item die nicht-lineare Variante ist kompliziert im Umgang
\end{itemize}\\
\hline
\end{tabular}
\section{lineare \acl{svm}}
\begin{wrapfigure}{h}{.6\textwidth}
\vspace{-10mm}
\includegraphics[width=.6\textwidth]{svm_base.png}
\end{wrapfigure}
Für das dargestellte Bild ergibt sich:
\begin{flalign*}
& g(\bm{m}_1)=0,g(\bm{m}_2)=0 &\\
& \rightarrow \bm{w}^T\bm{m}_1+w_0=\bm{w}^T\bm{m}_2+w_0 &\\
& \Leftrightarrow \bm{w}^T(\bm{m}_1-\bm{m}_2)=0 &\\
& \rightarrow \bm{w}\bot g(\bm{m})
\end{flalign*}
hieraus ergibt sich durch umstellen:
$$r_p=\frac{g(\bm{m}_p)}{|\bm{w}|}\ge 0$$
und
$$r_0=-\frac{w_0}{|\bm{w}|}$$
\subsection{Support Vektoren}
Um die Diskriminante in dem Bereich der möglichen Diskriminaten zu wählen, die am besten generalisiert werden unterstützende Vektoren (support vectors) verwendet.
Diese verlaufen parallel zu der Diskriminante mit einem Abstand $\gamma$.
$\gamma$ wird als \say{Margin} bezeichnet.\\
\includegraphics[width = .8\textwidth]{support_vectors.png}\\
Für 2 Cluster werden dann ähnlich wie beim Perzeptron (\ref{perceptron}) die folgenden Gleichungen aufgestellt:
\begin{align*}
\bm{w}^T\bm{m}_i+w_0\ge 1 &\text{ für } g_i = +1 \\
\bm{w}^T\bm{m}_i+w_0\le 1 &\text{ für } g_i = -1 \\
\end{align*}
Nun wird so reskaliert, dass für mindestens ein Objekt gilt:
$$ \forall i:(\bm{w}^T\bm{m}_i + w_0)\cdot g_i = 1 \text{ bzw. }-1 $$
Für den Margin $\gamma$ ergibt sich also:
$$\gamma = \frac{g(\bm{m}_S)}{|\bm{w}|} = \frac{1}{|\bm{w}|} = \frac{1}{||\bm{w}||}$$
Der Abstand der zwei Klassen (Two-classes distance) ist dann:
$$2\gamma = \frac{2}{||\bm{w}||}$$
\subsubsection{Maximierung des Margin}
Da $\frac{1}{||\bm{w}||} \equiv \frac{1}{2}||\bm{w}||^2$ ist, kann die Maximierung des Margin als ein quadratisches Minimierungsproblem behandelt werden.
Mithilfe des Lagrange-Ansatzes erhält man:
\begin{align*}
L_\alpha(\bm{w},w_0,\alpha_i) &= \frac{1}{2}||\bm{w}||^2 - \sum^N_{i=1}\alpha_i\cdot\left[\left(\bm{w}^T\bm{m}_i+w_0\right)\cdot g_i - 1 \right]\\
&= \frac{1}{2}||\bm{w}||^2 - \sum^N_{i=1}\alpha_i \cdot \bm{w}^T\bm{m}_i \cdot g_i + \sum^N_{i=1}\alpha_i \cdot w_0 \cdot g_i - \sum^N_{i=1}\alpha_i
\end{align*}
Die Funktion ist beschränkt durch:
\begin{align*}
\frac{\delta L_\alpha}{\delta w_0} &= 0 \Rightarrow \sum^N_{i=1}\alpha_i \cdot g_i = 0\\
\frac{\delta L_\alpha}{\delta \bm{w}} &= 0 \Rightarrow \bm{w} - \sum^N_{i=1}\alpha_i \cdot \bm{m}_i \cdot g_i = 0 \rightarrow \bm{w} = \sum^N_{i=1}\alpha_i \cdot g_i \cdot \bm{m}_i
\end{align*}
Hieraus ergeben sich die \acl{kkt} Bedingungen
\begin{align*}
(\bm{w}^T\bm{m}_i + w_0)\cdot g_i - 1 &\ge 0 \\
\alpha_i &\ge 0 \\
\alpha_i\left[\left(\bm{w}^T\bm{m}_i+w_0\right)\cdot g_i -1\right] &=0
\end{align*}
Jeder Datenpunkt, für den $\alpha_i>0$ gilt, ist ein \say{support vector}.
\subsubsection{Sparsity}
\acs{svm}s sind \say{sparse learning machines}, da Sie meist nur von wenigen Support Vektoren abhängen.

BIN
images/support_vectors.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
images/svm_base.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -1,3 +1,4 @@
\part{Supervised Learning} \part{Supervised Learning}
\input{chapters/Supervised Learning/Occam's Razor.tex} \input{chapters/Supervised Learning/Occam's Razor.tex}
\input{chapters/Supervised Learning/Linear Machines.tex} \input{chapters/Supervised Learning/Linear Machines.tex}
\input{chapters/Supervised Learning/SVM.tex}