(Vielleicht möchten Sie sich zuerst die "Tabelle" unten ansehen.)
Beginnen wir mit den "klassischen" Support-Vektor-Maschinen. Diese lernen, zwischen zwei Kategorien zu unterscheiden. Sie sammeln einige Beispiele für Kategorie A, einige für Kategorie B und übergeben sie beide an den SVM-Trainingsalgorithmus, der die Linie / Ebene / Hyperebene ermittelt, die A am besten von B trennt Sie möchten zwischen genau definierten und sich gegenseitig ausschließenden Klassen unterscheiden: Männer gegen Frauen, die Buchstaben des Alphabets und so weiter.
Angenommen, Sie möchten stattdessen "A" identifizieren. Sie könnten dies als ein Klassifizierungsproblem behandeln: Wie unterscheide ich "A" von "Nicht-A". Es ist ziemlich einfach, ein Trainingsset mit Hundebildern zusammenzustellen, aber was sollte in Ihr Trainingsset mit Nicht-Hunden passen? Da es unendlich viele Dinge gibt, die keine Hunde sind, kann es schwierig sein, ein umfassendes und dennoch repräsentatives Trainingsset für alle nicht-Hundeartigen Dinge zu erstellen. Stattdessen können Sie einen Ein-Klassen-Klassifikator verwenden. Der herkömmliche Klassifikator mit zwei Klassen findet eine (Hyper-) Ebene, die A von B trennt. Die SVM mit einer Klasse findet stattdessen die Linie / Ebene / Hyperebene, die alle Punkte der Klasse (die "A") vom Ursprung trennt ;
Das Ensemble SVM "System" ist eigentlich eine Sammlung von zwei SVM "Untereinheiten". Jede Untereinheit wird mit einer einzigen trainiertpositives Beispiel für eine Klasse und eine enorme Sammlung negativer Beispiele für die andere. Anstatt also Hunde gegen Nichthundebeispiele (Standard-SVM mit zwei Klassen) oder Hunde gegen Herkunft (SVM mit einer Klasse) zu unterscheiden, unterscheidet jede Untereinheit zwischen spezifischen Hunden (z. B. "Rex") und vielen Nichthunden Beispiele. Individuelle SVMs für Untereinheiten werden für jedes Beispiel der positiven Klasse trainiert, sodass Sie eine SVM für Rex, eine für Fido und eine weitere für den Hund Ihres Nachbarn haben, der um 6 Uhr morgens bellt, und so weiter. Die Ausgaben dieser SVMs für Untereinheiten werden kalibriert und kombiniert, um zu bestimmen, ob ein Hund, nicht nur eines der spezifischen Beispiele, in den Testdaten erscheint. Ich denke, Sie könnten sich die einzelnen Untereinheiten auch als SVMs einer Klasse vorstellen, bei denen der Koordinatenraum so verschoben ist, dass das einzige positive Beispiel im Ursprung liegt.
Zusammenfassend sind die wichtigsten Unterschiede:
Trainingsdaten
- Zwei Klassen SVM: Positive und negative Beispiele
- Eine Klasse SVM: Nur positive Beispiele
- Ensemble SVM "System": Positive und negative Beispiele. Jede Untereinheit wird auf ein einziges positives Beispiel und viele negative Beispiele trainiert.
Anzahl der Maschinen
- SVM mit zwei Klassen: eine
- Eine Klasse SVM: Eins
- Ensemble SVM "System": viele (eine Untereinheit Maschine pro positives Beispiel)
Beispiele pro Klasse (pro Maschine)
- SVM mit zwei Klassen: viele / viele
- Eine Klasse SVM: viele / eine (am Ursprung festgelegt)
- Ensemble SVM "System": viele / viele
- Ensemble SVM "Subunit": eins / viele
Nachbearbeitung
- SVM mit zwei Klassen: Nicht erforderlich
- Ein-Klassen-SVM: Nicht erforderlich
- Ensemble SVM: Wird benötigt, um die Ausgabe jeder SVM zu einer Vorhersage auf Klassenebene zusammenzuführen.
Nachtrag: Sie hatten gefragt, was sie unter "[anderen Ansätzen] verstehen, wenn die Exemplare in einen gemeinsamen Merkmalsraum abgebildet werden sollen, über den ein Ähnlichkeitskern berechnet werden kann". Ich denke, sie bedeuten, dass eine traditionelle SVM mit zwei Klassen unter der Annahme funktioniert, dass sich alle Mitglieder der Klasse irgendwie ähnlich sind, und deshalb möchten Sie einen Kernel finden, der große Dänen und Dachsunde nahe beieinander, aber weit entfernt von allem anderen platziert. Im Gegensatz dazu umgeht das SVM-System des Ensembles dies, indem es etwas als Hund bezeichnet, wenn es ausreichend dänen- ODER dachsund- ODER pudelartig ist, ohne sich Gedanken über die Beziehung zwischen diesen Exemplaren zu machen.