Share via


Zweiklassige Locally-Deep Support Vector Machine

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Erstellt ein binäres Klassifizierungsmodell mithilfe des Locally-Deep Support Vector Machine-Algorithmus

Kategorie: Machine Learning / Initialize-Modell / Klassifizierung

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Modul "Zwei-Klasse Lokal Deep Support Vector Machine" in Machine Learning Studio (klassisch) verwenden, um einen zweistufigen, nicht linearen Unterstützungsvektorcomputer (SVM)-Klassifizierer zu erstellen, der für effiziente Vorhersage optimiert ist.

SVMs (Support Vector Machines) sind eine äußerst beliebt und gut erforschte Klasse von überwachten Lernmodellen, die bei linearen und nicht linearen Klassifikationsaufgaben verwendet werden können. In der aktuellen Forschung wurde der Schwerpunkt auf Möglichkeiten zur Optimierung dieser Modelle gelegt, um sie effizient auf größere Trainingssets skalieren zu können. In dieser Implementierung von Microsoft Research ist die Kernelfunktion, die für die Zuordnung von Datenpunkten in den Merkmalsraum verwendet wird, spezifisch darauf ausgelegt, die für das Training notwendige Zeit zu verringern und gleichzeitig die Klassifikationsgenauigkeit im Wesentlichen zu erhalten.

Dieses Modell ist eine überwachte Lernmethode und erfordert daher ein markiertes Dataset, das eine Bezeichnungsspalte enthält.

Nachdem Sie die Modellparameter definiert haben, trainieren Sie es, indem Sie das Modell und ein markiertes Dataset als Eingabe für "Train Model" oder "Tune Model Hyperparameter" bereitstellen. Das trainierte Modell kann anschließend verwendet werden, um Werte für neue Eingaben vorherzusagen.

So konfigurieren Sie Two-Class Lokal Deep Support Vector Machine

  1. Fügen Sie dem Experiment in Studio (klassisch) das Modul "Two-Class Locally-Deep Support Vector Machine " hinzu.

  2. Geben Sie an, wie das Modell trainiert werden soll, indem Sie die Option Create trainer mode (Trainermodus erstellen) aktivieren.

    • Single Parameter (Einzelner Parameter): Wenn Sie wissen, wie Sie das Modell konfigurieren möchten, geben Sie eine bestimmte Menge von Werten als Argumente an.

    • Parameterbereich: Wenn Sie nicht sicher sind, dass sie die besten Parameter haben, finden Sie die optimalen Parameter, indem Sie mehrere Werte angeben und das Parametermodul "Tune Model Hyperparameters " verwenden, um die optimale Konfiguration zu finden. Der Trainer beschreibt mehrere Kombinationen der von Ihnen bereitgestellten Einstellungen und bestimmt die Kombination von Werten, die das beste Modell erzeugen.

  3. Geben Sie für die Tiefe der Struktur die maximale Tiefe der Struktur an, die vom lokalen Deep Kernel Learning SVM (LD-SVM)-Modell erstellt werden kann.

    Die Kosten für das Training mit zunehmender Baumtiefe steigen linear. Wählen Sie daher eine geeignete Tiefe in Abhängigkeit davon, wie viel Zeit Sie aufwenden können, um das Modell zu erstellen.

    Die Trainingszeit sollte sich bei Anstieg der Tiefe um den Faktor 1 grob verdoppeln.

    Die Vorhersagegenauigkeit sollte mit zunehmender Tiefe steigen, einen Spitzenwert erreichen und dann wieder sinken.

  4. Geben Sie für Lambda W die Gewichtung an, die dem Reguläreisierungsbegriff zugewiesen werden soll.

    Die Regularisierung begrenzt Komponenten mit großen Werten in dem trainierten Klassifizierer. Wenn die Anzahl der Stichproben (Samples) angesichts der Anzahl der Merkmale unzureichend ist, können Sie mithilfe der L2-Regularisierung eine Überanpassung vermeiden. Größere Werte für Lambda W bedeuten, dass mehr Betonung auf die Regularisierung der Klassifizierergewichte und weniger auf den Fehler bei der Klassifizierung des Trainingssatzs gelegt wird.

    Wenn der Standardwert (0.1) nicht gut funktioniert, sollten Sie auch {0.0001, 0.001 und 0.01} ausprobieren.

  5. Geben Sie für Lambda Theta an, wie viel Abstand zwischen einer Bereichsgrenze und dem nächstgelegenen Datenpunkt verlassen werden soll.

    Dieses Modell funktioniert mittels Partitionierung des Daten- und Merkmalsraums in Bereiche. Wenn Lambda Theta so minimiert wird, dass Regionengrenzen im trainierten Modell zu nahe an den Schulungsdatenpunkten liegen, kann das Modell aufgrund der Übereinsetzung einen geringen Schulungsfehler, aber einen hohen Testfehler erzielen.

    Um die Anzahl der Parameter zu verringern, die überprüft werden müssen, besteht eine gute Daumenregel darin, Lambda Theta auf ein zehntes des Werts festzulegen, der für Lambda W verwendet wird. Größere Werte bedeuten, dass mehr Betonung darauf gelegt wird, das Überpassen zu verhindern, als bei der Minimierung von Klassifizierungsfehlern im Schulungssatz.

    Wenn der Standardwert (0,01) nicht gut funktioniert, sollten Sie auch {0,0001, 0,001 und 0,1} ausprobieren.

  6. Geben Sie für Lambda Theta Prime einen Wert ein, um die Menge der Krümmung zu steuern, die in Entscheidungsgrenzen im Modell zulässig ist.

    Größere Werte geben dem Modell die Flexibilität, gekrümmte Entscheidungsgrenzen zu lernen, während kleinere Werte die Entscheidungsgrenzen auf mehr ein schrittweises lineares Muster beschränken können.

    Dieser Parameter funktioniert in Verbindung mit dem Sigma-Parameter . Um die Anzahl der Parameter zu verringern, die überprüft werden müssen, ist es eine gute Faustregel, Lambda Theta Prime auf ein Zehntel des Werts von Lambda W festzulegen.

    Wenn der Standardwert (0,01) nicht gut funktioniert, sollten Sie auch {0,0001, 0,001 und 0,1} ausprobieren.

  7. Geben Sie für Sigmoidschärfe einen Wert ein, der für den Skalierungsparameter σ verwendet werden soll.

    Größere Werte bedeuten, dass die Tanh im lokalen Kernel Θ (theta) sättigungt ist, während ein kleinerer Wert einen lineareren Betriebsbereich für theta impliziert. Sie finden die vollständige Optimierungsformel im Abschnitt " Technische Notizen ".

    Wenn der Standardwert (1) nicht gut funktioniert, können Sie auch {0,1, 0,01 und 0,001} ausprobieren.

  8. Geben Sie in der Anzahl der Iterationen an, wie oft der Algorithmus die Klassifiziererparameter mit einer zufälligen Teilmenge von Beispielen aktualisieren sollte.

  9. Wählen Sie für feature normalizer eine Methode aus, die in Normalisierungsfeaturewerten verwendet werden soll. Folgende Methoden werden unterstützt:

    • Binning normalizer: Der binning normalizer erstellt Binning normalizer erstellt Binning Bins von gleich größe, und normalisiert dann jeden Wert in jedem Bin, der durch die Gesamtzahl der Bins unterteilt werden soll.

    • Gaussian normalizer: Der Gaussian normalizer rekaliert die Werte jedes Features, um einen Mittelwert von 0 und eine Varianz von 1 zu haben. Dies erfolgt durch Das Berechnen des Mittelwerts und der Varianz jedes Features. Anschließend wird der Mittelwert für jede Instanz subtrahiert, und das Ergebnis wird durch die Quadratwurzel der Varianz (die Standardabweichung) unterteilt.

    • Min-Max normalizer: Der min-max normalizer rekaliert jedes Feature linear auf das [0,1]-Intervall.

      Die Umskalierung in das Intervall [0,1] erfolgt durch Verschieben der Werte jedes Features, sodass der Minimalwert 0 ist. Anschließend erfolgt eine Division durch den neuen Maximalwert (was die Differenz zwischen dem ursprünglichen Maximal- und Minimalwert ergibt).

    • Normalisieren Sie nicht: Es wird keine Normalisierung ausgeführt.

  10. Geben Sie in Zufallszahl-Seed einen Wert ein, der als Seed verwendet werden soll, wenn Sie die Reproduzierbarkeit über alle Ausführungen sicherstellen möchten.

  11. Wählen Sie die Option "Unbekannte kategorisierte Ebenen zulassen" aus, um eine Gruppe für unbekannte Werte in den Test- oder Überprüfungssätzen zu erstellen.

    Wenn Sie die Option deaktivieren, akzeptiert das Modell nur die Werte, die in den Trainingsdaten enthalten sind. Im ersten Fall ist das Modell für bekannte Werte möglicherweise weniger präzise, ermöglicht jedoch bessere Vorhersagen für neue (unbekannte) Werte.

  12. Verbinden eines markierten Datasets und eines der Schulungsmodule:

    • Wenn Sie Create trainer mode (Trainermodus erstellen) auf Single Parameter (Einzelner Parameter) festlegen, müssen Sie das Modul Train Model (Trainieren des Modells) verwenden.

    • Wenn Sie Create trainer mode (Trainermodus erstellen) auf Parameter Range (Parameterbereich) festlegen, verwenden Sie das Modul Tune Model Hyperparameters (Abstimmen der Hyperparameter des Modells).

    Hinweis

    Wenn Sie einen Parameterbereich an Train Model übergeben, wird nur der erste Wert in der Parameterbereichsliste verwendet.

    Wenn Sie eine einzelne Reihe bestimmter Parameterwerte an das Modul Tune Model Hyperparameters übergeben und ein Bereich von Einstellungen für jeden Parameter erwartet wird, werden die Werte ignoriert und stattdessen die Standardwerte für den Learner verwendet.

    Wenn Sie die Option Parameter Range (Parameterbereich) auswählen und einen einzelnen Wert für einen beliebigen Parameter eingeben, wird dieser angegebene einzelne Wert während des gesamten Löschvorgangs verwendet, auch wenn andere Parameter in einem Wertebereich geändert werden.

  13. Führen Sie das Experiment aus.

