Condividi tramite


Two-Class Locally Deep Support Vector Machine

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Crea un modello di classificazione binaria usando l'algoritmo di tipo macchine a vettori di supporto (SVM, Support Vector Machine) a livello locale

Categoria: Machine Learning/Inizializza modello/classificazione

Nota

Si applica a: solo Machine Learning Studio (versione classica)

I moduli di trascinamento della selezione simili sono disponibili in Azure Machine Learning finestra di progettazione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Two-Class Deep Support Vector Machine in Machine Learning Studio (versione classica) per creare un classificatore SVM (Two-Class, Non Linear Support Vector Machine) ottimizzato per una stima efficiente.

Le macchine a vettori di supporto sono una classe molto diffusa e ben studiata di modelli di apprendimento supervisionati, che possono essere usati nelle attività di classificazione lineare e non lineare. La ricerca recente si è occupata principalmente dei modi per ottimizzare questi modelli per poter passare in modo efficiente a training set più grandi. In questa implementazione di Microsoft Research la funzione kernel usata per il mapping dei punti dati allo spazio di funzioni è stata progettata per ridurre il tempo necessario per il training, conservando tuttavia la maggior precisione della classificazione possibile.

Questo modello è un metodo di apprendimento supervisionato e quindi richiede un set di dati con tag, che include una colonna etichetta.

Dopo aver definito i parametri del modello, eseguirne il training specificando il modello e un set di dati con tag come input per eseguire il training del modello o ottimizzare gli iperparametri del modello. Il modello sottoposto a training può quindi essere usato per stimare i valori per i nuovi input.

