LbfgsMaximumEntropyMulticlassTrainer クラス

定義

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

注釈

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

入力列と出力列

入力ラベル列のデータは キー 型である必要があり、特徴列は既知のサイズの Singleベクターである必要があります。

このトレーナーからは、以下の列が出力されます。

出力列の名前 列の型 説明
Score Single のベクター すべてのクラスのスコア。 値が大きいほど、関連するクラスに分類される可能性が高くなります。 i 番目の要素が最大値の場合、予測ラベル インデックスは i になります。 i はゼロベースのインデックスです。
PredictedLabel キー 予測ラベルのインデックス。 その値が i の場合、実際のラベルはキーと値の入力ラベルの型の i 番目のカテゴリになります。

トレーナーの特性

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

スコアリング関数

最大エントロピー モデル は、線形 ロジスティック回帰の一般化です。 最大エントロピー モデルとロジスティック回帰の主な違いは、考慮された分類の問題でサポートされるクラスの数です。 ロジスティック回帰は二項分類に対してのみ使用され、最大エントロピー モデルでは複数のクラスが処理されます。 詳細な概要については、 このホワイト ペーパー のセクション 1 を参照してください。

クラスの数が $m$ であり、機能の数が $n$ であると仮定します。 最大エントロピー モデルは、$c$-th クラスに係数ベクトル $\textbf{w}_c \in {\mathbb R}^n$ と{\mathbb R}$ のバイアス $b_c \を割り当てます($c=1,\dots,m$)。 {\mathbb R}^n$ の特徴ベクトル $\textbf{x} \を指定すると、$c$-th クラスのスコアは $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$ です。 クラス $c$ に属する $\textbf{x}$ の確率は、$\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} } $ によって定義されます。 let $P(c, \textbf{ x})$ は、$c$ と $\textbf{x}$ を見る共同確率を表します。 このトレーナーによって最小化される損失関数は$-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $です。これは負 の対数尤度関数です。

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

実装される最適化手法は、 限られたメモリ Broyden-Fletcher-Goldfarb-Shanno メソッド (L-BFGS) に基づいています。 L-BFGS は 準ニュートン法であり、ヘス行列の高価な計算を近似に置き換えますが、それでも完全なヘス行列が計算される ニュートン法 のような高速収束率を享受します。 L-BFGS 近似では、次のステップの方向を計算するために限られた量の履歴状態しか使用しないため、高次元特徴ベクトルの問題に特に適しています。 履歴状態の数は、ユーザーが指定したパラメーターです。数値を大きくすると、Hessian 行列の近似値が向上し、1 ステップあたりの計算コストも高くなる可能性があります。

このクラスでは、 経験的リスク最小化 (つまり、ERM) を使用して、収集されたデータに基づいて構築された最適化の問題を作成します。 経験リスクは、通常、収集されたデータ ポイントに対するモデルの予測に損失関数を適用することによって測定されることに注意してください。 トレーニング データに十分なデータ ポイントが含まれていない場合 (たとえば、$n$次元空間で線形モデルをトレーニングするには、少なくとも $n$ データ ポイントが必要です)、ERM によって生成されるモデルがトレーニング データを記述するのに適していても、見えないイベントで正しい結果を予測できない可能性があるため、 オーバーフィット が発生する可能性があります。 正則化 は、モデル パラメーターの大きさ (通常は 標準関数で測定) を罰することによってこのような現象を軽減する一般的な手法です。 このトレーナーは、L1-norm (LASSO)、$|| の線形組み合わせを罰する エラスティック ネット正則化をサポートします\textbf{w}_c ||_1$、L2 標準 (リッジ)、$||\textbf{w}_c ||$c=1,\dots,m$の _2^2$ 正則化。 L1標準およびL2標準正則化は、特定の点で補完的である異なる効果および使用を有する。

実装された最適化アルゴリズムと共に、L1 標準の正則化では、モデルの重みのスパリティを高めることができます。$\textbf{w}_1,\dots,\textbf{w}_m$ です。 高次元データ セットとスパース データ セットの場合、ユーザーが L1 標準の係数を慎重に選択した場合、予測力に影響を与えずに、0 以外の重み (たとえば、モデル全体の重みの 1%) しか持たないモデルで、良好な予測品質を実現できます。 これに対し、L2 標準ではトレーニング済みモデルのスパリティを高めることはできませんが、大きなパラメーター値を回避することでオーバーフィットを防ぐことができます。 場合によっては、L2 標準を使用すると予測品質が向上するため、ユーザーは引き続きそれを試して、L1 標準と L2 標準の係数を微調整したい場合があります。 概念的には、L1 標準を使用すると、すべてのモデル パラメーターの分布が Laplace 分布 であることを意味し、L2 標準は それらのガウス分布 を意味します。

積極的な正則化 (つまり、L1 標準または L2 標準の正則化項に大きな係数を割り当てる) は、モデルから重要な変数を除外することで予測能力を損なう可能性があります。 たとえば、L1 標準係数が非常に大きい場合、すべてのパラメーターが強制的にゼロになり、単純なモデルになる可能性があります。 したがって、正しい正則化係数を選択することは、実際には重要です。

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

フィールド

FeatureColumn

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

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

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

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

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

(継承元 TrainerEstimatorBase<TTransformer,TModel>)

プロパティ

Info

IEstimator<TTransformer> L-BFGS メソッドでトレーニングされた最大エントロピー多クラス分類子を使用してターゲットを予測する。

(継承元 LbfgsTrainerBase<TOptions,TTransformer,TModel>)

メソッド

Fit(IDataView)

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

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

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

GetOutputSchema(SchemaShape)

IEstimator<TTransformer> L-BFGS メソッドでトレーニングされた最大エントロピー多クラス分類子を使用してターゲットを予測する。

(継承元 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 が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください