Sprache

LbfgsMaximumEntropyMulticlassTrainer Klasse

Definition

Die IEstimator<TTransformer> Vorhersage eines Ziels mithilfe eines mit der L-BFGS-Methode trainierten maximal entropie-Klassifizierers mit mehreren Klassen.

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)
Vererbung

Hinweise

Um diesen Trainer zu erstellen, verwenden Sie LbfgsMaximumEntropy oder LbfgsMaximumEntropy(Options).

Eingabe- und Ausgabespalten

Die Spaltendaten der Eingabebeschriftung müssen schlüsseltyp sein, und die Featurespalte muss ein Vektor der bekannten Größe sein Single.

Der Trainer gibt folgende Spalten aus:

Name der Ausgabespalte Spaltentyp Description
Score Vektor von Single Die Bewertungen aller Klassen. Höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugeordnete Klasse zu fallen. Wenn das i-th-Element den größten Wert aufweist, wäre der vorhergesagte Bezeichnungsindex i. Beachten Sie, dass i nullbasierten Index ist.
PredictedLabel Schlüssel-Typ Der Index der vorhergesagten Bezeichnung. Wenn der Wert i ist, würde die tatsächliche Beschriftung die i-th-Kategorie im Eingabebezeichnungstyp mit Schlüsselwert sein.

Trainermerkmale

Machine Learning-Aufgabe Mehrklassenklassifizierung
Ist normalisierung erforderlich? Yes
Ist zwischenspeichern erforderlich? No
Erforderliches NuGet zusätzlich zu Microsoft.ML Nichts
Exportierbar in ONNX Yes

Bewertungsfunktion

Das maximale Entropiemodell ist eine Verallgemeinerung der linearen logistischen Regression. Der Hauptunterschied zwischen dem maximalen Entropiemodell und der logistischen Regression ist die Anzahl der Klassen, die im betrachteten Klassifizierungsproblem unterstützt werden. Die logistische Regression ist nur für binäre Klassifizierungen vorgesehen, während das maximale Entropiemodell mehrere Klassen verarbeitet. Eine ausführliche Einführung finden Sie in Abschnitt 1 in diesem Dokument .

