AveragedPerceptronTrainer 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.
Oggetto IEstimator<TTransformer> per stimare una destinazione usando un modello di classificazione binaria lineare sottoposto a training con la perceptron media.
public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
- Ereditarietà
Commenti
Per creare questo trainer, usare AveragedPerceptron o AveragedPerceptron(Options).
Colonne di input e output
I dati della colonna dell'etichetta di input devono essere Boolean. I dati delle colonne delle funzionalità di input devono essere un vettore di dimensioni note di Single. Questo formatore restituisce le colonne seguenti:
Nome colonna di output | Tipo di colonna | Descrizione |
---|---|---|
Score |
Single | Punteggio non associato calcolato dal modello. |
PredictedLabel |
Boolean | L'etichetta stimata, in base al segno del punteggio. Un punteggio negativo esegue il mapping a false e un punteggio negativo esegue il mapping a true . |
Caratteristiche del trainer
Attività di Machine Learning | Classificazione binaria |
È necessaria la normalizzazione? | Sì |
È necessaria la memorizzazione nella cache? | No |
NuGet richiesto oltre a Microsoft.ML | Nessuno |
Esportabile in ONNX | Sì |
Dettagli dell'algoritmo di training
La perceptron è un algoritmo di classificazione che effettua le stime individuando un iperplano separato. Ad esempio, con valori di funzionalità $f_0, f_1,..., f_{D-1}$, la stima viene fornita determinando il lato dell'hyperplane in cui si trova il punto. Ovvero lo stesso segno della somma ponderata delle feauture, ovvero $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, dove $w_0, w_1,..., w_{D-1}$ sono i pesi calcolati dall'algoritmo e $b$ è il pregiudizio calcolato dall'algoritmo.
La perceptron è un algoritmo online, che significa che elabora le istanze nel set di training una alla volta. Inizia con un set di pesi iniziali (zero, casuale o inizializzato da un learner precedente). Quindi, per ogni esempio nel set di training, viene calcolata la somma ponderata delle funzionalità. Se questo valore ha lo stesso segno dell'etichetta dell'esempio corrente, i pesi rimangono invariati. Se hanno segni opposti, il vettore di pesi viene aggiornato aggiungendo o sottraendo (rispettivamente, se l'etichetta è positiva o negativa) il vettore di funzionalità dell'esempio corrente, moltiplicato per un fattore 0 < a <= 1, denominato tasso di apprendimento. In una generalizzazione di questo algoritmo, i pesi vengono aggiornati aggiungendo il vettore di funzionalità moltiplicato per la frequenza di apprendimento e dalla sfumatura di una funzione di perdita (nel caso specifico descritto in precedenza, la perdita è la perdita della cerniera, la cui sfumatura è 1 quando non è zero).
In Media perceptron (aka voted-perceptron), per ogni iterazione, ovvero passare attraverso i dati di training, viene calcolato un vettore di peso come illustrato in precedenza. La stima finale viene quindi calcolata mediando la somma ponderata da ogni vettore di peso e esaminando il segno del risultato.
Per altre informazioni, vedere La voce Wikipedia per Perceptron o La classificazione di grandi margini usando l'algoritmo Perceptron.
Controllare la sezione Vedere anche i collegamenti agli esempi di utilizzo.
Campi
FeatureColumn |
Colonna di funzionalità prevista dal trainer. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Colonna etichetta prevista dal trainer. Può essere |
WeightColumn |
Colonna di peso prevista dal trainer. Può essere |
Proprietà
Info |
Oggetto IEstimator<TTransformer> per stimare una destinazione usando un modello di classificazione binaria lineare sottoposto a training con la perceptron media. (Ereditato da OnlineLinearTrainer<TTransformer,TModel>) |
Metodi
Fit(IDataView, LinearModelParameters) |
Continua il training di un oggetto usando un OnlineLinearTrainer<TTransformer,TModel> oggetto già sottoposto a |
Fit(IDataView) |
Esegue il training e restituisce un ITransformeroggetto . (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Oggetto IEstimator<TTransformer> per stimare una destinazione usando un modello di classificazione binaria lineare sottoposto a training con la perceptron media. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
Metodi di estensione
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training sui dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima dei training che accettano più passaggi di dati. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dato un stimatore, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. Spesso è importante che un stimatore restituisca informazioni su ciò che è stato adatto, che è il 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> sono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di stima tramite EstimatorChain<TLastTransformer> dove lo stimatore per cui si vuole ottenere il trasformatore è sepolto da qualche parte in questa catena. Per questo scenario, è possibile collegare questo metodo a un delegato che verrà chiamato una volta chiamato fit. |