\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}
        

        