Angenommen, die Anzahl der Klassen ist $m$ und die Anzahl der Features ist $n$. Das maximale Entropiemodell weist der $c$-th-Klasse einen Koeffizientenvektor $\textbf{w}_c \in {\mathbb R}^n$ und einen Bias $b_c \in {\mathbb R}$, für $c=1,\Punkte,m$. Angesichts eines Featurevektors $\textbf{x} \in {\mathbb R}^n$, lautet der $c$-th-Klassenwert $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Die Wahrscheinlichkeit von $\textbf{x}$ der Klasse $c$ wird durch $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m^{\hat{y}^{c'}} }$definiert. Lassen Sie $P(c, \textbf{ x})$ die gemeinsame Wahrscheinlichkeit der Anzeige $c$ und $\textbf{x}$ kennzeichnen. Die von diesem Trainer minimierte Verlustfunktion ist $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, was die negative Log-Wahrscheinlichkeitsfunktion ist.

Details des Schulungsalgorithmus

Die implementierte Optimierungstechnik basiert auf der begrenzten Speichermethode Broyden-Fletcher-Goldfarb-Shanno-Methode (L-BFGS). L-BFGS ist eine Quasi-Newton-Methode, die die teure Berechnung der hessischen Matrix durch eine Annäherung ersetzt, aber dennoch eine schnelle Konvergenzrate wie Newtons Methode genießt, bei der die vollständige hessische Matrix berechnet wird. Da die L-BFGS-Annäherung nur eine begrenzte Menge historischer Zustände verwendet, um die nächste Schrittrichtung zu berechnen, eignet es sich besonders für Probleme mit einem hochdimensionalen Featurevektor. Die Anzahl der historischen Zustände ist ein vom Benutzer angegebener Parameter, wobei eine größere Zahl verwendet wird, kann zu einer besseren Annäherung der hessischen Matrix, aber auch zu einer höheren Berechnungskosten pro Schritt führen.

Diese Klasse verwendet empirische Risikominimierung (d. h. ERM), um das Optimierungsproblem zu formulieren, das auf gesammelten Daten basiert. Beachten Sie, dass empirische Risiken in der Regel durch Anwenden einer Verlustfunktion auf die Vorhersagen des Modells auf gesammelte Datenpunkte gemessen werden. Wenn die Schulungsdaten nicht genügend Datenpunkte enthalten (z. B. um ein lineares Modell im $n$-dimensionalen Raum zu trainieren, benötigen wir mindestens $n$-Datenpunkte), kann die Überlastung passieren, damit das von ERM erstellte Modell gut bei der Beschreibung von Schulungsdaten geeignet ist, aber möglicherweise keine korrekten Ergebnisse in nicht angezeigten Ereignissen vorhergesagt werden kann. Regularisierung ist eine gängige Technik, um ein solches Phänomen zu lindern, indem die Größe (in der Regel durch die Normfunktion gemessen) von Modellparametern bestraft wird. Dieser Trainer unterstützt eine flexible Netznormalisierung, die eine lineare Kombination aus L1-Norm (LASSO), $|| \textbf{w}_c ||_1$, und L2-Norm (Ridge), $|| \textbf{w}_c ||_2^2$-Regularisierungen für $c=1,\Punkte,m$. L1-Norm- und L2-Norm-Regularisierungen haben unterschiedliche Auswirkungen und Verwendungen, die sich in gewisser Hinsicht ergänzen.

Zusammen mit dem implementierten Optimierungsalgorithmus kann die L1-Norm-Regularisierung die Sparsamkeit der Modellgewichte erhöhen, $\textbf{w}_1,\dots,\textbf{w}_m$. Wenn Benutzer den Koeffizienten der L1-Norm sorgfältig auswählen, ist es möglich, eine gute Vorhersagequalität mit einem Modell zu erzielen, das nur wenige Nicht-Null-Gewichte aufweist (z. B. 1% der Gesamtmodellgewichte), ohne die Vorhersageleistung zu beeinträchtigen. Im Gegensatz dazu kann die L2-Norm nicht die Sparsität des trainierten Modells erhöhen, aber dennoch die Überanpassung verhindern, indem große Parameterwerte vermieden werden. Manchmal führt die Verwendung von L2-Norm zu einer besseren Vorhersagequalität, sodass Benutzer es möglicherweise trotzdem ausprobieren und die Koeffizienten der L1-Norm und L2-Norm optimieren möchten. Beachten Sie, dass die Verwendung von L1-Norm impliziert, dass die Verteilung aller Modellparameter eine Laplace-Verteilung ist, während L2-Norm eine gaussische Verteilung für sie impliziert.

Eine aggressive Regularisierung (d. h. das Zuweisen großer Koeffizienten zu L1-Norm- oder L2-Norm-Regularisierungsbegriffen) kann die Vorhersagekapazität beeinträchtigen, indem wichtige Variablen aus dem Modell ausgeschlossen werden. Beispielsweise kann ein sehr großer L1-Norm-Koeffizient dazu führen, dass alle Parameter Nullen sind und zu einem trivialen Modell führen. Daher ist die Auswahl der richtigen Regularisierungskoeffizienten in der Praxis wichtig.

Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.

Felder

Name Beschreibung
FeatureColumn

Die Featurespalte, die der Trainer erwartet.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Die Bezeichnungsspalte, die der Trainer erwartet. Dies kann sein null, was angibt, dass die Bezeichnung nicht für schulungen verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Die Gewichtsspalte, die der Trainer erwartet. Dies kann sein null, was angibt, dass das Gewicht nicht für das Training verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)

Eigenschaften

Name Beschreibung
Info

Die IEstimator<TTransformer> Vorhersage eines Ziels mithilfe eines mit der L-BFGS-Methode trainierten maximal entropie-Klassifizierers mit mehreren Klassen.

(Geerbt von LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Methoden

Name Beschreibung
Fit(IDataView, MaximumEntropyModelParameters)

Setzt die Schulung einer LbfgsMaximumEntropyMulticlassTrainer bereits trainierten modelParameters anwendung fort und gibt einen MulticlassPredictionTransformer<TModel>.

Fit(IDataView)

Züge und Gibt einen ITransformer.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Die IEstimator<TTransformer> Vorhersage eines Ziels mithilfe eines mit der L-BFGS-Methode trainierten maximal entropie-Klassifizierers mit mehreren Klassen.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)

Erweiterungsmethoden

Name Beschreibung
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird.

Gilt für:

Weitere Informationen