Partager via


LbfgsMaximumEntropyMulticlassTrainer Classe

Définition

Pour IEstimator<TTransformer> prédire une cible à l’aide d’un classifieur multiclasse d’entropie maximal entraîné avec la méthode 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)
Héritage

Remarques

Pour créer cet entraîneur, utilisez LbfgsMaximumEntropy ou LbfgsMaximumEntropy(Options).

Colonnes d’entrée et de sortie

Les données de colonne d’étiquette d’entrée doivent être de type clé et la colonne de caractéristique doit être un vecteur de taille connue de Single.

Ce formateur génère les colonnes suivantes :

Nom de colonne de sortie Type de colonne Description
Score Vecteur de Single Les scores de toutes les classes. Une valeur supérieure signifie une plus forte probabilité d’appartenir à la classe associée. Si l’i-ème élément a la plus grande valeur, l’index de l’étiquette prédite est i. Notez que i est l’index de base zéro.
PredictedLabel type de clé Index de l’étiquette prédite. Si sa valeur est i, l’étiquette réelle est la i-ème catégorie dans le type d’étiquette d’entrée avec une valeur de clé.

Caractéristiques de l’entraîneur

Tâche d’apprentissage automatique Classification multiclasse
La normalisation est-elle requise ? Oui
La mise en cache est-elle requise ? Non
NuGet requis en plus de Microsoft.ML Aucun
Exportable vers ONNX Oui

Fonction de scoring

Le modèle d’entropie maximale est une généralisation de la régression logistique linéaire. La principale différence entre le modèle d’entropie maximale et la régression logistique est le nombre de classes prises en charge dans le problème de classification considéré. La régression logistique n’est que pour la classification binaire, tandis que le modèle d’entropie maximale gère plusieurs classes. Consultez la section 1 de ce document pour obtenir une introduction détaillée.

Supposons que le nombre de classes est $m$ et que le nombre de fonctionnalités est $n$. Le modèle d’entropie maximal affecte la classe $c$-th un vecteur de coefficient $\textbf{w}_c \in {\mathbb R}^n$ et un biais $b_c \in {\mathbb R}$, pour $c=1,\dots,m$. Étant donné un vecteur de fonctionnalité $\textbf{x} \in {\mathbb R}^n$, le score de la $c$-th classe est $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. La probabilité de $\textbf{x}$ appartenant à la classe $c$ est définie par $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c'= 1}^m e^{\hat{y}^{c'}} }$. Laissez $P(c, \textbf{ x})$ indique la probabilité conjointe de voir $c$ et $\textbf{x}$. La fonction de perte réduite par ce formateur est $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, qui est la fonction de probabilité de journal négative.

Détails de l’algorithme d’apprentissage

La technique d’optimisation implémentée est basée sur la mémoire limitée Broyden-Fletcher-Goldfarb-Shanno, méthode (L-BFGS). L-BFGS est une méthode quasi-Newtonienne, qui remplace le calcul coûteux de la matrice Hessian par une approximation, mais bénéficie toujours d’un taux de convergence rapide comme la méthode de Newton où la matrice Hessian complète est calculée. Étant donné que l’approximation L-BFGS utilise uniquement une quantité limitée d’états historiques pour calculer la direction de l’étape suivante, elle est particulièrement adaptée aux problèmes liés à un vecteur de caractéristique haute dimension. Le nombre d’états historiques est un paramètre spécifié par l’utilisateur, l’utilisation d’un nombre plus grand peut entraîner une meilleure approximation de la matrice Hessian, mais également un coût de calcul plus élevé par étape.

Cette classe utilise la minimisation des risques empiriques (par exemple, ERM) pour formuler le problème d’optimisation basé sur les données collectées. Notez que le risque empirique est généralement mesuré en appliquant une fonction de perte sur les prédictions du modèle sur les points de données collectés. Si les données d’entraînement ne contiennent pas suffisamment de points de données (par exemple, pour entraîner un modèle linéaire dans $n$-dimensionnel, nous avons besoin d’au moins $n$ de points de données), le surfichage peut se produire afin que le modèle produit par ERM soit bon pour décrire les données d’entraînement, mais peut ne pas prédire les résultats corrects dans des événements invisibles. La normalisation est une technique courante pour atténuer ce phénomène en pénalisant l’ampleur (généralement mesurée par la fonction de norme) des paramètres de modèle. Ce formateur prend en charge la normalisation de net élastique, ce qui pénalise une combinaison linéaire de la norme L1 (LASSO), $|| \textbf{w}_c || _1$, et L2-norm (crête), $|| \textbf{w}_c || _2^2$ de normalisation pour $c=1,\dots,m$. Les normalisations L1 et L2 ont des effets différents et des utilisations complémentaires à certains égards.