Ergebnisse

Nach Abschluss des Trainings:

  • Um eine Zusammenfassung der Parameter des Modells anzuzeigen, klicken Sie mit der rechten Maustaste auf die Ausgabe des Moduls "Train Model " oder "Modell hyperparameters optimieren ", und wählen Sie " Visualisieren" aus.

  • Wenn Sie ein Snapshpt des trainierten Modells speichern möchten, klicken Sie mit der rechten Maustaste auf die Ausgabe des trainierten Modells , und wählen Sie "Als trainiertes Modell speichern" aus. Dieses Modell wird bei nachfolgenden Ausführungen desselben Experiments nicht aktualisiert.

  • Um eine Kreuzüberprüfung für einen beschrifteten Datensatz durchzuführen, verbinden Sie das untrainierte Modell mit dem Querüberprüfungsmodell.

Technische Hinweise

Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.

Verwendungstipps

Dieser LD-SVM-Klassifizierer eignet sich am besten unter den folgenden Bedingungen:

  • Sie haben ein binäres Klassifikationsproblem, oder Sie können Ihr Problem auf eine binäre Klassifikationsaufgabe reduzieren.

  • Sie haben einen linearen Klassifizierer ausprobiert, aber dieser hat keine befriedigenden Ergebnisse erbracht.

  • Sie haben einen nicht linearen SVM oder anderen Klassifizierer ausprobiert, eine gute Klassifikationsgenauigkeit erzielt, aber das Training des Modells hat zu lange gedauert.

  • Sie können es sich leisten, auf Kosten der Vorhersagegenauigkeit die Trainingsdauer zu reduzieren.

LD-SVM-Modelle sind eine gute Wahl, wenn Ihre Daten kompliziert genug sind, so dass mit linearen Modellen (z. B. logistische Regression) keine zufriedenstellenden Ergebnisse erbracht werden können. LD-SVM-Modelle sind auch klein genug für die Verwendung in Szenarien mit mobilen Geräten oder in anderen Szenarien, in denen komplexe Modelle (z. B. neuronale Netzwerke) zu groß sind, um effizient genutzt zu werden.

Dieses Modell sollte dagegen nicht verwendet werden, wenn die Modellgröße keine Rolle spielt, oder aufgrund der Einfachheit oder der Schnelligkeit der Vorhersage ein lineares Modell erforderlich ist. Es gibt auch keinen Punkt, um sich auf LD-SVM zu ändern, wenn lineare Klassifizierer bereits gute Ergebnisse geben oder wenn Sie hohe Klassifizierungsgenauigkeit erhalten können, indem Sie kleine Mengen nicht linearer Funktionalität hinzufügen.

Details zur Implementierung

