AveragedPerceptronTrainer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 |
トレーナーが期待するラベル列。 できます |
WeightColumn |
トレーナーが期待する重み列。 できます。 |
プロパティ
Info |
IEstimator<TTransformer>平均パーセプトロンでトレーニングされた線形二項分類モデルを使用してターゲットを予測する。 (継承元 OnlineLinearTrainer<TTransformer,TModel>) |
メソッド
Fit(IDataView, LinearModelParameters) |
既にトレーニング済 |
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 が呼び出されると呼び出されるデリゲートをアタッチできます。 |