Delen via


Two-Class lokaal deep support vector machine

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Hiermee maakt u een binair classificatiemodel met behulp van het lokaal deep Support Vector Machine-algoritme

Categorie: Machine Learning/Model initialiseren/classificatie

Notitie

Van toepassing op: alleen Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Two-Class Lokaal Deep Support Vector Machine in Machine Learning Studio (klassiek) gebruikt om een SVM-classificatie (non-linear support vector machines) te maken die is geoptimaliseerd voor efficiënte voorspellingen.

Ondersteuningsvectormachines (SVM's) zijn een zeer populaire en goed onderzochte klasse van leermodellen onder supervisie, die kan worden gebruikt in lineaire en niet-lineaire classificatietaken. Recent onderzoek heeft zich gericht op manieren om deze modellen te optimaliseren om efficiënt te schalen naar grotere trainingssets. In deze implementatie van Microsoft Research is de kernelfunctie die wordt gebruikt voor het toewijzen van gegevenspunten aan functieruimte speciaal ontworpen om de benodigde tijd voor training te verminderen en tegelijkertijd de meeste nauwkeurigheid van de classificatie te behouden.

Dit model is een leermethode onder supervisie en vereist daarom een getagde gegevensset, die een labelkolom bevat.

Nadat u de modelparameters hebt gedefinieerd, traint u dit door het model en een getagde gegevensset op te geven als invoer voor Train Model of Tune Model Hyperparameters. Het getrainde model kan vervolgens worden gebruikt om waarden voor nieuwe invoer te voorspellen.

Two-Class Lokaal Deep Support Vector Machine configureren

  1. Voeg de module Two-Class Locally-Deep Support Vector Machine toe aan uw experiment in Studio (klassiek).

  2. Geef op hoe u het model wilt trainen door de optie Trainer maken in te stellen.

    • Eén parameter: Als u weet hoe u het model wilt configureren, geeft u een specifieke set waarden op als argumenten.

    • Parameterbereik: Als u niet zeker bent van de beste parameters, kunt u de optimale parameters vinden door meerdere waarden op te geven en de module Tune Model Hyperparameters te gebruiken om de optimale configuratie te vinden. De trainer doorloopt meerdere combinaties van de door u verstrekte instellingen en bepaalt de combinatie van waarden die het beste model produceren.

  3. Geef voor Diepte van de boom de maximale diepte op van de boom die kan worden gemaakt door het lokale LD-SVM-model (Deep Kernel Learning SVM).

    De kosten van training nemen lineair toe met structuurdiepte; Kies daarom een geschikte diepte, afhankelijk van hoeveel tijd u kunt besteden aan het bouwen van het model.

    De trainingstijd moet ongeveer verdubbelen naarmate de diepte met één wordt verhoogd.

    Voorspellingsnauwkeurigheid moet toenemen, een piek bereiken en vervolgens afnemen met toenemende diepte.

  4. Geef voor Lambda W het gewicht op dat moet worden gegeven aan de regularisatietermijn.

    Regularisatie beperkt grote waardeonderdelen in de getrainde classificatie. Wanneer het aantal steekproeven onvoldoende is gezien het aantal functies, kunt u L2-regularisatie gebruiken om overfitting te voorkomen. Grotere waarden voor Lambda W betekenen dat er meer nadruk wordt gelegd op het regulariseren van de classificatiegewichten en minder op de classificatiefout in de trainingsset.

    Als de standaardwaarde (0.1) niet goed werkt, moet u ook {0.0001, 0.001 en 0.01} proberen.

  5. Geef voor Lambda Theta op hoeveel ruimte er moet worden overgelaten tussen een regiogrens en het dichtstbijzijnde gegevenspunt.

    Dit model werkt door de gegevensruimte en functieruimte te partitioneren in regio's. Wanneer Lambda Theta zodanig wordt geminimaliseerd dat regiogrenzen in het getrainde model te dicht bij de trainingsgegevenspunten liggen, kan het model een lage trainingsfout opleveren, maar een hoge testfout vanwege overfitting.

    Om het aantal parameters te verminderen dat moet worden gevalideerd, is het een goede vuistregel om Lambda Theta in te stellen op één tiende van de waarde die wordt gebruikt voor Lambda W. Grotere waarden betekenen dat er meer nadruk wordt gelegd op het voorkomen van overfitting dan op het minimaliseren van classificatiefouten in de trainingsset.

    Als de standaardwaarde (0,01) niet goed werkt, moet u ook {0.0001, 0.001 en 0.1} proberen.

  6. Voor Lambda Theta Prime typt u een waarde om de hoeveelheid kromming te bepalen die is toegestaan in beslissingsgrenzen in het model.

    Grotere waarden geven het model de flexibiliteit om gekromde beslissingsgrenzen te leren, terwijl kleinere waarden de beslissingsgrenzen kunnen beperken tot een stapsgewijs lineair patroon.

    Deze parameter werkt in combinatie met de Sigma-parameter . Om het aantal parameters te verminderen dat moet worden gevalideerd, is het een goede vuistregel om Lambda Theta Prime in te stellen op één tiende van de waarde van Lambda W.

    Als de standaardwaarde (0,01) niet goed werkt, moet u ook {0.0001, 0.001 en 0.1,} proberen.

  7. Voor Sigmoid-scherpte typt u een waarde die u wilt gebruiken voor de schaalparameter σ.

    Grotere waarden betekenen dat de tanh in de lokale kernel Θ (theta) verzadiging heeft, terwijl een kleinere waarde een meer lineair operationeel bereik voor theta impliceert. U vindt de volledige optimalisatieformule in de sectie Technische notities .

    Als de standaardwaarde (1) niet goed werkt, kunt u ook {0.1, 0.01, 0.001} proberen.

  8. Geef in het aantal iteraties aan hoe vaak het algoritme de classificatieparameters moet bijwerken met een willekeurige subset van voorbeelden.

  9. Kies voor functienormisering een methode die u wilt gebruiken bij het normaliseren van functiewaarden. De volgende methoden worden ondersteund:

    • Binning normalizer: De binning normalizer maakt bins van gelijke grootte en normaliseert vervolgens elke waarde in elke bin die moet worden gedeeld door het totale aantal bins.

    • Gaussian normalizer: De Gaussian normalizer herschaalt de waarden van elke functie om een gemiddelde van 0 en een variantie van 1 te hebben. Dit wordt gedaan door het gemiddelde en de variantie van elke functie te berekenen. Vervolgens wordt voor elk exemplaar de gemiddelde waarde afgetrokken en wordt het resultaat gedeeld door de vierkantswortel van de variantie (de standaarddeviatie).

    • Min-Max normalizer: Met de min-max normalizer wordt elke functie lineair opnieuw geschaald naar het interval [0,1]..

      Het aanpassen van het formaat van het interval [0,1] wordt uitgevoerd door de waarden van elke functie te verschuiven, zodat de minimale waarde 0 is en vervolgens wordt gedeeld door de nieuwe maximale waarde (dit is het verschil tussen de oorspronkelijke maximum- en minimale waarden).

    • Normaliseren niet: er wordt geen normalisatie uitgevoerd.

  10. Typ in willekeurig getalzaad een waarde die moet worden gebruikt als een seed als u de reproduceerbaarheid tussen uitvoeringen wilt garanderen.

  11. Selecteer de optie Onbekende categorische niveaus toestaan om een groep te maken voor onbekende waarden in de test- of validatiesets.

    Als u de selectie opheffen, kan het model alleen de waarden accepteren die zijn opgenomen in de trainingsgegevens. In het eerste geval is het model mogelijk minder nauwkeurig voor bekende waarden, maar het kan betere voorspellingen bieden voor nieuwe (onbekende) waarden.

  12. Verbinding maken een gelabelde gegevensset en een van de trainingsmodules:

    • Als u de modus Trainer maken instelt op Single Parameter, gebruikt u de module Train Model .

    • Als u de modus Trainer maken instelt op ParameterBereik, gebruikt u de module Tune Model Hyperparameters .

    Notitie

    Als u een parameterbereik doorgeeft aan Train Model, wordt alleen de eerste waarde in de lijst met parameterbereiken gebruikt.

    Als u één set parameterwaarden doorgeeft aan de module Tune Model Hyperparameters , worden de waarden genegeerd en worden de standaardwaarden voor de cursist gebruikt wanneer er een reeks instellingen voor elke parameter wordt verwacht.

    Als u de optie Parameterbereik selecteert en één waarde voor een parameter invoert, wordt die ene waarde die u hebt opgegeven tijdens de opruimen gebruikt, zelfs als andere parameters in een bereik met waarden veranderen.

  13. Voer het experiment uit.

Resultaten

Nadat de training is voltooid:

  • Als u een samenvatting van de parameters van het model wilt bekijken, klikt u met de rechtermuisknop op de uitvoer van de module Train Model of Tune Model Hyperparameters en selecteert u Visualize.

  • Als u een module van het getrainde model wilt opslaan, klikt u met de rechtermuisknop op de uitvoer van het getrainde model en selecteert u Opslaan als getraind model. Dit model wordt niet bijgewerkt bij opeenvolgende uitvoeringen van hetzelfde experiment.

  • Als u kruisvalidatie wilt uitvoeren op basis van een gelabelde gegevensset, verbindt u het niet-getrainde model met kruisvalidatiemodel.

Technische opmerkingen

Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.

Tips voor gebruik

Deze LD-SVM-classificatie is het handigst onder de volgende voorwaarden:

  • U hebt een probleem met binaire classificatie of u kunt het probleem beperken tot een binaire classificatietaak.

  • U hebt een lineaire classificatie geprobeerd, maar deze werkte niet goed.

  • U hebt een niet-lineaire SVM of andere classificatie geprobeerd en hebt een goede classificatienauwkeurigheid gekregen, maar het duurde te lang om het model te trainen.

  • U kunt het zich veroorloven om voorspellingsnauwkeurigheid op te offeren om de trainingstijd te verminderen.

LD-SVM-modellen zijn een goede keuze wanneer uw gegevens ingewikkeld genoeg zijn dat lineaire modellen (zoals logistieke regressie) slecht presteren. LD-SVM-modellen zijn ook klein genoeg om te worden gebruikt in mobiele apparaten of andere scenario's waarbij complexe modellen (zoals neurale netwerken) te groot zijn om efficiënt te worden verbruikt.

Dit model mag echter niet worden gebruikt als u niet om de modelgrootte geeft of als een lineair model vereist is voor eenvoud of voorspellingssnelheid. Er is ook geen punt om te veranderen in LD-SVM als lineaire classificaties al goede resultaten opleveren of als u een hoge classificatienauwkeurigheid kunt krijgen door kleine hoeveelheden niet-lineariteit toe te voegen.

Implementatiegegevens

Het LD-SVM-model is ontwikkeld door Microsoft Research als onderdeel van lopende inspanningen om niet-lineaire SVM-voorspellingen te versnellen. Het werk van Gonen en Alpaydin (2008) op de gelokaliseerde methode voor meerdere kernel learning was bijzonder waardevol. Met behulp van een lokale kernelfunctie kan het model willekeurige lokale functie-insluitingen leren, waaronder high-dimensionale, sparse en rekenkundige diepe functies die niet-lineariteiten in het model introduceren.

LD-SVM is om verschillende redenen sneller dan de meeste andere classificaties:

  • Het model leert beslissingsgrenzen die lokaal lineair zijn. Daarom kan een testpunt efficiënt worden geclassificeerd door het te testen op basis van de lokale beslissingsgrens, in plaats van te testen op de hele set beslissingsgrenzen over de functieruimte.

  • Het model maakt gebruik van efficiënte routines op basis van primal om de ruimte van structuurgestructureerde lokale functie-insluitingen te optimaliseren die worden geschaald naar grote trainingssets met meer dan een half miljoen trainingspunten.

  • De kosten voor het testen van een punt tegen de lokale beslissingsgrens zijn logaritmisch in het aantal trainingspunten.

Als gevolg van deze optimalisaties is het trainen van het LD-SVM-model exponentieel sneller dan het trainen van traditionele SVM-modellen.

Optimalisatieformule

optimization formula

Onderzoek

Zie Local Deep Kernel Learning voor efficiënte niet-lineaire SVM-voorspellingen voor meer informatie over het algoritme en het onderliggende onderzoek.

Moduleparameters

Name Bereik Type Standaard Beschrijving
Trainermodus maken Lijst De parameteroptie Learner Eén parameter Geavanceerde opties voor cursisten:

1. Een cursist maken met één parameter
2. Een cursist maken met behulp van een parameterbereik
Diepte van de boom >=1 Geheel getal 3 De diepte van de lokaal diepe SVM-boom.
Lambda W >=1,401298E-45 Float 0,1 Regularisatiegewicht voor de classificatieparameter Lambda W.
Lambda Theta >=1,401298E-45 Float 0,01 Regularisatiegewicht voor de classificatieparameter Lambda Theta.
Lambda Theta Prime >=1,401298E-45 Float 0,01 Regularisatiegewicht voor de classificatieparameter Lambda Theta prime.
Sigmoïde scherpte >=1,401298E-45 Float 1.0 De sigmoïde scherpte.
Diepte van de boom [1;int. MaxValue] ParameterRangeSettings 1; 3; 5; 7 Het bereik voor de diepte van de lokaal diepe SVM-boom.
Lambda W [1.401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Bereik voor het regularisatiegewicht voor de classificatieparameter Lambda W.
Lambda Theta [1.401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Bereik voor het regularisatiegewicht voor de classificatieparameter Lambda Theta.
Lambda Theta Prime [1.401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Bereik voor het regularisatiegewicht voor de classificatieparameter Lambda Theta prime'.
Sigmoïde scherpte [1.401298E-45;3,40282347E+38] ParameterRangeSettings 1.0; 0.1; 0.01 Het bereik voor de sigmoïde scherpte.
Functienormizer Lijst Normalizertype Min-Max normalizer Het type normalisatie dat moet worden toegepast op leervoorbeelden.
Aantal iteraties >=1 Geheel getal 15.000 Aantal iteraties.
Aantal iteraties [1;int. MaxValue] ParameterRangeSettings 10000; 15000; 20000 Het bereik voor het aantal leeriteraties.
Seed van willekeurig getal Alle Geheel getal De seed voor de generator voor willekeurige getallen die door het model wordt gebruikt. Laat deze leeg voor de standaardwaarde.
Onbekende categorische niveaus toestaan Alle Boolean-waarde True Als Waar is, maakt u een extra niveau voor elke categorische kolom. Alle niveaus in de testgegevensset die niet beschikbaar zijn in de trainingsgegevensset, worden toegewezen aan dit extra niveau.

Uitvoer

Naam Type Beschrijving
Niet-getraind model ILearner-interface Een niet-getraind binair classificatiemodel.

Zie ook

Classificatie
A-Z-modulelijst