Udostępnij za pośrednictwem


LbfgsMaximumEntropyMulticlassTrainer Klasa

Definicja

Element IEstimator<TTransformer> do przewidywania celu przy użyciu maksymalnej entropii klasyfikatora wieloklasowego trenowanego za pomocą metody 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)
Dziedziczenie

Uwagi

Aby utworzyć ten trener, użyj LbfgsMaximumEntropy lub LbfgsMaximumEntropy(Options).

Kolumny wejściowe i wyjściowe

Dane kolumny etykiety wejściowej muszą być typem klucza , a kolumna funkcji musi być znanym wektorem Single.

Ten trener wyprowadza następujące kolumny:

Nazwa kolumny wyjściowej Typ kolumny Opis
Score Wektor Single Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, że należy do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i. Należy pamiętać, że i jest indeksem opartym na zera.
PredictedLabel typ klucza Indeks przewidywanej etykiety. Jeśli jej wartość to i, rzeczywista etykieta będzie kategorią i-th w typie etykiety wejściowej z wartością klucza.

Cechy trenera

Zadanie uczenia maszynowego Klasyfikacja wieloklasowa
Czy normalizacja jest wymagana? Tak
Czy buforowanie jest wymagane? Nie
Wymagane narzędzie NuGet oprócz Microsoft.ML Brak
Możliwość eksportowania do ONNX Tak

Funkcja oceniania

Maksymalny model entropii to uogólnienie regresji logistycznej liniowej. Główna różnica między maksymalnym modelem entropii a regresją logistyczną jest liczba klas obsługiwanych w rozważanych problemach klasyfikacji. Regresja logistyczna dotyczy tylko klasyfikacji binarnej, podczas gdy maksymalny model entropii obsługuje wiele klas. Zobacz sekcję 1 w tym dokumencie , aby zapoznać się ze szczegółowym wprowadzeniem.

Załóżmy, że liczba klas jest $m$, a liczba funkcji jest $n$. Maksymalny model entropii przypisuje $c$-th wektor współczynnika $\textbf{w}_c \in {\mathbb R}^n$ i stronniczość $b_c \in {\mathbb R}$, dla $c=1,\kropek,m$. Biorąc pod uwagę wektor funkcji $\textbf{x} \in {\mathbb R}^n$, wynik $c$-th klasy to $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Prawdopodobieństwo $\textbf{x}$ należącego do klasy $c$ jest definiowane przez $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$. Niech $P(c, \textbf{ x})$ oznacza wspólne prawdopodobieństwo wyświetlania $c$ i $\textbf{x}$. Funkcja utraty zminimalizowana przez ten trener to $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, która jest ujemną funkcją prawdopodobieństwa dziennika.

Szczegóły algorytmu trenowania

Zaimplementowana technika optymalizacji jest oparta na metodzie Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS to quasi-newtonijska metoda, która zastępuje kosztowne obliczanie macierzy Hessowskiej przybliżeniem, ale nadal cieszy się szybkim współczynnikiem zbieżności, takim jak metoda Newtona , w której obliczana jest pełna macierz Hessyjska. Ponieważ przybliżenie L-BFGS używa tylko ograniczonej ilości stanów historycznych do obliczenia następnego kierunku kroku, jest to szczególnie przydatne w przypadku problemów z wektorem cech o dużej wymiarach. Liczba stanów historycznych jest parametrem określonym przez użytkownika, użycie większej liczby może prowadzić do lepszego przybliżenia macierzy Hessian, ale także wyższego kosztu obliczeń na krok.

