Kurs:Maschinelles Lernen/Klassifikation mittels Support Vector Machines

Vorherige Seite: K3 - Klassifikation mittels Gradientenabstieg
Nächste Seite : K4 - Grundidee der Neuronalen Netze

Grundidee

Bearbeiten

Die Klassifikation mittels Gradientenabstieg sucht nach einer Lösung, die den Grundraum (Vektorraum)   in Klassen zerlegt. Es lässt sich allerdings auch die Frage stellen, ob die gefundene Lösung die beste Klassifikationsmöglichkeit für die Trainingsdaten ist.

Optimierung und Klassifikation

Bearbeiten

Um dieser Frage nachzugehen, kann die Priorität der Optimierung geändert werden. Statt nach einer Lösung zu suchen, die vollständig und konsistent klassifiziert und das empirische Risiko minimiert, kann nach einer Lösung gesucht werden, die den Abstand zwischen den beiden Klassen maximiert und vollständig und konsistent klassifiziert.

Binäre Klassifikation

Bearbeiten

Bei einer binären Klassifikation gibt es genau 2 Klassen und Trainingsdaten   werden genau einer Klasse   zugeordnet.

Hyperebene zur Trennung der Klassen

Bearbeiten

Nach Möglichkeit soll bei dieser binären Klassifikation eine  -dimensionale Hyperebene gefunden werden, wobei die Hyperebene den Grundraum   in zwei Halbräume     zerlegt. Die Hyperebene trennt die beiden Klassen vollständig, wenn für

  •   mit   gilt  
  •   mit   gilt  

Lineare Trennbarkeit

Bearbeiten

Zwei

Namensgebung - Support Vector bzw. Stützvektor

Bearbeiten

Da diese beiden Punkte sozusagen als Stützvektoren für das festlegen der gesuchten Hyperebene dienen wird diese Methode als Support Vector Machines bezeichnet.

Hyperebene

Bearbeiten
 
Affiner Unterraum

Darstellung eines affinen Unterraumes aus dem   mit Stützvektor  .

Zerlegung in Klassen mit einer Hyperbene

Bearbeiten

Damit wird ein Punkt   der Menge   über das Skalarprodukt zugeordnet, wenn

 

gilt, während er im Fall

 

der Menge   zugeordnet wird.

Normalenvektor

Bearbeiten
  •   ist der Normalenvektor zur Hyperebene,
  •   ist der Stützvektor zu einem Punkt des affinen Unterraumes.

Vektoren aus der Hyperebene

Bearbeiten

Für den Fall   liegt der Vektor   genau in der durch den Normalenvektor   und den Stützvektor   definierten Hyperebene.

 

Skalarprodukt als Maß für den Abstand zu Hyperebene

Bearbeiten

Die affine Abbildung   stellt ein Messinstrument für Trennung in zwei Klassen durch eine Hyperbene dar:

  • mit   liegt   in der Hyperebene
  • mit   liegt   in der Klasse  
  • mit   liegt   in der Klasse  

Epsilonumgebung um eine Hyperebene

Bearbeiten

Im Allgemeinen würde man erwarten, dass für verrauschte Traingsdaten  , die   bzw.   klassifziert sind, eine falsche Zuordnung mit   in der Nähe der Hyperebene   häufiger auftritt. Man kann das durch eine  -Umgebung um die Hyperebene.

Damit wird ein Punkt   der Menge   über das Skalarprodukt zugeordnet, wenn

 

gilt, während er im Fall

 

der Menge   zugeordnet wird.

Signumfunktion für die Klassifizierung

Bearbeiten

Mit der reelle Vorzeichenfunktion (Signumfunktion) kann man nun die Klassifizierung aller Vektoren aus dem Grundraum   über den Wert der  -Funktion aus   festlegen:

 

Vorzeichen beim Skalarprodukt als Klassifizierungsmerkmal

Bearbeiten

Die Klassifizierung mit einer Maschine   zum Zeitpunkt   erfolgt dann über:

 

