LbfgsMaximumEntropyMulticlassTrainer Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe IEstimator<TTransformer> per stimare una destinazione usando un classificatore multiclasse di entropia massimo sottoposto a training con il metodo L-BFGS.
public sealed class LbfgsMaximumEntropyMulticlassTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsMaximumEntropyMulticlassTrainer.Options,Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.MaximumEntropyModelParameters>,Microsoft.ML.Trainers.MaximumEntropyModelParameters>
type LbfgsMaximumEntropyMulticlassTrainer = class
inherit LbfgsTrainerBase<LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer<MaximumEntropyModelParameters>, MaximumEntropyModelParameters>
Public NotInheritable Class LbfgsMaximumEntropyMulticlassTrainer
Inherits LbfgsTrainerBase(Of LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer(Of MaximumEntropyModelParameters), MaximumEntropyModelParameters)
- Ereditarietà
Commenti
Per creare questo formatore, usare LbfgsMaximumEntropy o LbfgsMaximumEntropy(Options).
Colonne di input e output
I dati della colonna dell'etichetta di input devono essere di tipo chiave e la colonna della funzionalità deve essere un vettore di dimensioni note di Single.
Questo formatore restituisce le colonne seguenti:
| Nome della colonna di output | Tipo di colonna | Descrizione |
|---|---|---|
Score |
Vettore di Single | Punteggi di tutte le classi. Un valore più alto indica una maggiore probabilità di rientrare nella classe associata. Se l'elemento i-th ha il valore più grande, l'indice delle etichette stimato sarà i. Si noti che i è un indice in base zero. |
PredictedLabel |
chiave tipo | Indice dell'etichetta stimata. Se il valore è i, l'etichetta effettiva sarà la categoria i-th nel tipo di etichetta di input con valori chiave. |
Caratteristiche del trainer
| Attività di Machine Learning | Classificazione multiclasse |
| La normalizzazione è necessaria? | Yes |
| La memorizzazione nella cache è necessaria? | No |
| NuGet necessario oltre a Microsoft.ML | Nessuno |
| Esportabile in ONNX | Yes |
Funzione di assegnazione dei punteggi
Il modello di entropia massima è una generalizzazione della regressione logistica lineare. La differenza principale tra il modello di entropia massima e la regressione logistica è il numero di classi supportate nel problema di classificazione considerato. La regressione logistica è solo per la classificazione binaria, mentre il modello di entropia massimo gestisce più classi. Per un'introduzione dettagliata, vedere la sezione 1 in questo documento .
Si supponga che il numero di classi sia $m$ e il numero di funzionalità sia $n$. Il modello di entropia massima assegna alla classe $c$-th un vettore di coefficiente $\textbf{w}_c \in {\mathbb R}^n$ e una distorsione $b_c \in {\mathbb R}$, per $c=1,\dots,m$. Dato un vettore di funzionalità $\textbf{x} \in {\mathbb R}^n$, il punteggio della classe $c$-th è $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. La probabilità di $\textbf{x}$ appartenente alla classe $c$ è definita da $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$. Consentire $P(c, \textbf{ x})$ denotare la probabilità congiunta di vedere $c$ e $\textbf{x}$. La funzione di perdita ridotta a icona da questo formatore è $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, che è la funzione di probabilità di log negativa.
Dettagli algoritmo di training
La tecnica di ottimizzazione implementata si basa sul metodo Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) limitato. L-BFGS è un metodo quasi Newtoniano, che sostituisce il calcolo costoso della matrice hessiana con un'approssimazione, ma gode ancora di una velocità di convergenza veloce come il metodo di Newton in cui viene calcolata la matrice hessiana completa. Poiché l'approssimazione L-BFGS usa solo una quantità limitata di stati cronologici per calcolare la direzione del passaggio successivo, è particolarmente adatta per problemi con un vettore di funzionalità ad alta dimensione. Il numero di stati cronologici è un parametro specificato dall'utente, l'uso di un numero maggiore può portare a una migliore approssimazione della matrice hessiana, ma anche un costo di calcolo più elevato per ogni passaggio.
Questa classe usa la riduzione al minimo dei rischi empirici (ad esempio, ERM) per formulare il problema di ottimizzazione basato sui dati raccolti. Si noti che il rischio empirico viene in genere misurato applicando una funzione di perdita alle stime del modello sui punti dati raccolti. Se i dati di training non contengono sufficienti punti dati (ad esempio, per eseguire il training di un modello lineare nello spazio $n$dimensionale, è necessario almeno $n$ punti dati), l'overfitting può verificarsi in modo che il modello prodotto da ERM sia valido per descrivere i dati di training, ma potrebbe non riuscire a prevedere i risultati corretti in eventi non visualizzati. La regolarizzazione è una tecnica comune per alleviare tale fenomeno penalizzando la grandezza (in genere misurata dalla funzione norm) dei parametri del modello. Questo formatore supporta la regolarizzazione della rete elastica, che penalizza una combinazione lineare di L1-norm (LASSO), $|| \textbf{w}_c ||_1$, e L2-norm (ridge), $|| \textbf{w}_c ||Regolarizzazioni _2^2$ per $c=1,\dots,m$. Le regolarizzazioni L1-norm e L2-norm hanno effetti e usi diversi che sono complementari in determinati aspetti.
Insieme all'algoritmo di ottimizzazione implementato, la regolarizzazione L1-norm può aumentare la spazità dei pesi del modello, $\textbf{w}_1,\dots,\textbf{w}_m$. Per i set di dati ad alta dimensione e sparse, se gli utenti selezionano attentamente il coefficiente della norma L1, è possibile ottenere una buona qualità di stima con un modello con solo alcuni pesi non zero (ad esempio, 1% dei pesi totali del modello) senza influire sulla potenza di stima. Al contrario, la norma L2 non può aumentare la spazità del modello sottoposto a training, ma può comunque impedire l'overfitting evitando valori di parametri di grandi dimensioni. A volte, l'uso della norma L2 porta a una migliore qualità di stima, quindi gli utenti potrebbero comunque voler provare e ottimizzare i coefficienti di L1-norm e L2-norm. Si noti che concettualmente, l'uso di L1-norm implica che la distribuzione di tutti i parametri del modello è una distribuzione Laplace mentre L2-norm implica una distribuzione gaussiana per loro.
Una regolarizzazione aggressiva (ovvero l'assegnazione di coefficienti di grandi dimensioni ai termini di regolarizzazione L1-norm o L2) può danneggiare la capacità predittiva escludendo variabili importanti dal modello. Ad esempio, un coefficiente di norma L1 molto grande può forzare tutti i parametri a essere zeri e portare a un modello semplice. Pertanto, la scelta dei coefficienti di regolarizzazione corretti è importante in pratica.
Vedere anche la sezione Vedere anche i collegamenti agli esempi di utilizzo.
Campi
| Nome | Descrizione |
|---|---|
| FeatureColumn |
Colonna di funzionalità prevista dal formatore. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Colonna etichetta prevista dal formatore. Può essere |
| WeightColumn |
Colonna di peso prevista dal formatore. Può essere |
Proprietà
| Nome | Descrizione |
|---|---|
| Info |
Classe IEstimator<TTransformer> per stimare una destinazione usando un classificatore multiclasse di entropia massimo sottoposto a training con il metodo L-BFGS. (Ereditato da LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Metodi
| Nome | Descrizione |
|---|---|
| Fit(IDataView, MaximumEntropyModelParameters) |
Continua il training di un LbfgsMaximumEntropyMulticlassTrainer oggetto utilizzando un oggetto già sottoposto a |
| Fit(IDataView) |
Esegue il training e restituisce un oggetto ITransformer. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Classe IEstimator<TTransformer> per stimare una destinazione usando un classificatore multiclasse di entropia massimo sottoposto a training con il metodo L-BFGS. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. In questo modo si garantisce che gli estimatori downstream vengano sottoposti a training su dati memorizzati nella cache. È utile disporre di un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dato uno strumento di stima, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sulle dimensioni, motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit. |
Si applica a
Vedi anche
- LbfgsMaximumEntropyMulticlassTrainer.Options
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, LbfgsMaximumEntropyMulticlassTrainer+Options)