Ta klasa używa empirycznej minimalizacji ryzyka (tj. ERM) do sformułowania problemu optymalizacji opartego na zebranych danych. Należy pamiętać, że ryzyko empiryczne jest zwykle mierzone przez zastosowanie funkcji straty w przewidywaniach modelu dotyczących zebranych punktów danych. Jeśli dane szkoleniowe nie zawierają wystarczającej liczby punktów danych (na przykład do wytrenowania modelu liniowego w przestrzeni $n$-wymiarowej, potrzebujemy co najmniej $n$ punktów danych), nadmierne dopasowanie może się zdarzyć, aby model utworzony przez ERM był dobry w opisywaniu danych treningowych, ale może nie przewidzieć prawidłowych wyników w niewidocznych zdarzeniach. Regularyzacja jest powszechną techniką łagodzenia takiego zjawiska poprzez karanie wielkości (zwykle mierzonej przez funkcję norm) parametrów modelu. Ten trener obsługuje regularyzację elastycznej sieci, która kara liniową kombinację L1-norm (LASSO), $|| \textbf{w}_c || _1$, i L2-norm (grzbiet), $|| \textbf{w}_c || _2^2$ uregulowania dla $c=1,\kropki,m$. Uregulowania L1-norm i L2 mają różne skutki i zastosowania, które uzupełniają się pod pewnymi względami.

Wraz z zaimplementowanym algorytmem optymalizacji regularyzacja L1-norm może zwiększyć rozrzedwienie wag modelu, $\textbf{w}_1,\kropki,\textbf{w}_m$. W przypadku zestawów danych o wysokiej wymiarowości i rozrzedzeni, jeśli użytkownicy starannie wybierają współczynnik normy L1, można osiągnąć dobrą jakość przewidywania przy użyciu modelu, który ma tylko kilka wag niezerowych (np. 1% całkowitych wag modelu) bez wpływu na moc przewidywania. Natomiast norma L2 nie może zwiększyć rozrzedzeniu wytrenowanego modelu, ale nadal może zapobiec nadmiernemu dopasowaniu, unikając dużych wartości parametrów. Czasami użycie L2-norm prowadzi do lepszej jakości przewidywania, więc użytkownicy mogą nadal chcieć spróbować i dostroić współczynniki L1-norm i L2-norm. Należy pamiętać, że użycie L1-norm oznacza, że rozkład wszystkich parametrów modelu jest rozkładem Laplace , podczas gdy L2-norm oznacza rozkład Gaussian dla nich.

Agresywna regularyzacja (czyli przypisywanie dużych współczynników do terminów regularyzacji L1 lub L2 norm) może zaszkodzić zdolności predykcyjnej, wykluczając ważne zmienne z modelu. Na przykład bardzo duży współczynnik normy L1 może zmusić wszystkie parametry do zera i prowadzić do prostego modelu. Dlatego wybór odpowiednich współczynników uregulowania jest ważny w praktyce.

Zapoznaj się z sekcją Zobacz również, aby uzyskać linki do przykładów użycia.

Pola

FeatureColumn

Kolumna funkcji, której oczekuje trener.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Kolumna etykiety oczekiwana przez trenera. Może to być null, co oznacza, że etykieta nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Kolumna wagi oczekiwana przez trenera. Może to być null, co oznacza, że waga nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)

Właściwości

Info

Element IEstimator<TTransformer> do przewidywania celu przy użyciu maksymalnej entropii klasyfikatora wieloklasowego trenowanego za pomocą metody L-BFGS.

(Odziedziczone po LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Metody

Fit(IDataView, MaximumEntropyModelParameters)

Kontynuuje trenowanie LbfgsMaximumEntropyMulticlassTrainer przy użyciu już wytrenowanego modelParameters elementu i zwraca wartość MulticlassPredictionTransformer<TModel>.

Fit(IDataView)

Trenuje i zwraca wartość ITransformer.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Element IEstimator<TTransformer> do przewidywania celu przy użyciu maksymalnej entropii klasyfikatora wieloklasowego trenowanego za pomocą metody L-BFGS.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)

Metody rozszerzania

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

Dołącz "punkt kontrolny buforowania" do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane pod kątem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejdą wiele danych.

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

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który będzie wywoływać delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólny ITransformerelement . Jednak w tym samym czasie IEstimator<TTransformer> są często tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania, za pośrednictwem EstimatorChain<TLastTransformer> którego narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania.

Dotyczy

Zobacz też