LbfgsMaximumEntropyMulticlassTrainer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
WeightColumn |
Colonne de poids attendue par l’entraîneur. Peut être |
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é |
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
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, LbfgsMaximumEntropyMulticlassTrainer+Options)
- LbfgsMaximumEntropyMulticlassTrainer.Options