Come configurare Two-Class macchina a vettori di supporto avanzato locale

  1. Aggiungere il modulo Two-Class Locally-Deep Support Vector Machine all'esperimento in Studio (versione classica).

  2. Specificare la modalità di training del modello impostando l'opzione Crea modalità di training .

    • Singolo parametro: se si sa come configurare il modello, specificare un set specifico di valori come argomenti.

    • Intervallo di parametri: se non si è certi dei parametri migliori, è possibile trovare i parametri ottimali specificando più valori e usando il modulo Tune Model Hyperparameters per trovare la configurazione ottimale. Il formatore esegue l'iterazione su più combinazioni delle impostazioni fornite e determina la combinazione di valori che producono il modello migliore.

  3. Per Profondità dell'albero specificare la profondità massima dell'albero che può essere creata dal modello SVM (LD-SVM) di Deep Kernel Learning locale.

    Il costo del training aumenta in modo lineare con la profondità dell'albero. Scegliere quindi una profondità appropriata a seconda del tempo che si è disposti a impiegare per la compilazione del modello.

    I tempi di training devono essere più o meno raddoppiati perché la profondità viene aumentata di uno.

    La precisione della stima deve aumentare, raggiungere un picco e quindi diminuire con l'aumentare della profondità.

  4. Per Lambda W specificare il peso che deve essere assegnato al termine di regolarizzazione.

    La regolarizzazione limita i componenti di valore elevato nel classificatore con training. Quando il numero di campioni è insufficiente, dato il numero di funzioni, è possibile usare la regolarizzazione di tipo L2 per evitare l'overfitting. I valori più grandi per Lambda W indicano che viene posto più enfasi sulla regolarizzazione dei pesi del classificatore e meno sull'errore di classificazione del set di training.

    Se il valore predefinito (0,1) non funziona correttamente, è consigliabile usare anche {0,0001, 0,001 e 0,01}.

  5. Per Lambda Theta specificare la quantità di spazio rimanente tra un limite di area e il punto dati più vicino.

    Il funzionamento di questo modello si basa sul partizionamento dello spazio dati e dello spazio di funzioni in aree. Quando Lambda Theta viene ridotto al minimo in modo che i limiti di area nel modello sottoposto a training siano troppo vicini ai punti dati di training, il modello potrebbe generare un errore di training basso, ma un errore di test elevato, a causa dell'overfitting.

    Per ridurre il numero di parametri che devono essere convalidati, è consigliabile impostare Lambda Theta su un decimo del valore usato per Lambda W. I valori più grandi indicano che viene posta più attenzione alla prevenzione dell'overfitting rispetto alla riduzione degli errori di classificazione nel set di training.

    Se il valore predefinito (0,01) non funziona correttamente, è consigliabile provare anche {0,0001, 0,001 e 0,1}.

  6. Per Lambda Theta Prime, digitare un valore per controllare la quantità di curvatura consentita nei limiti decisionali nel modello.

    I valori più grandi offrono al modello la flessibilità necessaria per apprendere i limiti delle decisioni curve, mentre i valori più piccoli potrebbero vincolare i limiti decisionali a un modello lineare passo per passo.

    Questo parametro funziona insieme al parametro Sigma . Per ridurre il numero di parametri da convalidare, in linea generale è necessario impostare Lambda Theta Prime su un decimo del valore di Lambda W.

    Se il valore predefinito (0,01) non funziona correttamente, è consigliabile provare a usare anche {0,0001, 0,001 e 0,1}.

  7. Per la nitidezza Sigmoid, digitare un valore da usare per il parametro di ridimensionamento σ.

    I valori più grandi indicano che il tanh nel kernel locale Θ (theta) è saturo, mentre un valore più piccolo implica un intervallo operativo più lineare per theta. È possibile trovare la formula di ottimizzazione completa nella sezione Note tecniche .

    Se il valore predefinito (1) non funziona correttamente, è possibile provare a usare anche {0,1, 0,01 e 0,001}.

  8. In Numero di iterazioni indicare quante volte l'algoritmo deve aggiornare i parametri del classificatore con un subset casuale di esempi.

  9. Per Normalizzazione funzionalità scegliere un metodo da usare per la normalizzazione dei valori delle funzionalità. Sono supportati i metodi seguenti:

    • Normalizzatore binning: il normalizzatore binning crea contenitori di dimensioni uguali e quindi normalizza ogni valore in ogni bin da dividere per il numero totale di bin.

    • Normalizzatore gaussiano: il normalizzatore gaussiano ridimensiona i valori di ogni caratteristica per avere una media di 0 e una varianza pari a 1. Questa operazione viene eseguita calcolando la media e la varianza di ogni funzionalità. Quindi, per ogni istanza, il valore medio viene sottratto e il risultato diviso per la radice quadrata della varianza (deviazione standard).

    • Normalizzatore min-Max: il normalizzatore min-max ridimensiona in modo lineare ogni funzionalità all'intervallo [0,1].

      Questa operazione viene eseguita scalando i valori di ogni funzione in modo che il valore minimo sia 0 e dividendo per il nuovo valore massimo, che è la differenza tra i valori massimo e minimo originali.

    • Non normalizzare: non viene eseguita alcuna normalizzazione.

  10. In Valore di inizializzazione numero casuale digitare un valore da usare come valore di inizializzazione se si vuole garantire la riproducibilità tra le esecuzioni.

  11. Selezionare l'opzione Consenti livelli categorici sconosciuti per creare un gruppo per i valori sconosciuti nei set di test o di convalida.

    Se viene deselezionata, il modello può accettare solo i valori contenuti nei dati di training. Nel primo caso, il modello può essere meno preciso sui valori noti, ma può fornire stime migliori per i valori nuovi (sconosciuti).

  12. Connessione un set di dati con tag e uno dei moduli di training:

    Nota

    Se si passa un intervallo di parametri a Train Model, viene usato solo il primo valore nell'elenco di intervalli di parametri.

    Se si passa un singolo set di valori di parametro al modulo Tune Model Hyperparameters , quando prevede un intervallo di impostazioni per ogni parametro, ignora i valori e usa i valori predefiniti per lo strumento di apprendimento.

    Se si seleziona l'opzione Intervallo di parametri e si immette un singolo valore per qualsiasi parametro, tale singolo valore specificato viene usato durante lo sweep, anche se altri parametri cambiano in un intervallo di valori.

  13. Eseguire l'esperimento.

Risultati

Al termine del training:

  • Per visualizzare un riepilogo dei parametri del modello, fare clic con il pulsante destro del mouse sull'output del modulo Train Model (Training modello ) o Tune Model Hyperparameters (Ottimizza iperparametri modello ) e selezionare Visualize (Visualizza).

  • Per salvare uno snapshpt del modello sottoposto a training, fare clic con il pulsante destro del mouse sull'output del modello sottoposto a training e scegliere Salva con training modello. Questo modello non viene aggiornato nelle esecuzioni successive dello stesso esperimento.

  • Per eseguire la convalida incrociata su un set di dati etichettato, connettere il modello non sottoposto a training al modello di convalida incrociata.

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Suggerimenti per l'uso

Questo classificatore LD-SVM è particolarmente utile nelle seguenti condizioni:

  • Si verifica un problema di classificazione binaria o è possibile ridurre il problema a un'attività di classificazione binaria.

  • Si è provato a usare un classificatore lineare che però non ha raggiunto prestazioni elevate.

  • Si è provato a usare una macchina SVM non lineare o un altro classificatore e si è ottenuta una valida precisione della classificazione, ma il training del modello ha richiesto troppo tempo.

  • Si è disposti a sacrificare la precisione della stima per ridurre i tempi di training.

I modelli LD-SVM rappresentano una buona soluzione quando la complessità dei dati è tale da rendere insoddisfacenti le prestazioni dei modelli lineari, come la regressione logistica. I modelli LD-SVM hanno dimensioni sufficientemente ridotte da consentirne l'uso in dispositivi mobili o in altri scenari in cui i modelli complessi come le reti neurali sono troppo grandi per essere utilizzati in modo efficiente.

