次の方法で共有


AveragedPerceptronTrainer クラス

定義

IEstimator<TTransformer>平均パーセプトロンでトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

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)
継承

注釈

このトレーナーを作成するには、 AveragedPerceptron または AveragedPerceptron(Options)を使用します

入力列と出力列

入力ラベル列データは Boolean にする必要があります。 入力特徴列データは、既知のサイズの Singleベクターである必要があります。 このトレーナーからは、以下の列が出力されます。

出力列の名前 列の型 説明
Score Single モデルによって計算された無制限のスコア。
PredictedLabel Boolean スコアの符号に基づく予測ラベル。 負のスコアは false にマップされ、正のスコアは true にマップされます。

トレーナーの特性

機械学習タスク 二項分類
正規化は必要ですか? はい
キャッシュは必要ですか? いいえ
Microsoft.ML に加えて必要な NuGet なし
ONNX にエクスポート可能 はい

トレーニング アルゴリズムの詳細

パーセプトロンは、分離するハイパープレーンを見つけることで予測を行う分類アルゴリズムです。 たとえば、特徴値が $f_0、f_1,..., f_{D-1}$ の場合、ポイントがどの辺にあるかを決定することで予測が行われます。 これは、$\sum_{i = 0}^{D-1} (w_i * f_i) + b$の符号と同じです。ここで、$w_0、w_1,..., w_{D-1}$ はアルゴリズムによって計算される重みであり、$b$ はアルゴリズムによって計算されるバイアスです。

パーセプトロンはオンライン アルゴリズムであり、トレーニング セット内のインスタンスを一度に 1 つずつ処理します。 最初の重み (ゼロ、ランダム、または前の学習者から初期化) のセットから始まります。 次に、トレーニング セット内の各例について、特徴の加重合計が計算されます。 この値に現在の例のラベルと同じ符号がある場合、重みは変わりません。 逆符号を持つ場合、現在の例の特徴ベクトル (ラベルが正または負の場合) を加算または減算することによって重みベクトルが更新され、学習率と呼ばれる係数 0 < a <= 1 が乗算されます。 このアルゴリズムの一般化では、学習速度を乗算した特徴ベクトルと、何らかの損失関数の勾配を加算することで重みが更新されます (前述の特定のケースでは、損失はヒンジ損失であり、ゼロ以外の場合は勾配が 1 です)。

Averaged Perceptron (別名 voted-perceptron) では、反復ごとに、つまりトレーニング データを通過して、上で説明したように重みベクトルが計算されます。 最終的な予測は、各重みベクトルからの加重合計を平均化し、結果の符号を見ることによって計算されます。

詳細については、 Perceptron アルゴリズムを使用した Perceptron または Large Margin Classification の Wikipedia エントリを参照してください。

使用例へのリンクについては、「参照」セクションを参照してください。

フィールド

FeatureColumn

トレーナーが期待する特徴列。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

トレーナーが期待するラベル列。 できます null。これは、ラベルがトレーニングに使用されていないことを示します。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

トレーナーが期待する重み列。 できます。 nullこれは、トレーニングに重量が使用されていないことを示します。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)

プロパティ

Info

IEstimator<TTransformer>平均パーセプトロンでトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

(継承元 OnlineLinearTrainer<TTransformer,TModel>)

メソッド

Fit(IDataView, LinearModelParameters)

既にトレーニング済modelParametersみのを使用して、トレーニングOnlineLinearTrainer<TTransformer,TModel>を続行し、を返します。ITransformer

(継承元 OnlineLinearTrainer<TTransformer,TModel>)
Fit(IDataView)

をトレーニングして返します ITransformer

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer>平均パーセプトロンでトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)

拡張メソッド

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

エスティメーター チェーンに 'キャッシュ チェックポイント' を追加します。 これにより、ダウンストリームエスティメーターがキャッシュされたデータに対してトレーニングされます。 複数のデータを受け取るトレーナーが渡す前にキャッシュ チェックポイントを設定すると便利です。

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

エスティメーターを指定すると、デリゲートを 1 回 Fit(IDataView) 呼び出すラップ オブジェクトが呼び出されます。 多くの場合、エスティメーターが適合した内容に関する情報を返すことが重要です。そのため Fit(IDataView) 、メソッドは一般的 ITransformerなオブジェクトではなく、具体的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> 多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得するエスティメーターがこのチェーンのどこかに埋もれる場所を介して EstimatorChain<TLastTransformer> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください