what is support vector machine machine learning
Dieses Tutorial erklärt Support Vector Machine in ML und zugehörige Konzepte wie Hyperplane, Support Vectors und Anwendungen von SVM:
In dem Vorheriges Tutorial Wir haben etwas über genetische Algorithmen und ihre Rolle beim maschinellen Lernen gelernt.
In unseren früheren Tutorials haben wir einige überwachte und unbeaufsichtigte Algorithmen für maschinelles Lernen untersucht. Backpropagation ist ein überwachter Lernalgorithmus, während Kohenen ein unbeaufsichtigter Lernalgorithmus ist.
In diesem Tutorial zu Support-Vektor-Maschinen erfahren Sie mehr über Support-Vektor-Maschinen. SVMs sind robuste mathematisch überwachte Algorithmen für maschinelles Lernen, die häufig bei der Klassifizierung von Trainingsdatensätzen verwendet werden.
=> Lesen Sie die komplette Schulungsreihe zum maschinellen Lernen durch
Was du lernen wirst:
- Was ist eine Support Vector Machine (SVM)?
- Was ist eine Hyperebene?
- Was sind Klassifizierungs- und Regressionsalgorithmen?
- Was sind Unterstützungsvektoren?
- Wie funktioniert eine Support-Vektor-Maschine?
- So optimieren Sie die Position der Hyperebene
- Anwendungen von SVM
- Fazit
- Literatur-Empfehlungen
Was ist eine Support Vector Machine (SVM)?
Der SVM-Algorithmus ist ein überwachter Lernalgorithmus, der unter Klassifizierungstechniken kategorisiert ist. Es ist eine binäre Klassifizierungstechnik, die den Trainingsdatensatz verwendet, um eine optimale Hyperebene in einem n-dimensionalen Raum vorherzusagen.
Diese Hyperebene wird verwendet, um neue Datensätze zu klassifizieren. Als binärer Klassifikator unterteilt der Trainingsdatensatz der Hyperebene den Trainingsdatensatz in zwei Klassen.
Die SVM-Algorithmen werden verwendet, um Daten sowohl in einer zweidimensionalen Ebene als auch in einer mehrdimensionalen Hyperebene zu klassifizieren. Die mehrdimensionale Hyperebene verwendet die „Kernel“, um die mehrdimensionalen Daten zu kategorisieren.
Es ist immer erwünscht, eine maximale Unterscheidung zwischen den klassifizierten Datenpunkten zu haben. Dies bedeutet, dass sie einen maximalen Abstand haben sollten oder dass die Hyperebene einen maximalen Abstand zwischen den Datenpunkten haben sollte.
Was ist eine Hyperebene?
Eine Hyperebene ist eine Grenze, die die Ebene teilt. Es ist eine Entscheidungsgrenze, die die Datenpunkte in zwei verschiedene Klassen klassifiziert. Da SVM zum mehrdimensionalen Klassifizieren von Daten verwendet wird, kann eine Hyperebene eine gerade Linie sein, wenn 2 Eingaben vorhanden sind, oder eine 2D-Ebene, wenn mehr als 2 Eingaben vorhanden sind.
Die SVM-Algorithmen können auch für die Regressionsanalyse verwendet werden, werden jedoch hauptsächlich zur Klassifizierung verwendet. Sehen wir uns einige Details zu jeder dieser Methoden an.
Was sind Klassifizierungs- und Regressionsalgorithmen?
Ein Klassifizierungsalgorithmus analysiert die Trainingsdaten, um das Ergebnis vorherzusagen. Das Ergebnis ist eine Zielklasse, zum Beispiel , Tag oder Nacht, Ja oder Nein, Lang oder Kurz. Ein Beispiel für einen Klassifizierungsalgorithmus wäre, ob ein Kunde in einem Supermarkt, der Brot kauft, auch Butter kaufen würde. Die Zielklasse wäre 'Ja' oder 'Nein'.
Ein Regressionsalgorithmus ermittelt die Beziehung zwischen den unabhängigen Variablen und sagt ein Ergebnis voraus. Die lineare Regression ermittelt eine lineare Beziehung zwischen Eingabe und Ausgabe. Zum Beispiel: 'A' als Eingabe und 'b' als Ausgabe, eine lineare Funktion wäre b = k * a + c.
Was sind Unterstützungsvektoren?
Unterstützungsvektoren sind die Datenpunkte, die uns helfen, die Hyperebene zu optimieren. Diese Vektoren liegen der Hyperebene am nächsten und sind am schwierigsten zu klassifizieren. Die Position der Entscheidungshyperebene hängt von den Unterstützungsvektoren ab. Wenn diese Unterstützungsvektoren entfernt werden, ändert sich auch die Position der Hyperebene.
Eine Unterstützungsvektormaschine (SVM) verwendet die Eingabedatenpunkte oder Merkmale, die als Unterstützungsvektoren bezeichnet werden, um die Entscheidungsgrenzen, d. H. Den Raum um die Hyperebene, zu maximieren. Die Ein- und Ausgänge einer SVM ähneln dem neuronalen Netzwerk. Es gibt nur einen Unterschied zwischen SVM und NN, wie unten angegeben.
Eingaben: Das SVM-Netzwerk kann n Anzahlen von Eingaben enthalten, z. B. x1, xzwei, …… .., xich,…., X.n.
Ausgänge: Die Zielausgabe t.
Gewichte: Wie neuronale Netzwerkgewichte w1, imzwei, ……, imnsind jedem Eingang zugeordnet, dessen lineare Kombination den Ausgang y vorhersagt.
Unterschied zwischen SVM und neuronalen Netzen
Die synaptischen Gewichte in neuronalen Netzen werden eliminiert, um die Ausgabe y des Netzwerks zu berechnen, während in SVM die Nicht-Null-Gewichte reduziert oder eliminiert werden, um die optimale Entscheidungsgrenze zu berechnen.
Durch das Eliminieren der Gewichte wird der Eingabedatensatz auf einige wichtige Eingabemerkmale reduziert, die bei der Entscheidung über die trennbare Hyperebene hilfreich sind.
Wie funktioniert eine Support-Vektor-Maschine?
Wie wir wissen, besteht das Ziel der Support-Vektor-Maschinen darin, den Abstand zwischen den klassifizierten Datenpunkten zu maximieren. Dies bringt optimalere Ergebnisse für die Klassifizierung neuer Sätze nicht trainierter Daten. Somit kann dies erreicht werden, indem eine Hyperebene an einer Position vorhanden ist, an der der Rand maximal ist.
Sehen wir uns ein Beispiel für linear getrennte Datenpunkte an:
Schritt 1: Finden Sie die richtige Hyperebene aus verschiedenen Möglichkeiten heraus: Um die beste Hyperebene zu bestimmen, ermitteln Sie alle möglichen Ebenen, die die Daten teilen, und wählen Sie dann diejenige aus, die die Eingabedatensätze am besten klassifiziert. In der folgenden Grafik gibt es drei Möglichkeiten für Hyperebenen. Die Hyperebene 3 teilt die Datenpunkte besser.
Schritt 2: Wählen Sie eine Hyperebene mit maximalem Abstand zwischen den nächsten Datenpunkten aus: Der Rand ist definiert als der Abstand zwischen der Hyperebene und den nächsten Datenpunkten. Es ist also optimal, eine maximale Marge zu haben. Wenn 2 oder mehr als 2 Hyperebenen die Daten gleich klassifizieren, ermitteln Sie den Rand.
Die Hyperebene mit dem maximalen Rand wird ausgewählt. In der folgenden Abbildung teilen die Hyperebenen 2.1, 2.2 und 2.3 die Datenpunkte, aber die Hyperebene 2.2 hat einen maximalen Rand.
Schritt 3: Wenn Ausreißer vorhanden sind: Ausreißer sind Datenpunkte, die sich von einer Reihe von Datenpunkten unterscheiden. Bei 2 Datensätzen kann ein Ausreißer vorhanden sein. Die SVM ignoriert solche Ausreißer in den Daten und findet dann eine Hyperebene mit maximalem Spielraum.
Schritt 4: Bei nicht linear getrennten Datenpunkten verwendet die SVM einen Kernel-Trick. Durch die Einführung einer neuen Dimension wird eine nicht linear trennbare Ebene in eine trennbare Scheibe konvertiert. Kernel-Tricks sind komplexe mathematische Gleichungen, die komplexe Datentransformationen durchführen, um die Hyperebene zu optimieren.
Die folgende Abbildung zeigt nicht linear trennbare Datenpunkte, die dann mit der z-Ebene in eine hohe Dimensionalität umgewandelt werden. Die Hyperebene, die die beiden Datensätze trennt, ist ein Kreis.
So optimieren Sie die Position der Hyperebene
Die Position der Hyperebene wird mithilfe der Optimierungsalgorithmen optimiert.
SVM-Parameter: Kernel
Das Erstellen einer optimierten Hyperebene in einem nicht linear trennbaren Problem erfolgt mithilfe von Kerneln. Die Kernel sind mathematische Funktionen, die das komplexe Problem mithilfe der linearen algebraischen Form konvertieren.
Für einen linearen Kernel lautet die Gleichung wie folgt:
F (x) = b + Summe (aich* (x, xich))
wo,
x sind die neuen Eingabedaten
xichist der Unterstützungsvektor
b, aichsind die Koeffizienten. Diese Koeffizienten werden während der Lernphase des Algorithmus geschätzt.
Für ein komplexes nichtlinear trennbares Problem konvertiert der Kernel-Trick das nichtlineare trennbare Problem in ein trennbares Problem. Es transformiert die komplexen Daten und findet heraus, wie die Datenpunkte in Ausgaben unterteilt werden können.
Es gibt viele Arten von Kernelfunktionen, z. B. lineare, polynomiale, sigmoidale, radiale Vorspannungen, nichtlineare und viele mehr.
Sehen wir uns die Verwendung einiger der oben genannten Kernelfunktionen an:
Die Kernelfunktionen berechnen das innere Produkt der 2 Eingänge x, y des Raumes.
# 1) Radiale Vorspannungsfunktion: Die am häufigsten verwendete Kernelfunktion besagt, dass für alle Werte zwischen x = (-1,1) der Wert der Funktion 1 ist, andernfalls 0. Für einige Abschnitte sagen Sie xichist der Wert der Kernelfunktion 1 für | (xich- h), (xich+ h) | für xichals Zentrum genommen und sonst 0.
# 2) Sigmoidfunktion: Als neuronale Netze, die Sigmoid verwenden, ist die Kernelfunktion für SVMs
# 3) Hyperbolische Tangentenfunktion: Wie neuronale Netze verwenden, ist die Funktion
# 4) Gaußsche Kernelfunktion: Die Gaußsche Kernelfunktion gibt an
# 5) Polynomfunktion: k (xich, xj) = (xich* xj+1)zwei
Anwendungen von SVM
Die realen Anwendungen von SVM umfassen:
# 1) Einteilung der Artikel in verschiedene Kategorien: Die SVM unterscheidet zwischen den geschriebenen Texten und ordnet sie in verschiedene Kategorien wie Unterhaltung, Gesundheit, Belletristik ein. Es basiert auf den voreingestellten Schwellenwerten, die während des Trainings der SVM berechnet wurden.
Wenn der Schwellenwert überschritten wird, wird er der Kategorie zugeordnet. Wenn der Wert nicht erfüllt ist, werden neue Kategorien für die Klassifizierung definiert.
beste Musik mp3 download für android
# 2) Erkennung des Gesichts: Das gegebene Bild wird durch Erkennen der Merkmale unter Verwendung von Pixeln als Gesichtsbild oder Nichtgesichtsbild klassifiziert. Das Bild wird als Gesicht oder Nichtgesicht erkannt.
# 3) Gesundheitsinformationen: SVMs werden verwendet, um Patienten anhand ihrer Gene, der Erkennung biologischer Muster usw. zu klassifizieren.
# 4) Nachweis der Proteinhomologie: In den Computational Medical Sciences werden die SVMs darin geschult, wie Proteinsequenzen modelliert werden. SVM wird dann verwendet, um die Proteinhomologie nachzuweisen.
Fazit
In diesem Tutorial zu Support-Vektor-Maschinen haben wir mehr über Support-Vektor-Maschinen erfahren. SVM-Algorithmen sind überwachte Lernalgorithmen, mit denen Binärdaten und linear trennbare Daten klassifiziert werden. Es klassifiziert die Datenpunkte durch eine Hyperebene mit einem maximalen Rand.
Nichtlineare Datenpunkte können auch von Support-Vektor-Maschinen mithilfe von Kernel-Tricks klassifiziert werden. Es gibt viele Anwendungen von SVM im wirklichen Leben. Eine der häufigsten Anwendungen ist die Gesichtserkennung und Handschrifterkennung.
Fröhliches Lesen!!
=> Besuchen Sie hier für die exklusive maschinelle Lernserie
Literatur-Empfehlungen
- Tutorial für maschinelles Lernen: Einführung in ML und seine Anwendungen
- Eine vollständige Anleitung zum künstlichen neuronalen Netzwerk beim maschinellen Lernen
- Data Mining gegen maschinelles Lernen gegen künstliche Intelligenz gegen tiefes Lernen
- Arten des maschinellen Lernens: Überwachtes gegen unbeaufsichtigtes Lernen
- Einführung in genetische Algorithmen im maschinellen Lernen
- 11 beliebtesten Software-Tools für maschinelles Lernen im Jahr 2021
- Top 13 der BESTEN Unternehmen für maschinelles Lernen (Aktualisierte Liste 2021)
- Was ist Java Vector? Java Vector Class Tutorial mit Beispielen