Viceversa, è consigliabile non usare questo modello se non si è interessati alle dimensioni o se è necessario un modello lineare per la semplicità o la velocità di stima. Non c'è anche alcun punto di passare a LD-SVM se i classificatori lineari stanno già dando buoni risultati o se è possibile ottenere un'accuratezza di classificazione elevata aggiungendo piccole quantità di non linearità.

Dettagli dell'implementazione

Il modello LD-SVM è stato sviluppato da Microsoft Research nell'ambito delle continue attività necessarie per velocizzare la stima SVM non lineare. Il lavoro di Gonen e Alpaydin (2008) sul metodo di apprendimento kernel multiplo localizzato è stato particolarmente importante. L'uso di una funzione kernel locale consente al modello di apprendere gli incorporamenti di funzioni locali arbitrarie, tra cui funzionalità con attività di calcolo avanzate, di tipo sparse e a elevata dimensionalità, che introducono le non linearità nel modello.

Il modello LD-SVM è più veloce della maggior parte degli altri classificatori per diversi motivi:

  • Il modello apprende i limiti di decisione localmente lineari. Un punto di test può quindi essere classificato in modo efficiente testandolo rispetto al limite di decisione locale invece che rispetto all'intero set di limiti di decisione in tutto lo spazio di funzioni.

  • Il modello usa efficienti routine basate su elementi originari per ottimizzare lo spazio degli incorporamenti di funzioni con struttura ad albero che passano a training set di grandi dimensioni con più di mezzo milione di punti di training.

  • Il costo del test di un punto rispetto al limite di decisione locale è logaritmico nel numero di punti di training.

Come risultato di queste ottimizzazioni, il training del modello LD-SVM è esponenzialmente più veloce del training dei tradizionali modelli SVM.

Formula di ottimizzazione

optimization formula

Ricerca

Per altre informazioni sull'algoritmo e sulla ricerca sottostante, vedere Local Deep Kernel Learning for Efficient Non-linear SVM Prediction .For more information about the algorithm and underlying research, see Local Deep Kernel Learning for Efficient Non-linear SVM Prediction.

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Create trainer mode Elenco Opzione parametro strumento di apprendimento Parametro singolo Opzioni avanzate dello strumento di apprendimento:

1. Creare lo learner usando un singolo parametro
2. Creare un learner usando un intervallo di parametri
Depth of the tree >=1 Integer 3 Profondità dell'albero SVM avanzato a livello locale.
Lambda W >=1.401298E-45 Float 0,1 Peso regolarizzazione per il parametro del classificatore Lambda W.
Lambda Theta >=1.401298E-45 Float 0.01 Peso regolarizzazione per il parametro del classificatore Lambda Theta.
Lambda Theta Prime >=1.401298E-45 Float 0.01 Peso regolarizzazione per il parametro del classificatore Lambda Theta Prime.
Sigmoid sharpness >=1.401298E-45 Float 1.0 Nitidezza del sigmoide.
Depth of the tree [1;int.MaxValue] ParameterRangeSettings 1; 3; 5; 7 Intervallo per la profondità dell'albero SVM avanzato a livello locale.
Lambda W [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervallo per il peso regolarizzazione per il parametro del classificatore Lambda W.
Lambda Theta [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervallo per il peso regolarizzazione per il parametro del classificatore Lambda Theta.
Lambda Theta Prime [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervallo per il peso regolarizzazione per il parametro del classificatore Lambda Theta Prime.
Sigmoid sharpness [1,401298E-45;3,40282347E+38] ParameterRangeSettings 1.0; 0.1; 0.01 Intervallo per la nitidezza del sigmoide.
Feature normalizer Elenco Normalizer type Min-Max normalizer Tipo di normalizzazione da applicare agli esempi di apprendimento.
Number of iterations >=1 Integer 15000 Numero di iterazioni di apprendimento.
Number of iterations [1;int.MaxValue] ParameterRangeSettings 10000; 15000; 20000 Intervallo per il numero di iterazioni di apprendimento.
Random number seed Qualsiasi Integer Valore di inizializzazione per il generatore di numeri casuali usato dal modello. Lasciare vuoto per impostazione predefinita.
Allow unknown categorical levels Qualsiasi Boolean True Se True, crea un livello aggiuntivo per ogni colonna categorica. Tutti i livelli del set di dati di test non disponibili nel training set verranno mappati a questo livello aggiuntivo.

Output

Nome Tipo Descrizione
Untrained model ILearner interface Modello di classificazione binaria senza training.

Vedi anche

Classificazione
Elenco moduli A-Z