LbfgsMaximumEntropyMulticlassTrainer Třída

Definice

Předpověď IEstimator<TTransformer> cíle pomocí maximálního klasifikátoru více tříd entropie natrénovaného metodou 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)
Dědičnost

Poznámky

K vytvoření tohoto trenéra použijte LbfgsMaximumEntropy nebo LbfgsMaximumEntropy(Možnosti).

Vstupní a výstupní sloupce

Vstupní data sloupce popisku musí být klíčovým typem a sloupec funkce musí být vektorem Singleznámé velikosti .

Tento trenér vypíše následující sloupce:

Název výstupního sloupce Typ sloupce Description
Score Vektor Single Skóre všech tříd. Vyšší hodnota znamená, že vyšší pravděpodobnost spadá do přidružené třídy. Pokud má prvek i-th největší hodnotu, bude predikovaný index popisku i. Všimněte si, že i je index založený na nule.
PredictedLabel typ klíče Index predikovaného popisku. Pokud je jeho hodnota i, skutečný popisek by byl i-th kategorie v typu vstupního popisku s hodnotou klíče.

Charakteristiky trenéra

Úloha strojového učení Vícetřídní klasifikace
Vyžaduje se normalizace? Yes
Vyžaduje se ukládání do mezipaměti? No
Povinné nuGet kromě Microsoft.ML Žádné
Exportovatelný do ONNX Yes

Bodovací funkce

Maximální entropický model je generalizace lineární logistické regrese. Hlavním rozdílem mezi maximálním entropním modelem a logistickou regresí je počet tříd podporovaných v zvažovaných problémech klasifikace. Logistická regrese je určená pouze pro binární klasifikaci, zatímco maximální entropický model zpracovává více tříd. Podrobný úvod najdete v části 1 tohoto dokumentu .

Předpokládejme, že počet tříd je $m$ a počet funkcí je $n$. Maximální entropický model přiřadí $c$-th třídy vektor koeficientu $\textbf{w}_c \in {\mathbb R}^n$ a předsudky $b_c \in {\mathbb R}$, pro $c=1,\tečky,m$. Vzhledem k vektoru funkce $\textbf{x} \in {\mathbb R}^n$, skóre $c$-th třídy je $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Pravděpodobnost $\textbf{x}$ patřící do třídy $c$ je definována $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}}}}$. Let $P(c, \textbf{ x})$ označuje společnou pravděpodobnost zobrazení $c$ a $\textbf{x}$. Funkce ztráty minimalizovaná tímto trenérem je $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, což je negativní funkce pravděpodobnosti protokolu.

Podrobnosti o trénovacím algoritmu

Technika optimalizace implementovaná je založená na omezené paměti Broyden-Fletcher-Goldfarb-Shanno metoda (L-BFGS). L-BFGS je kvazi-Newtonská metoda, která nahrazuje drahý výpočet hessian matice přibližnou aproximací, ale stále má rychlou konvergenční sazbu, jako je Newtonova metoda , kde je vypočítán plný Hessian matice. Vzhledem k tomu, že aproximace L-BFGS používá k výpočtu dalšího kroku pouze omezené množství historických stavů, je zvláště vhodné pro problémy s vysoce dimenzionálním vektorem funkcí. Počethistorickýchm funkcí je parametr zadaný uživatelem, který používá větší číslo, může vést k lepší aproximaci matice Hessian, ale také vyšší výpočetní náklady na jednotlivé kroky.

Tato třída používá empirické minimalizaci rizik (tj. ERM) k formulování problému optimalizace založeného na shromážděných datech. Všimněte si, že empirické riziko se obvykle měří použitím funkce ztráty na predikcích modelu na shromážděných datových bodech. Pokud trénovací data neobsahují dostatek datových bodů (například pro trénování lineárního modelu v $n$-dimenzionálním prostoru, potřebujeme alespoň $n$ datových bodů), může dojít k přeurčení , aby byl model vytvořený ERM dobrý při popisu trénovacích dat, ale nemusí selhat predikovat správné výsledky v neviděných událostech. Regularizace je běžná technika pro zmírnění takového jevu pomocí penalizace velikosti (obvykle měřené normou) parametrů modelu. Tento trenér podporuje elastickou regulární síť, která postihuje lineární kombinaci L1-norm (LASSO), $|| \textbf{w}_c || _1$ a L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularizations for $c=1,\dots,m$. Regulární pravidla L1 a L2-norm mají různé účinky a používají doplňkové v určitých ohledech.

Spolu s implementovaným algoritmem optimalizace může pravidelná aktualizace L1 zvýšit sparsitu hmotností modelu, $\textbf{w}_1,\dots,\textbf{w}_m$. U vysoce dimenzionálních a řídkých datových sad je možné, pokud uživatelé pečlivě vyberou koeficient L1-normu, je možné dosáhnout dobré kvality předpovědi s modelem, který má pouze několik nenulových hmotností (např. 1 % celkových hmotností modelu), aniž by to ovlivnilo jeho predikční výkon. Naproti tomu L2-normu nemůže zvýšit sparsitu trénovaného modelu, ale přesto může zabránit přeurčení tím, že se vyhnete velkým hodnotám parametrů. Někdy použití L2-norm vede k lepší kvalitě předpovědi, takže uživatelé mohou stále chtít vyzkoušet a vyladit koeficienty L1-norm a L2-norm. Mějte na paměti, že použití L1-norm znamená, že rozdělení všech parametrů modelu je laplace rozdělení , zatímco L2-norm znamená Gaussian rozdělení pro ně.

Agresivní regularizace (tj. přiřazení velkých koeficientů k regulárním termínům L1 nebo L2-norm) může poškodit prediktivní kapacitu vyloučením důležitých proměnných z modelu. Například velmi velký koeficient L1-norm může vynutit, aby všechny parametry byly nuly a vést k triviálnímu modelu. Proto je volba správných regulárních koeficientů důležitá v praxi.

V části Viz také najdete odkazy na příklady použití.

Pole

FeatureColumn

Sloupec funkcí, který trenér očekává.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Sloupec popisku, který trenér očekává. Může to být null, což označuje, že popisek se nepoužívá pro trénování.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Sloupec hmotnosti, který trenér očekává. Může být null, což značí, že váha se nepoužívá pro trénování.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)

Vlastnosti

Info

Předpověď IEstimator<TTransformer> cíle pomocí maximálního klasifikátoru více tříd entropie natrénovaného metodou L-BFGS.

(Zděděno od LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Metody

Fit(IDataView)

Vlaky a vrátí ITransformerhodnotu .

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
Fit(IDataView, MaximumEntropyModelParameters)

Pokračuje v trénování LbfgsMaximumEntropyMulticlassTrainer pomocí již natrénovaného modelParameters a vrátí MulticlassPredictionTransformer<TModel>hodnotu .

GetOutputSchema(SchemaShape)

Předpověď IEstimator<TTransformer> cíle pomocí maximálního klasifikátoru více tříd entropie natrénovaného metodou L-BFGS.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)

Metody rozšíření

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

Připojte k řetězci odhadu kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby se podřízené estimátory natrénovaly na data uložená v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

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

Pokud získáte odhadátor, vraťte obtékání objektu, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně zadaný objekt, a ne jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec odhadovačů prostřednictvím EstimatorChain<TLastTransformer> toho, kde je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, uložen někde v tomto řetězu. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po volání fit.

Platí pro

Viz také