Avec l’algorithme d’optimisation implémenté, la normalisation L1 peut augmenter la sparsité des poids du modèle, $\textbf{w}_1,\dots,\textbf{w}{w}_m$. Pour les jeux de données à haute dimension et éparses, si les utilisateurs sélectionnent soigneusement le coefficient de la norme L1, il est possible d’obtenir une bonne qualité de prédiction avec un modèle qui n’a que quelques poids non nuls (par exemple, 1 % des poids totaux du modèle) sans affecter sa puissance de prédiction. En revanche, la norme L2 ne peut pas augmenter la sparsité du modèle entraîné, mais peut toujours empêcher le surfichage en évitant les valeurs de paramètres volumineuses. Parfois, l’utilisation de la norme L2 conduit à une meilleure qualité de prédiction, afin que les utilisateurs puissent toujours essayer et affiner les coefficients de la norme L1 et de la norme L2. Notez que conceptuellement, l’utilisation de la norme L1 implique que la distribution de tous les paramètres de modèle est une distribution Laplace tandis que la norme L2 implique une distribution gaussienne pour elles.

Une normalisation agressive (autrement dit, l’attribution de coefficients volumineux aux termes de normalisation L1 ou L2-norme) peut nuire à la capacité prédictive en excluant les variables importantes du modèle. Par exemple, un coefficient de norme L1 très volumineux peut forcer tous les paramètres à être zéros et conduire à un modèle trivial. Par conséquent, le choix des coefficients de régularisation appropriés est important dans la pratique.

Consultez la section Voir également pour obtenir des liens vers des exemples d’utilisation.

Champs

FeatureColumn

Colonne de caractéristique attendue par l’entraîneur.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Colonne d’étiquette attendue par le formateur. Peut être null, ce qui indique que l’étiquette n’est pas utilisée pour l’entraînement.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Colonne de poids attendue par l’entraîneur. Peut être null, ce qui indique que le poids n’est pas utilisé pour l’entraînement.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)

Propriétés

Info

Pour IEstimator<TTransformer> prédire une cible à l’aide d’un classifieur multiclasse d’entropie maximal entraîné avec la méthode L-BFGS.

(Hérité de LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Méthodes

Fit(IDataView, MaximumEntropyModelParameters)

Poursuit la formation d’un LbfgsMaximumEntropyMulticlassTrainer utilisateur déjà formé modelParameters et retourne un MulticlassPredictionTransformer<TModel>.

Fit(IDataView)

Entraîne et retourne un ITransformer.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Pour IEstimator<TTransformer> prédire une cible à l’aide d’un classifieur multiclasse d’entropie maximal entraîné avec la méthode L-BFGS.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)

Méthodes d’extension

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

Ajoutez un « point de contrôle de mise en cache » à la chaîne d’estimateur. Cela garantit que les estimateurs en aval seront entraînés par rapport aux données mises en cache. Il est utile d’avoir un point de contrôle de mise en cache avant les formateurs qui prennent plusieurs passes de données.

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

Étant donné un estimateur, retournez un objet de création de package de package qui appellera un délégué une fois Fit(IDataView) appelé. Il est souvent important pour un estimateur de retourner des informations sur ce qui a été adapté, c’est pourquoi la Fit(IDataView) méthode retourne un objet spécifiquement typé, plutôt que simplement un général ITransformer. Toutefois, en même temps, IEstimator<TTransformer> sont souvent formés en pipelines avec de nombreux objets. Nous pouvons donc avoir besoin de créer une chaîne d’estimateurs via EstimatorChain<TLastTransformer> laquelle l’estimateur pour lequel nous voulons obtenir le transformateur est enterré quelque part dans cette chaîne. Pour ce scénario, nous pouvons par le biais de cette méthode attacher un délégué qui sera appelé une fois l’ajustement appelé.

S’applique à

Voir aussi