AveragedPerceptronTrainer 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 klasyfikacji binarnej wytrenowany za pomocą przeciętnego perceptronu.
public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
- Dziedziczenie
Uwagi
Aby utworzyć ten trener, użyj polecenia AveragedPerceptron lub AveragedPerceptron(Options).
Kolumny wejściowe i wyjściowe
Dane kolumny etykiety wejściowej muszą mieć wartość Boolean. Dane wejściowe funkcji kolumny muszą być znanym wektorem o rozmiarze Single. Ten trener generuje następujące kolumny:
Nazwa kolumny wyjściowej | Typ kolumny | Opis |
---|---|---|
Score |
Single | Niezwiązany wynik, który został obliczony przez model. |
PredictedLabel |
Boolean | Przewidywana etykieta na podstawie znaku wyniku. Wynik ujemny mapuje na false wartości i wynik dodatni jest mapowy na true . |
Cechy trenera
Zadanie uczenia maszynowego | Klasyfikacja binarna |
Czy normalizacja jest wymagana? | Tak |
Czy buforowanie jest wymagane? | Nie |
Wymagane narzędzie NuGet oprócz Microsoft.ML | Brak |
Eksportowanie do pliku ONNX | Tak |
Szczegóły algorytmu trenowania
Perceptron to algorytm klasyfikacji, który tworzy przewidywania przez znalezienie oddzielającego hiperpłaszczyzny. Na przykład z wartościami funkcji $f_0, f_1,..., f_{D-1}$, przewidywanie jest podane przez określenie, która strona hiperpłaszczyzny przypada. Jest to takie samo, jak znak ważonej sumy feautures, tj. $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, gdzie $w_0, w_1,..., w_{D-1}$ są wagami obliczanymi przez algorytm, a $b$ jest stronniczość obliczana przez algorytm.
Perceptron to algorytm online, co oznacza, że przetwarza wystąpienia w zestawie treningowym pojedynczo. Rozpoczyna się od zestawu początkowych wag (zero, losowe lub zainicjowane z poprzedniego ucznia). Następnie dla każdego przykładu w zestawie treningowym obliczana jest ważona suma funkcji. Jeśli ta wartość ma ten sam znak co etykieta bieżącego przykładu, wagi pozostają takie same. Jeśli mają przeciwległe znaki, wektor wagi jest aktualizowany przez dodanie lub odejmowanie (jeśli etykieta jest dodatnia lub ujemna), wektor funkcji bieżącego przykładu, pomnożony przez współczynnik 0 <<a = 1, nazywany współczynnikiem uczenia. W uogólnieniu tego algorytmu wagi są aktualizowane przez dodanie wektora funkcji mnożonego przez szybkość uczenia, a gradient niektórych funkcji utraty (w określonym przypadku opisanym powyżej utrata jest utrata zawiasu, której gradient wynosi 1, gdy jest niezerowy).
W kolumnie Averaged Perceptron (aka voted-perceptron) dla każdej iteracji, czyli przekazywania danych treningowych, wektor wagi jest obliczany zgodnie z powyższym wyjaśnieniem. Ostateczne przewidywanie jest następnie obliczane przez średnio ważoną sumę z każdego wektora wagi i patrząc na znak wyniku.
Aby uzyskać więcej informacji, zobacz wpis w wikipedii dotyczący klasyfikacji perceptron lub klasyfikacji dużego marginesu przy użyciu algorytmu perceptronu.
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 klasyfikacji binarnej wytrenowany za pomocą przeciętnego perceptronu. (Odziedziczone po OnlineLinearTrainer<TTransformer,TModel>) |
Metody
Fit(IDataView, LinearModelParameters) |
Kontynuuje trenowanie OnlineLinearTrainer<TTransformer,TModel> przy użyciu już wytrenowanego |
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 klasyfikacji binarnej wytrenowany za pomocą przeciętnego perceptronu. (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. |