Bemerkung - Zeitindex

Bearbeiten

Die Maschine   hat einen Index  , da sich die Klassifizierung mit der Zeit   durch einen Lernprozess und zusätzliche Trainingsdaten veränder kann.

Hyperebenenvektoren eindeutig zuordnen

Bearbeiten

Mit der Signumfunktion werden Vektoren aus der trennenden Hyperebene  . Für diesen Fall sollte man noch eine Festlegung treffen, zu welcher Menge dann der Vektor   zugeordnet wird oder ob solche Vektoren keine Klasse zugeordnet werden.

Außerhalb einer Umgebung um die Hyperebene

Bearbeiten

Die folgende Gleichung beschreibt, das ein Vektor   dem Halbraum   zugeordnet wird und mindestens einen euklischen Abstand von   von der Hyperebene besitzt. Dies beschreibt

 

Den analogen Fall für die Zuordnung eines Vektors   zu dem Halbraum   erhält man folgende Gleichung:

 

Epsilonumgebung der Hyperebene

Bearbeiten

Gilt  , so entsteht eine  -Umgebung durch Parallelverschiebung der Hyperebene   in Richtung des Normalenvektors   und  . Die eingeschlossenen Punkte der Umgebung um die Hyperebene können algebraisch wie folgt dargestellt werden:

 

Umformung mit Skalarprodukt als Bilinearform

Bearbeiten

Mit Anpassung des Normalenvektors und den Eigenschaften des Skalarproduktes als Bilinearform kann man die Gleichung auch wie folgt ausdrücken:

 

Korrektheit der Klassifizierung

Bearbeiten

Werden insgesamt alle Datenpunkte korrekt und vollständig klassifiziert, wenn für alle   und  , wenn das Vorzeichen von   und das Vorzeichen von   übereinstimmen.

Korrektheit - unvollständig

Bearbeiten

Die Korrektheit der Klassifizierung trifft im Allgemeinen nur für Datenpunkte außerhalb von eine  -Umgebung   der Hyperebene zu. Dies wird durch den folgenden Zusammenhang beschrieben.

 

Parameterreduktion

Bearbeiten

Der Stützvektor   besitzt   unbekannte Parameter. Durch die Nutzung der Linearität in der zweiten Komponente des Skalarproduktes kann man die Anzahl der Parameter bei Ersetzung durch   um   reduzieren.

Korrektheitsüberprüfung - Skalarprodukt und Klassenzuordnung

Bearbeiten

Durch die Multiplikation mit   entsteht bei einer korrekten Zuordnung von   zu den Halbräumen   bzw.   ein positiver Wert und bei falscher Zuordnung einer negatives Produkt.

Breite der Umgebung

Bearbeiten

Die Breite der  -Umgebung um die Trennebene, in der man falsch zugeordneten   findet, sollte auf der einen Seite möglichst klein sein. Betrachtet man die  -Umgebung um die Trennebene, in der man keine Trainingsdaten   einer Klasse zugeordnet werden, sollte möglichst groß sein, da bei minimaler Veränderung der   zu   in   in der Nähe der Hyperebene bereits die Zuordnung zur Klasse verändern kann. Das macht die Klassifikation weniger robust gegenüber verrauschten Daten.

Fehlerfunktion

Bearbeiten

Wenn die Hyperbene den Raum in zwei Halbräume zerlegt. Wenn sich ein falsch zugeordneten Vektor der Hyperebene annähern, soll eine Fehlerfunktion kleiner werden. Wenn sich ein korrekt zugeordneter Vektor auf die Hyperbene zuberewegt (also der Abstand in Richtung des Normalenvektor) annimmt, soll der Fehler größer werden, da die Annäherung für Trennungseigenschaft in Halbräume ungünstiger ist. Mit einer sigmoiden Funktion mit Werten zwischen 0 und +1 kann man diesen Fehler umsetzen in einer Fehlerfunktion.

Einzelfehler

Bearbeiten

Die Werte des Skalarproduktes von Datenvektoren mit dem Normalen geben über das Vorzeichen an, wie das Skalarprodukt die Klasse   bzw.  . Für Trainingsdaten   kand man Produkt aus Skalarprodukt und der Klasszuordnung   bestimmt. Bei korrekter Zugeordnung der Daten durch das Skalarprodukt ist der folgende Ausdruck positiv (bei falscher negativ).

 .

Beispiel - Klassifizierung Datenpaar

Bearbeiten

Trainingsdaten der Form   bestehen aus einem Vektor   und Klassfizierung zu  .

  • (korrekte Zuordnung 1)   mit  .
  • (korrekte Zuordnung 2)   mit  .
  • (falsche Zuordnung 3)   mit  .

Sigmoide Funktion

Bearbeiten
 
Die sigmoide Funktion - logistische Kurve

Die folgende sigmoide Funktion hat folgende Eigenschaften

 

Man für große positive Werte von soll der Fehler allerdings sehr klein sein und für eine Datenpaar mit negativen Werten soll der Wert pro Datenpaar nahe bei 1 liegen und eine Fehler für einen einzelnen Wert erzeugen.

Sigmoide Funktion für den Fehler

Bearbeiten

Geht man zur Funktion   über, erhält man

 

und es gilt   und  .

Ableitung der sigmoiden Funktion

Bearbeiten

Die Ableitung der sigmoiden Funktion ist für die partielle Ableitung der Fehlerfunktion   relevant.

 

Einzelfehler für einen Datensatz - 1

Bearbeiten

Der Einzelfehler für eine Datensatz wird über die sigmoide Funktion  . Diese sorgt dafür, dass weit von der Hyperebene entfernte korrekt zugeordnete Datensätze nahe bei 0 Fehler gewichtet werden und weit von der Hyperebene entfernte falsch zugeordnete Datensätze eine Fehler gegen 1 konvergiert.

 
 


Einzelfehler für einen Datensatz - 2

Bearbeiten

Wenn man den initiale Supportvektor nicht Konvexkombination der Clustermitten setzt und den angepassten Supportvektor   nicht für weitere Verarbeitungsschritte benötigt, kann man die freien Parameter für den Gradienten über die sigmoide Funktion   auch wie folgt berechnen, in dem man die Parameter   durch eine Parameter   ersetzt.

 
 

Graph der sigmoiden Funktion

Bearbeiten

 

Definition der Fehlerfunktion

Bearbeiten

Für die Berechnung des Gesamtfehlers der muss man die Einzelfehler über alle Datenpunkte aggregieren. Die Daten   für die mehrdimensionale lineare Regression bestehen aus Datenpunkten der Form  :

 

Berechnung für die Komponenten Funktion

Bearbeiten

Durch die Zerlegung in Komponentenfunktionen minimiert man den Fehler für jeden Zeile der Matrix separat. Der folgende Gesamtfehler bezieht sich daher auf die Funktion   für ein gesuchtes   mit minimalem Gesamtfehler für die Daten  .

Berechnung des Gesamtfehlers - 1

Bearbeiten

Für die Berechnung des Gesamtfehlers   werden die quadratischen Fehler für einzelne Datenpunkte   aufsummiert mit   und  .

 

Lagrange-Funktion und deren Optimierung

Bearbeiten

Die Lagrange-Funktion soll dazu dienen   zu minimieren. Eine einfache und (wegen Gradientenabstieg) auch differenzierbare Funktion, ist eine quadrierte Länge des Vektors:

 

Ziel - maximale Margin

Bearbeiten

Da es das Ziel ist, einen maximalen Margin zu finden, kann dies äquivalent umformuliert werden, zu dem Ziel ein minimales   bzw.   zu finden, während alle Datenpunkte vollständig und konsistent klassifiziert werden. Dies kann durch ein Optimierungsproblem mittels einer Lagrange-Funktion gelöst werden.

Nebenbedingung - Langrangemultiplikatoren

Bearbeiten

Allerdings sollen noch Nebenbedingungen erfüllt werden. Nämlich die vollständige und konsistente Klassifikation der Datenpunkte. Dazu können für jede Nebenbedingung die nicht negativen Lagrange-Multiplikatoren

 

eingeführt werden.

Multiplikatoren für richtige und falsche Klassifikationen

Bearbeiten

Bei einer richtigen Klassifikation des Datenpaars   ist der Ausdruck

 

positiv. Es lässt sich motivieren, dass eine richtige Klassifikation "belohnt" werden muss. Da ein Minimum gesucht werden soll, sollte dieser Ausdruck bei einem richtig klassifizierten Ausdruck also abgezogen werden. Bei einer falschen Klassifikation ist dieser Ausdruck negativ und der Betrag des Ausdrucks sollte addiert werden, um die Fehlklassifkation zu "bestrafen".

Bemerkung - Fehlerfunktion

Bearbeiten

Auf diese weise lässt sich die Lagrange-Funktion in der Form

 

finden. Die Größe der Lagrange-Multiplikatoren hängt damit zusammen, wie stark ein bestimmter Datenpunkt ins Gewicht fällt. Da die Hyperebene durch möglichst wenig Datenpunkte, am besten durch die zwei, die der Hyperebene am nächsten liegen, bestimmt werden soll, werden viele der   Null werden. In diesem Fall wird die Lagrange-Funktion aber größer.

Des bedeutet, es wird von der Lagrange-Funktion ein Minimum bezüglich   und   gesucht, aber ein Maximum bezüglich der  .

Um das Minimum bezüglich   und   zu finden, kann wieder die erste Ableitung gesucht und auf Null gesetzt werden, womit sich die beiden Bedingungen

 

und

 

ergeben. Damit zeigt sich, dass bei bekannten   der Normalenvektor   direkt aus den Datenpunkten bestimmt werden kann. die   müssen dazu aber die Nebenbdeingung   erfüllen. Aus den obigen Gleichungen für die Punkte   und   lässt sich auch herleiten, dass   durch die Gleichung

 

bestimmt werden können muss. Das bedeutet, alles was bleibt, ist die Lagrange-Multiplikatoren zu bestimmen.

Dazu wird das sog. Duale Problem formuliert. Bei diesem wird nach einem Extremum bzgl.   unter der Nebenbedingung einer Minimierung von   bzgl.   und   gesucht. Das bedeutet, in die obige Lagrange-Funktion können die gefundenen Bedingungen an   und   eingesetzt werden, um so eine Lagrange-Funktion bzgl. der   zu erhalten. Auf diese Weise wird die duale Lagrange-Funktion

 

erhalten. Die Suche nach einer Extremstelle dieser führt auf die Bedingung

 

welche nur erfüllt werden kann, wenn nicht alle   Null sind. Daneben müssen die   die Nebenbedingung   erfüllen, während   gilt. In der Praxis werden die   auch häufig nach oben beschränkt.

Feature Engineering und Kernel-Funktionen

Bearbeiten

Auch hier lassen sich nicht linear separable Daten durch ein Feature Engineering mit einer passenden Feature Map

 

mit der oben beschriebenen Methode behandeln. Alerdings kann für die duale Lagrange-Funktion

 

so der Gradient

 

gefunden werden. Da es sich bei   um ein Skalarprodukt im   statt im   handelt, ist dieses wesentlich ressourcen- und damit zeitintensiver. Stattdessen wird häufig eine sog. Kernelfunktion

 

eingeführt. Mit ihr wird der Gradient der dualen Lagrange-Funktion

 

durch

 

bestimmt.

Drei der am häufigsten Kernelfunktionen sind durch

 

gegeben. Darin sind   und   positive Konstanten und   eine weiter festzulegende Funktion.

Seiteninformation

Bearbeiten

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal

Bearbeiten

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Kurs:Maschinelles Lernen' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.