\chapter{Linear Machines}\label{linear machines}
    Mithilfe von linearen Maschinen lassen sich bestimmte Arten von Problemen klassifizieren.\\
    \includegraphics[width=\textwidth]{seperability.png}\\
    Hierfür wird auf viele Aspekte der Vektoralgebra zurückgegriffen (siehe \ref{Vektoralgebra}).

    \section{Aufstellung einer Diskriminanten}
        \includegraphics[width=.8\textwidth]{diskriminante.png}\\
        \paragraph{Verfahren}\mbox{}\\
        \begin{enumerate}
            \item durchschnittliches Element der Cluster errechnen:\\
                \vspace{0.1mm}\\
                Class C1: $\overline{m_{1C1}}=\frac{1}{M}\sum^{M-1}_{i=0}m_{1C1,i}\hspace{1mm}\overline{m_{2C1}}=\frac{1}{M}\sum^{M-1}_{i=0}m_{2C1,i}$\\
                \vspace{0.1mm}\\
                Class C2: $\overline{m_{1C2}}=\frac{1}{M}\sum^{M-1}_{i=0}m_{1C2,i}\hspace{1mm}\overline{m_{2C2}}=\frac{1}{M}\sum^{M-1}_{i=0}m_{2C2,i}$\\
            \item Diskriminanten Funktion errechnen:\\
                \includegraphics[width=.8\textwidth]{diskriminanten_berechnung.png}\\
                \includegraphics[width=.8\textwidth]{diskriminanten_berechnung2.png}\\
                \includegraphics[width=.8\textwidth]{diskriminanten_berechnung3.png}
            \item \begin{align*}
                m_2&=-\frac{1}{a}m_1+m_{h2}+\frac{a}{a}m_{h1}\\
                &\downarrow\\
                m_2 + \frac{1}{a}m_1 - \left(m_{h2}+\frac{a}{a}m_{h1}\right) &= 0\\
                &\downarrow
            \end{align*}
            \begin{align*}
                g(\bm{m}) &= \left(\frac{1}{a},1\right)\begin{pmatrix}m_1\\m_2\end{pmatrix}-\left(\frac{1}{a},1\right)\begin{pmatrix}m_{h1}\\m_{h2}\end{pmatrix} = 0\\
                g(\bm{m}) &= \left(\frac{1}{a},1\right)\cdot(\bm{m}-\bm{m}_{\bm{h}}) = 0 \hspace{1mm} \left(\frac{1}{a},1\right)=\bm{C}^T\\
                g(\bm{m}) &= \bm{C}^T\tilde{\bm{m}}=0
            \end{align*}
        \end{enumerate}

        \subsection{Beispiel: 3 Koeffizienten}
            $g(\bm{m}) = \bm{w}^T\bm{m}=0$ mit $\bm{w}^T = (w_2,w_1,w_0)$ und $\bm{m} = (m_2,m_1,1)^T$:
            $$g(\bm{m}) = w_2m_2 + w_1m_1 + w_0 = 0$$

            \paragraph{Vergleich der Koeffizienten}
            $$g(\bm{m}) = m_2 + \frac{1}{a}m_1-\left(m_{h2}+\frac{1}{a}m_{h1}\right) = 0  \rightarrow a\cdot m_2+m_1-(a\cdot m_{h2}+m_{h1})=0$$
            $$w_2m_2+w_1m_1+w_0=0\rightarrow w_2=a$$
            $$w_1=1$$
            $$w_0=-(a\cdot m_{h2}+m{h1})$$
            Daraus folgt:
            $$g(\bm{m}) > 0 \forall \bm{m}\in C_2$$
            $$g(\bm{m}) < 0 \forall \bm{m}\in C_1$$

    \section{Das technische Neuron}
        Ein technisches Neuron besteht aus den Gewichten für die Eingangswerte und der Aktivierungsfunktion:\\
        \includegraphics[width=.8\textwidth]{technisches_neuron.png}

    \section{Das Perzeptron}\label{perceptron}
        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)$.
        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.
        
        \subsection{Beispiel: nicht-symmetrischer Lernalgorithmus}
            \includegraphics[width=.8\textwidth]{Perzeptron_Lernalgorithmus.png}

        \subsection{Novikoff's Theorem}\label{novikoffs theorem}
            Novikoff's Theorem besagt, dass der Lernalgorithmus des Perzeptrons bei einem linear trennbaren Datensatz unweigerlich eine Diskriminante findet.
            Zudem besagt es, dass der Algorithmus bei einem nicht linear separierbaren Datensatz nicht konvergieren kann.
            Um die Konvergenz zu beschleunigen ist es sinnvoll die sigmoid-Funktion anstatt der signum-Funktion zu verwenden.
            $$ \text{sigm}(x)=\frac{2}{1+e^ {-x}}-1; -1\le\text{sigm}(x)\le 1$$

        \subsection{Beispiel: symmetrischer Lernalgorithmus}
            \includegraphics[width=.8\textwidth]{Perzeptron_Lernalgorithmus_symmetrisch.png}

    \section{\acs{vc-dimension}}\label{vc-dimension}
        Die \acl{vc-dimension} gibt ein Maß für die \say{learning power} einer Klassifizierung.

        \subsection{Shattering}
            \say{Here we will only consider functions that correspond to the two-class pattern recognition case, so that $g(\bm{m}, y) \in \{-1, 1\}\forall x, y$.
            Now if a given set of n points can be labeled in all possible $2^n$ ways,
            and for each labeling, a member of the set $\{g(y)\}$ can be found which correctly assigns those labels, we say that that set of points is shattered by that set of functions.}\\
            Hierbei zergliedert (shatters) eine Hyperebene in einem Feature Space $\mathbb{R}^d$ $h=d+1$ linear unabhängige Punkte.

            \subsubsection{Beispiel: Shattering im 2-dimensionalen Raum}
                \includegraphics[width = .7\textwidth]{vc-dimension_shattering.png}

            \subsection{Das XOR-Problem}
                Um das XOR-Problem zu zergliedern werden 2 Diskriminanten benötigt:\\
                \includegraphics[width=.8\textwidth]{XOR-Problem1.png}\\
                Um das XOR-Problem von einer linearen Maschine klassifizieren zu lassen muss diese aus mindestens 2 Schichten bestehen.\\
                \includegraphics[width=\textwidth]{XOR-Problem2.png}

    \section{Maximum Margin Approaches}
        Aus \ref{novikoffs theorem} ist bekannt, dass eine Diskriminate erstellt werden kann.
        Jedoch sind mehrere Diskriminanten möglich.
        Nun besteht die Aufgabe darin die Diskriminante zu wählen, die die Daten am besten teilt.

        \subsection{Cross-Validation}
            Das Verfahren der Cross-Validation trennt die Daten in Trainings- und Testdaten auf.
            Anhand des Fehlers eines Models auf den Testdaten wird versucht die Allgemeingültigkeit des Modells abzuschätzen.
            Das Modell mit dem geringsten Test-Fehler wird als bestes Modell ausgewählt.
            Dieser Ansatz beugt einem Over-Fitting des Modells auf die Trainingsdaten vor.\\
            \begin{center}
                \includegraphics[width=.6\textwidth]{cross-validation.png}
            \end{center}

        \subsection{Loss function}
            eine Verlustfunktion errechnet die Abweichung der vorhersage einer Klassifizierungsfunktion $f(\bm{m};\bm{w})$ von dem tatsächlichen Wert $y$.\\
            Beispiele hierfür sind der \say{Quadratic Loss}:
            $$L(y,f(\bm{m};\bm{w})) = f\left((y-f(\bm{m};\bm{w})^2)\right)$$
            oder der \say{Absolute Value Loss}:
            $$L(y,f(\bm{m};\bm{w})) = f\left(|y-f(\bm{m};\bm{w})|)\right)$$

        \subsection{Empirical Risk}\label{empirical risk}
            Das \say{Empirische Risiko} gibt auf Basis der Trainingsdaten eine Abschätzung dafür, wie hoch das Risiko ist, dass ein Datenpunkt von der Klassifizierungsfunktion falsch klassifiziert wird.
            Hierfür wird eine Loss function als Basis genommen.
            \begin{align*}
                R_{emp}(\bm{w}) = \frac{1}{N}\sum^N_{i=1}L\left(y_i,f(\bm{m}_i;\bm{w})\right)
            \end{align*}
            \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
                \hline
                \textbf{Vorteile} & \textbf{Nachteile}\\
                \hline
                Alle benötigten Daten zur Berechnung vorhanden & keine direkte Angabe der \say{generalization ability}\\
                \hline
            \end{tabular}

        \subsection{True Risk}
            Das \say{echte Risiko} gibt das reale Risiko dafür an, dass eine Klassifizierungsfunktion einen Datenpunkt falsch klassifiziert.
            Hierfür wird die Dichtefunktion $p$ der Datenpunkte als Grundlage genommen.
            Da diese meist nicht bekannt ist, kann oft nur das Empirische Risiko angegeben werden.
            $$R(\bm{w}) = \iint L\left(y_i,f(\bm{m};\bm{w})\right) \cdot p(\bm{m},y) d\bm{m} dy$$
            \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
                \hline
                \textbf{Vorteile} & \textbf{Nachteile}\\
                \hline
                Misst die \say{generalization ability} & Die Dichtefunktion $p$ muss bekannt sein\\
                \hline
            \end{tabular}

        \subsection{Risk Bound}\label{risk bound}
            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)$$
            \begin{itemize}
                \item $N$: Anzahl der Trainingsdatenpunkte
                \item $\kappa$: das \say{confidence level}, $0\le\kappa\le1$
                \item $h$: \acs{vc-dimension} (\ref{vc-dimension})
            \end{itemize}
            \includegraphics[width=.8\textwidth]{risk-bound.png}

            \subsubsection{Capacity Term $\varepsilon$}\label{capacity term}
                Der Kapazitätsterm gibt eine Grenze dafür, wie gut das Risiko maximal werden kann.
                $$ \varepsilon(N,\kappa,h) = \sqrt{\frac{h \cdot \left(\lg\left(\frac{2N}{h}\right)+1\right)-\lg\left(\frac{\kappa}{4}\right)}{N}} $$
                \textbf{Beispiel:}\\
                \includegraphics[width=.5\textwidth]{capacity_term.png}

        \subsection{Structural Risk}\label{strucutral risk}
            Das Strukturelle Risiko wird durch das empirische Risiko $R_{emp}(\bm{w})$ (\ref{empirical risk}) und den Kapazitätsterm $\varepsilon(N,\kappa,h)$ (\ref{capacity term}) definiert.\\
            \includegraphics[width=.6\textwidth]{structural_risk.png}

            \subsubsection{\acl{srm}}
                Das strukurelle Risiko kann entweder dadurch reduziert werden,
                dass das empirische Risiko (\ref{empirical risk}) bei gleichbleibenden $\varepsilon$ (\ref{capacity term}) reduziert wird,
                oder durch eine Reduzierung von $\varepsilon$ bei gleichbleibenden empirishen Risiko.
                Letzteres ist der Ansatz den die \acs{svm}s (\ref{svm}) verfolgen.