generated from TH_General/Template_Summary
133 lines
8.1 KiB
TeX
133 lines
8.1 KiB
TeX
\chapter{\ac{SVM}}\label{svm}
|
|
\ac{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 \ac{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 \ac{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}
|
|
\ac{SVM}s sind \say{sparse learning machines}, da Sie meist nur von wenigen Support Vektoren abhängen.
|
|
|
|
\section{nicht-lineare \ac{SVM}}\label{non linear svm}
|
|
\ac{SVM}s können auch dafür benutzt werden, nicht-linear-trennbare Cluster zu teilen.
|
|
Hierfür müssen einige mathematischen Tricks angewandt werden.
|
|
|
|
\subsection{Dual Representation **}
|
|
Die bekannte Schreibweise für den Lagrange-Ansatz
|
|
\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*}
|
|
{\color{red} Seiten 102-105}
|
|
$$
|
|
L_\alpha = \sum^N_{i=0}\alpha_i - \frac{1}{2}\sum^N_{i=1}\sum^N_{j=1}\alpha_i \cdot \alpha_j \cdot g_i \cdot g_j (\bm{m}^T_j \cdot \bm{m}_i)
|
|
$$
|
|
Allgemein sieht das Verfahren der \say{Dual Representation} wie folgt aus:
|
|
$$ \arg \max_{\alpha_i} L_\alpha \rightarrow \text{quadratic programming}\rightarrow\bm{w}=\sum^S_{i=1}\alpha_i g_i \bm{m}_i $$
|
|
Sowohl die normale (primal) als auch die duale Darstellung lassen sich als quadratische Minimierungsprobleme formulieren.
|
|
|
|
\subsection{Transformation $\phi$}\label{svm transformation}
|
|
Um nichtlineare Klassifizierungsprobleme linear zu lösen wird eine nichtlineare Transformation $\phi(\bm{m})$ auf den Feature Space (\ref{feature space}) angewandt.
|
|
$$ \bm{m}\in\mathbb{R}^d ~ \phi:\mathbb{R}^d\rightarrow H$$
|
|
$H$ ist hierbei eine Hyperebene, in welcher es möglich ist die Datenpunkte linear zu klassifizieren.
|
|
|
|
\subsubsection{Beispiel}\label{non linear svm example}
|
|
\includegraphics[width=.8\textwidth]{transformation.png}\\
|
|
Es ergibt sich die lineare Funktion $g(\bm{m}) = \bm{w}^T \phi(\bm{m}) + w_0$.
|
|
Hierbei entfällt $\bm{w}$ aufgrund von $\bm{w} = \sum^N_{i=1}\alpha_i \cdot g_i \cdot \bm{m}_i \rightarrow \bm{w} = \sum^N_{i=1}\alpha_i \cdot g_i \cdot \phi(\bm{m}_i)$.
|
|
Die nichtlineare Diskiminante lässt sich nun schreiben als:
|
|
$$ g(\bm{m}) = \sum^S_{i=1}\alpha_i \cdot g_i \cdot \phi^T(\bm{m}_i) \cdot \phi(\bm{m}) + w_0 $$
|
|
|
|
\section{Der Kernel Trick}\label{kernel trick}
|
|
Mithilfe des Kernel Tricks kann die Transformation $\phi$ (\ref{svm transformation}) umgangen werden.
|
|
Hierbei wird jedes Skalarprodukt durch eine \textbf{äquivalente} Kernelfunktion ersetzt:
|
|
$$K(\bm{m}_i,\bm{m}_j) = \phi^T(\bm{m}_i) \cdot \phi(\bm{m}_j)$$
|
|
|
|
\subsection{Formalismus}
|
|
\includegraphics[width=.8\textwidth]{kernel_trick_formalism.png}
|
|
|
|
\subsection{Der Trick}
|
|
\includegraphics[width=.8\textwidth]{kernel_trick_trick.png}
|
|
|
|
\subsection{Polynomialer Kernel}
|
|
\includegraphics[width=.8\textwidth]{kernel_trick_polynomial_kernel.png}
|
|
|
|
\subsubsection{Beispiel: Gausian \ac{RBF} Kernel}
|
|
$$K(\bm{m}_i,\bm{m}_j) = \exp\left(-\frac{||\bm{m}_1-\bm{m}_2||^2}{2\sigma^2}\right)$$
|
|
\includegraphics[width=\textwidth]{kernel_trick_example.png}
|
|
|
|
\section{Soft Margin}
|
|
Falls Daten vorliegen, die nicht \say{einfach} (\ref{occam's razor}) separierbar sind ist es zwar möglich den Feature Space so zu transformieren, dass er linear separierbar wird,
|
|
allerdings ist dies wenig sinnvoll.
|
|
Hierbei ist die \ac{VC-Dimension} sehr hoch, weshalb auch die Gefahr für Overfitting sehr hoch ist.
|
|
Dieses Problem kann umgangen werden, indem mittels \say{soft margins} zugelassen wird, dass eine geringe Anzahl an Datenpunkten auf der falschen Seite der Diskriminanten liegt.\\
|
|
\includegraphics[width=.6\textwidth]{soft_margin.png}
|
|
|
|
|
|
|