Das LD-SVM-Modell wurde von Microsoft Research im Rahmen der fortlaufenden Bemühungen zur Beschleunigung von nicht linearen SVM-Vorhersagen entwickelt. Hierbei war die Arbeit von Gonen und Alpaydin (2008) zur "Localized Multiple Kernel Learning"-Methode besonders nützlich. Die Verwendung einer lokalen Kernelfunktion ermöglicht, dass das Modell beliebige lokale Merkmalseinbettungen lernen kann, einschließlich hochdimensionaler Merkmale, Merkmale mit geringer Dichte sowie Merkmale mit großer Berechnungstiefe, die Nichtlinearitäten in das Modell einführen.

LD-SVM ist aus verschiedenen Gründen schneller als die meisten anderen Klassifizierer:

  • Das Modell lernt Entscheidungsgrenzen, die lokal linear sind. Aus diesem Grund kann ein Testpunkt effizient klassifiziert werden, indem ein Test gegen seine lokale Entscheidungsgrenze durchgeführt wird, statt Tests gegen alle Entscheidungsgrenzen für den gesamten Merkmalsraum durchzuführen.

  • Das Modell verwendet effiziente, primärbasierte Routinen zur Optimierung des Raums des Strukturbaums der lokalen Merkmalseinbettungen, die auf große Trainingssets mit mehr als einer Million Trainingspunkten skaliert werden.

  • Die Kosten für den Test eines Punkts gegen seine lokale Entscheidungsgrenze verhalten sich logarithmisch zur Anzahl der Trainingspunkte.

Als Folge dieser Optimierungen ist das Training des LD-SVM-Modells exponentiell schneller als das Training herkömmlicher SVM-Modelle.

Optimierungsformel

optimization formula

Research

Weitere Informationen zum Algorithmus und der zugrunde liegenden Forschung finden Sie unter Local Deep Kernel Learning für effiziente nicht lineare SVM-Vorhersage.

Modulparameter

Name Range type Standard BESCHREIBUNG
Create Trainer Mode List Lernmodul-Parameteroption Einzelner Parameter Erweiterte Lernmoduloptionen:

1. Erstellen eines Lerners mithilfe eines einzelnen Parameters
2. Erstellen eines Lerners mithilfe eines Parameterbereichs
Depth of the tree >=1 Integer 3 Die Tiefe des lokal tiefen SVM-Baums.
Lambda W >=1.401298E-45 Float 0,1 Regularisierungsgewichtung für den Klassifiziererparameter Lambda W.
Lambda Theta >=1.401298E-45 Float 0,01 Regularisierungsgewichtung für den Klassifiziererparameter Lambda Theta.
Lambda Theta Prime >=1.401298E-45 Float 0,01 Regularisierungsgewichtung für den Klassifiziererparameter Lambda Theta Prime.
Sigmoid Sharpness >=1.401298E-45 Float 1,0 Die Sigmoid-Schärfe.
Depth of the tree [1;int.MaxValue] ParameterRangeSettings 1; 3; 5; 7 Der Bereich für die Tiefe des lokal tiefen SVM-Baums.
Lambda W [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Der Bereich für die Regularisierungsgewichtung für den Klassifiziererparameter Lambda W.
Lambda Theta [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Der Bereich für die Regularisierungsgewichtung für den Klassifiziererparameter Lambda Theta.
Lambda Theta Prime [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Der Bereich für die Regularisierungsgewichtung für den Klassifiziererparameter Lambda Theta Prime.
Sigmoid Sharpness [1.401298E-45;3.40282347E+38] ParameterRangeSettings 1,0; 0,1; 0,01 Der Bereich für die Sigmoid-Schärfe.
Feature Normalizer List Normalisierungstyp Min-Max normalizer Der Typ der auf Lernbeispiele anzuwendenden Normalisierung.
Number of iterations >=1 Integer 15000 Die Anzahl der Lerniterationen.
Number of iterations [1;int.MaxValue] ParameterRangeSettings 10000; 15000; 20000 Der Bereich für die Anzahl der Lerniterationen.
Zufallszahlensamen Any Integer Der Ausgangswert für den Zufallszahlengenerator, der vom Modell verwendet wird. Geben Sie keinen Wert an, um den Standardwert zu verwenden.
Allow unknown categorical levels Any Boolean True Bei "True" wird eine zusätzliche Ebene für jede Kategoriespalte erstellt. Alle Ebenen im Testdataset, die nicht im Trainingsdataset zur Verfügung stehen, werden dieser zusätzlichen Ebene zugeordnet.

Output

Name type BESCHREIBUNG
Untrainiertes Modell ILearner-Schnittstelle Ein untrainiertes binäres Klassifizierungsmodell.

Siehe auch

Klassifizierung
Modulliste von A bis Z