SdcaMulticlassTrainerBase<TModel> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Element IEstimator<TTransformer> do przewidywania celu przy użyciu liniowego modelu klasyfikatora wieloklasowego wytrenowanego z metodą spadku współrzędnych. W zależności od używanej funkcji utraty wytrenowany model może być na przykład maksymalny klasyfikator entropii lub wieloklasowa maszyna wektorowa obsługi.
public abstract class SdcaMulticlassTrainerBase<TModel> : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,Microsoft.ML.Data.MulticlassPredictionTransformer<TModel>,TModel> where TModel : class
type SdcaMulticlassTrainerBase<'Model (requires 'Model : null)> = class
inherit SdcaTrainerBase<SdcaMulticlassTrainerBase<'Model>.MulticlassOptions, MulticlassPredictionTransformer<'Model>, 'Model (requires 'Model : null)>
Public MustInherit Class SdcaMulticlassTrainerBase(Of TModel)
Inherits SdcaTrainerBase(Of SdcaMulticlassTrainerBase(Of TModel).MulticlassOptions, MulticlassPredictionTransformer(Of TModel), TModel)
Parametry typu
- TModel
- Dziedziczenie
-
SdcaTrainerBase<SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,MulticlassPredictionTransformer<TModel>,TModel>SdcaMulticlassTrainerBase<TModel>
- Pochodne
Uwagi
Aby utworzyć ten trener dla maksymalnej klasyfikatora entropii, użyj sdcaMaximumEntropy lub SdcaMaximumEntropy(Options). Aby utworzyć ten trener dla funkcji utraty (takiej jak utrata zawiasu maszyny nośnej) wybranej przez Ciebie, użyj opcji SdcaNonCalibrated lub SdcaNonCalibrated(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 generuje następujące kolumny:
Nazwa kolumny wyjściowej | Typ kolumny | Opis |
---|---|---|
Score |
Wektor Single | Wyniki wszystkich klas. Wyższa wartość oznacza wyższe prawdopodobieństwo, że należy do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety to i. Należy pamiętać, że i jest indeksem opartym na zera. |
PredictedLabel |
typ klucza | Indeks przewidywanej etykiety. Jeśli jego wartość to i, rzeczywista etykieta będzie kategorią i-th w typie etykiety wejściowej 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 |
Eksportowanie do pliku ONNX | Tak |
Funkcja oceniania
W ten sposób trenuje model liniowy w celu rozwiązywania problemów z klasyfikacją wieloklasowej. Załóżmy, że liczba klas jest $m$ i liczba funkcji jest $n$. Przypisuje $c$-th klasy wektor współczynnika $\textbf{w}_c \in {\mathbb R}^n$ i stronniczości $b_c \in {\mathbb R}$, dla $c=1,\kropki,m$. Biorąc pod uwagę wektor funkcji $\textbf{x} \in {\mathbb R}^n$, wynik klasy $c$-th będzie $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Jeśli $\textbf{x}$ należy do klasy $c$, wartość $\hat{y}^c$ powinna być znacznie większa niż 0. Natomiast $\hat{y}^c$ znacznie mniejszy niż 0 oznacza, że żądana etykieta nie powinna być $c$.
Jeśli i tylko wtedy, gdy wytrenowany model jest maksymalnym klasyfikatorem entropii, można interpretować wektor wyników wyjściowych jako przewidywane prawdopodobieństwa klasy, ponieważ funkcja softmax może być stosowana do wyników wszystkich klas po przetworzeniu. Bardziej szczegółowo prawdopodobieństwo $\textbf{x}$ należącego do klasy $c$ jest obliczane przez $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ i przechowywać w elemencie $c$-th w wektorze wyników. W innych przypadkach wektor wyniku wyjściowego to tylko $[\hat{y}^1, \dots, \hat{y}^m]$.
Szczegóły algorytmu trenowania
Algorytm optymalizacji jest rozszerzeniem metody spadku współrzędnych po podobnej ścieżce proponowanej we wcześniejszym dokumencie. Jest to zwykle znacznie szybsze niż L-BFGS i obcięte metody Newton dla zestawów danych na dużą skalę i rozrzedzony.
Ta klasa używa empirycznej minimalizacji ryzyka (tj. ERM), aby sformułować problem optymalizacji oparty na zebranych danych. Należy pamiętać, że ryzyko empiryczne jest zwykle mierzone przez zastosowanie funkcji straty na przewidywaniach modelu na zebranych punktach danych. Jeśli dane szkoleniowe nie zawierają wystarczającej ilości punktów danych (na przykład do trenowania modelu liniowego w przestrzeni $n$-wymiarowej, potrzebujemy co najmniej $n$ punktów danych), nadmierne dopasowanie może się zdarzyć tak, że model utworzony przez ERM jest dobry w opisywaniu danych treningowych, ale może nie przewidzieć poprawnych wyników w niezaużytowanych zdarzeniach. Regularyzacja jest powszechną techniką złagodzenia takiego zjawiska poprzez ukaranie wielkości (zwykle mierzonej przez funkcję norm) parametrów modelu. Ten trener obsługuje elastyczną regularizację sieci, która karze liniową kombinację L1-norm (LASSO), $|| \textbf{w}_c || _1$, i L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularyzacji dla $c=1,\kropki,m$. Regularne normy L1 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 rozrzedżenia, jeśli użytkownicy starannie wybierają współczynnik L1-norm, można osiągnąć dobrą jakość przewidywania z modelem, który ma tylko kilka niezerowych wag (np. 1% całkowitej wagi modelu) bez wpływu na moc przewidywania. Natomiast L2-norm 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 normy L2 prowadzi do lepszej jakości przewidywania, więc użytkownicy mogą nadal chcieć spróbować i dostosować współczynniki L1-norm i L2-norm. Należy pamiętać, że użycie normy L1 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 regularnych L1 lub L2-norm) może zaszkodzić wydajności predykcyjnej, wykluczając ważne zmienne z modelu. Na przykład bardzo duży współczynnik normy L1 może wymusić, że wszystkie parametry mają być zerami i prowadzą do prostego modelu. Dlatego wybór odpowiednich współczynników regularyzacji 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, którą oczekuje trener. Może to być |
WeightColumn |
Kolumna wagi, którą oczekuje trener. Może to być |
Właściwości
Info |
Element IEstimator<TTransformer> do przewidywania celu przy użyciu liniowego modelu klasyfikatora wieloklasowego wytrenowanego z metodą spadku współrzędnych. W zależności od używanej funkcji utraty wytrenowany model może być na przykład maksymalny klasyfikator entropii lub wieloklasowa maszyna wektorowa obsługi. (Odziedziczone po StochasticTrainerBase<TTransformer,TModel>) |
Metody
Fit(IDataView) |
Trenuje i zwraca wartość ITransformer. (Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Element IEstimator<TTransformer> do przewidywania celu przy użyciu liniowego modelu klasyfikatora wieloklasowego wytrenowanego z metodą spadku współrzędnych. W zależności od używanej funkcji utraty wytrenowany model może być na przykład maksymalny klasyfikator entropii lub wieloklasowa maszyna wektorowa obsługi. (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 względem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejmą wiele danych. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który wywoła 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ólną ITransformerwartość . Jednak w tym samym czasie IEstimator<TTransformer> często są tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania za pośrednictwem EstimatorChain<TLastTransformer> miejsca, w którym 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ż
- SdcaNonCalibrated(MulticlassClassificationCatalog+MulticlassClassificationTrainers, SdcaNonCalibratedMulticlassTrainer+Options)
- SdcaNonCalibrated(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, ISupportSdcaClassificationLoss, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaNonCalibratedMulticlassTrainer.Options
- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, SdcaMaximumEntropyMulticlassTrainer+Options)
- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaMaximumEntropyMulticlassTrainer.Options