Single-Layer-Perzeptron (SLP)
Einführung in mathematische Struktur des SLP
Binäre Klassifikation mit \(d\)-dimensionaler Eingabe/Input \(\bs{x} \in \mathbb{R}^d\):
\[ f: \mathbb{R}^d \ra \{0,1\}\\ \bs{x} \mapsto f(x)=\hat{y} \]
Ausgabe: \(\hat{y} = \phi(\bs{w}^\top \bs{x} + b)\) mit Gewichtungsvektor \(\bs{w} \in \mathbb{R}^d\) und Bias \(b \in \mathbb{R}\)
Aktivierungsfunktion: für binäre Klassifikation typisch – Heaviside:
\[ \phi(z) = \begin{cases} 1 & \text{wenn } z \geq 0 \\ 0 & \text{wenn } z < 0 \end{cases} \]
Linearkombination: \(z = \bs{w}^\top \bs{x} + b\) stellt lineare Entscheidungsgrenze dar mit \(\bs{w}^\top \bs{x} + b = 0\) und entsprechender Vorhersage \(\hat{y} = \phi(z)\) –
Beispiel: \(d = 2\), \(\bs{x}_i = \begin{pmatrix} x_{i1} \\ x_{i2} \end{pmatrix}\),
\(\bs{w} = \begin{pmatrix} 2 \\ -1 \end{pmatrix}\), \(b = -1\).
Entscheidungsgrenze ist dann:\[ 2 x_{i1} - x_{i2} - 1 = 0 \quad \Leftrightarrow \quad x_{i2} = 2 x_{i1} - 1 \]
Punkte oberhalb der Geraden \(\ra\) Klasse 1, unterhalb \(\ra\) Klasse 0
Bedingung: \(\bs{w}^T \bs{x}_i + b = 0\) trennt den Eingaberaum in zwei Halbräume:
- Punkte mit \(\bs{w}^T \bs{x}_i + b \geq 0\) \(\ra\) Klasse 1
- Punkte mit \(\bs{w}^T \bs{x}_i + b < 0\) \(\ra\) Klasse 0
Lernen von Parametern im SLP
Intuition
Trainingsdaten: \((\bs{x}_i, y_i)\) mit Label \(y_i \in \{0,1\}\), \(\bs{x}_i \in \mathbb{R}^d\) für \(i = 1, \dots, N\), Vorhersage \(\hat{y}_i = \phi(\bs{w}^\top \bs{x}_i + b)\), Gewichtungsvektor \(\bs{w} \in \mathbb{R}^d\), und \(b \in \mathbb{R}\)
Ziel: Bestimme \(\bs{w}\) und \(b\), sodass \(\hat{y}_i \approx y_i\) für alle \(i\),
- bei Fehlklassifikation \(y_i \ne \hat{y}_i\): Update der Lernregel:
\[ \bs{w} \leftarrow \bs{w} + \eta (y_i - \hat{y}_i) \bs{x}_i, \quad b \leftarrow b + \eta (y_i - \hat{y}_i) \]
Lernrate (Schrittweite) \(\eta>0\), \(\bs{w}\) und \(b\) über Korrektursignal \(y_i - \hat{y}_i \in \{-1, 0, +1\}\) bei Fehler anpassen: inkrementell
korrekt klassifizierte Punkte bewirken nichts
Bedeutung des Bias-Terms \(b\)
\(b\) kann als zusätzliches Gewicht \(w_0\) mit festem Input \(x_0 = 1\) interpretiert werden \(\ra\) das Modell wird zu:
\[ \hat{y} = \phi(\bs{w}^\top \bs{x} + b) = \phi(\tilde{\bs{w}}^\top \tilde{\bs{x}}) \]
\[ \tilde{\bs{x}} = \begin{pmatrix} 1 \\ \bs{x} \end{pmatrix}, \quad \tilde{\bs{w}} = \begin{pmatrix} b \\ \bs{w} \end{pmatrix} \]
Ohne Bias: Entscheidungshyperfläche \(\bs{w}^\top \bs{x} = 0\) verläuft durch den Ursprung
Mit Bias \(b \in \mathbb{R}\): Verschiebung der Hyperfläche auf \(\bs{w}^\top \bs{x} + b = 0\)
Bias wirkt wie ein frei lernbarer Achsenabschnitt, was verschiebbare Aktivierungsschwellen ermöglicht
Lernen von Parametern
Online-Lernen und Gewichtsanpassung
Gewichtsupdate erfolgt sofort nach Verarbeitung von \((\bs{x}_i, y_i)\)
Dieser Lernmodus heißt online: kein Warten auf ganzen Batch
Nur Fehlerpunkte (\(y_i \ne \hat{y}_i\)) führen zu einer Änderung \(\ra\) korrekt klassifizierte Punkte lassen \(\bs{w}\) und \(b\) unverändert
Netzparameter \(\bs{w}\), \(b\) sind global – gelten für alle Beobachtungen \(\ra\) Änderung an \(\bs{w}\) durch Punkt \(x_k\) kann spätere \(\hat{y}_j\), \(k<j\), beeinflussen
Daher kann ein zuvor korrekt klassifiziertes Trainingsdatum falsch werden
Einschränkungen des Perzeptrons
Konvergenz garantiert, falls Daten linear separierbar sind
Beispiel: XOR-Funktion nicht trennbar durch eine lineare Hyperebene
Ursache: keine nichtlineare Transformation des Eingaberaums möglich
Lösungsidee: Zusammenschalten mehrerer Neuronen
\(\hra\) mehrschichtige Netzwerke (MLP)
Was ist ein Neuron?
Abgrenzung zur Trainingsbeobachtung
Trainingsdaten: \(N\) Vektoren \(\bs{x}_i \in \mathbb{R}^d\) mit zugehörigem Label \(y_i \in \{0,1\}\)
\(\bs{x}_i\) besitzt \(d\) Merkmale \(\ra\) Eingabeschicht hat \(d\) InputneuronenEin Neuron ist eine Verarbeitungseinheit im Netzwerk, nicht ein Trainingsdatum
\(\ra\) nicht \(N\) Neuronen, sondern \(N\) Durchläufe durch dasselbe NetzwerkIm Single-Layer-Perzeptron: genau ein Outputneuron in der Ausgabeschicht
\(\ra\) nimmt alle \(d\) Komponenten von \(\bs{x}\) auf:- berechnet gewichtete Summe \(z = \bs{w}^\top \bs{x} + b\)
- entscheidet per Schwellenfunktion \(\phi(z)\), ob Output \(0\) oder \(1\)
- pro Eingabevektor entsteht genau ein Ausgabewert \(\hat{y} \in \{0,1\}\)
Wiederholtes Durchlaufen der Daten
Trainingsdaten \(\{(\bs{x}_i, y_i)\}_{i=1}^N\) werden mehrfach durchlaufen
\(\hra\) jeder vollständige Durchlauf heißt EpochePro Epoche: alle \(\bs{x}_i\) werden sequentiell verarbeitet:
for-loop über \(i = 1,\dots,N\) für jedes \(i\) Vorhersage \(\hat{y}_i\), ggf. UpdateReihenfolge der Daten bleibt konstant oder wird pro Epoche neu gemischt
Ziel der Perzeptron-Lernregel, Formale Ableitung & Perzeptron-Konvergenzsatz
Ziel der Perzeptron-Lernregel
Trainingsdaten: \((\bs{x}_i, y_i)\) mit \(\bs{x}_i \in \mathbb{R}^d\), \(y_i \in \{0,1\}\), \(i = 1,\dots,N\)
Modell:
\[ \hat{y}_i = \phi\left( \bs{w}^\top \bs{x}_i + b \right) \]
Frage: wie lernen wir \(\bs{w}\) und \(b\) aus den Daten?
Falls \(\hat{y}_i \neq y_i\), aktualisiere:
\[ \bs{w} \leftarrow \bs{w} + \eta (y_i - \hat{y}_i) \bs{x}_i \] \[ b \leftarrow b + \eta (y_i - \hat{y}_i) \]
\(\eta > 0\): Lernrate,
\(y_i - \hat{y}_i \in \{-1, 0, +1\}\): KorrektursignalIntuition:
- \(y_i = 1\), \(\hat{y}_i = 0\) \(\ra\) schiebe Grenze nach rechts
- \(y_i = 0\), \(\hat{y}_i = 1\) \(\ra\) schiebe Grenze nach links
- bei \(\hat{y}_i = y_i\) keine Änderung
Formale Ableitung
Der Fehler bei Datum/Sample \(i\) sei: \(e_i = y_i - \hat{y}_i\)
Die Gewichtsanpassung erfolgt entlang des negativen Gradienten (heuristisch), da die Heaviside-Funktion nicht differenzierbar ist. Dennoch interpretiert man die Lernregel grob als ob sie dem Gradienten von \(e_i^2\) folgt:
\[ \Delta \bs{w} \propto \frac{\partial}{\partial \bs{w}} e_i^2 = -2 e_i \frac{\partial \hat{y}_i}{\partial \bs{w}} \approx e_i \bs{x}_i \]
\[ \nabla_{\bs{w}} e_i^2 = -2 e_i \cdot \frac{\partial \hat{y}_i}{\partial \bs{w}} \approx e_i \cdot \bs{x}_i \]
Näherung: Schritt / Richtung der Korrektur ist \(\bs{x}_i\) (gewichtet mit Vorzeichen des Fehlers), da
\(\frac{\partial \hat{y}_i}{\partial \bs{w}}\) bei Heaviside nicht definiert
Perzeptron-Konvergenzsatz
Theorem: falls Daten linear separierbar, konvergiert Lernregel
Nach endlich vielen Schritten existiert \(\bs{w}^*\) mit \(\hat{y}_i = y_i\) für alle \(i\)
Beweisidee (nicht im Detail):
- konstruiere Maß für Fortschritt (z. B. Projektion auf wahre Trennrichtung)
- zeige monotonen Fortschritt bei Fehlklassifikation
- zeige, dass keine unendliche Zahl an Fehlern möglich ist
Aber Bei nicht separierbaren Daten \(\ra\) keine Konvergenz, endlose Oszillation möglich
Grenzen der Lernregel
Funktioniert nur bei linear separierbaren Daten
Keine Interpretation als Gradientenabstieg auf differenzierbarer Funktion
Grund: Sprungstelle der Heaviside-Funktion
Bei nicht separierbaren Daten: Oszillation ohne Konvergenz
Beispiel: ein Lernschritt
Gegeben: \(\bs{x}_1 = (1,1)^T\), \(y_1 = 1\), Initialisierung:
\[ \bs{w} = (0,0)^T,\quad b = 0,\quad \eta = 1 \]
Dann: \(z_1 = 0 \Rightarrow \hat{y}_1 = 1 \Rightarrow\) keine Änderung
Weiteres Sample: \(\bs{x}_2 = (-2, 0)^T\), \(y_2 = 0\)
Dann: \(z_2 = 0 \Rightarrow \hat{y}_2 = 1 \Rightarrow\) Fehler \(e_2 = -1\)
Update:
\[ \bs{w} \leftarrow (0,0) -1 \cdot (-2,0) = (2,0),\quad b \leftarrow 0 -1 = -1 \]
Differenzierbares Perzeptron und Gradientenverfahren
Motivation für Differenzierbarkeit
Klassische Heaviside-Aktivierung ist nicht differenzierbar
Gradientverfahren wie SGD daher nicht direkt anwendbar
Lösung: Ersetze Heaviside durch glatte Approximation, z. B. Sigmoid
Sigmoid-Aktivierung
Definition:
\[ \sigma(z) = \frac{1}{1 + e^{-z}}, \quad z \in \mathbb{R} \]
Eigenschaften:
glatt und überall differenzierbar
Wertebereich: \((0,1)\)
Sättigung bei großen positiven/negativen \(z\)
Ableitung:
\[ \sigma'(z) = \sigma(z)(1 - \sigma(z)) \]
Modell mit Sigmoid-Aktivierung
Für \(i = 1, \dots, N\):
\[ z_i = \bs{w}^\top \bs{x}_i + b,\quad \hat{y}_i = \sigma(z_i) \]
Ziel: \(\hat{y}_i \approx y_i \in \{0,1\}\)
Differenzierbares Perzeptron und Gradientenverfahren
Fehlerfunktion: log loss
Interpretation von \(\hat{y}_i\) als Wahrscheinlichkeit \(\Rightarrow\) log loss:
\[ \mathcal{L}_i = - \left[ y_i \log \hat{y}_i + (1 - y_i) \log(1 - \hat{y}_i) \right] \]
Gesamte Verlustfunktion:
\[ \mathcal{L} = \sum_{i=1}^N \mathcal{L}_i = - \sum_{i=1}^N \left[ y_i \log \hat{y}_i + (1 - y_i) \log(1 - \hat{y}_i) \right] \]
Gradienten für Gewichte und Bias
Ableitung nach \(\bs{w}\):
\[ \frac{\partial \mathcal{L}_i}{\partial \bs{w}} = (\hat{y}_i - y_i) \cdot \bs{x}_i \]
Ableitung nach \(b\):
\[ \frac{\partial \mathcal{L}_i}{\partial b} = \hat{y}_i - y_i \]
Update-Regeln (Gradient Descent)
Batch-Update für Lernrate \(\eta > 0\):
\[ \bs{w} \leftarrow \bs{w} - \eta \sum_{i=1}^N (\hat{y}_i - y_i) \bs{x}_i \] \[ b \leftarrow b - \eta \sum_{i=1}^N (\hat{y}_i - y_i) \]
Stochastisch (SGD):
\[ \bs{w} \leftarrow \bs{w} - \eta (\hat{y}_i - y_i) \bs{x}_i,\quad b \leftarrow b - \eta (\hat{y}_i - y_i) \]
Interpretation
Fehlerterm \(\hat{y}_i - y_i\) misst Abstand zur Zielklasse
Richtung der Korrektur: Eingabevektor \(\bs{x}_i\)
Durch Differenzierbarkeit der Sigmoid-Funktion \(\ra\) Grundlage für Backpropagation