Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

インクリメンタル学習モデルの構成

インクリメンタル学習モデルのオブジェクトでは、関数が漸増的なあてはめおよびモデルの性能評価を実施する方法をすべて指定します。インクリメンタル学習モデルの構成または準備を行うには、incrementalClassificationLinear または incrementalRegressionLinear のいずれかのオブジェクトを直接呼び出すか、従来式の学習済みモデルをいずれかのオブジェクトに変換することによってモデルを作成します。以下の表は、対応する機械学習の問題で使用可能なオブジェクト、変換関数、およびサポートされている学習器の一覧です。

問題作成方法関数サポートされている学習器
バイナリ分類オブジェクト呼び出しincrementalClassificationLinear

線形 SVM

ロジスティック回帰

モデル変換

incrementalLearner が線形 SVM モデル (ClassificationSVM または CompactClassificationSVM) を変換

incrementalLearner が線形分類モデル (ClassificationLinear) を変換

線形 SVM

ロジスティック回帰

回帰オブジェクト呼び出しincrementalRegressionLinear

線形 SVM 回帰

最小二乗

モデル変換

incrementalLearner が線形 SVM 回帰モデル (RegressionSVM または CompactRegressionSVM) を変換

incrementalLearner が線形回帰モデル (RegressionLinear) を変換

線形 SVM 回帰

最小二乗

どの作成方法を選択するかは、所有している情報や求めるものによって異なります。

  • モデル変換: 従来式の学習済みモデルをインクリメンタル学習器に変換して、インクリメンタル学習用にモデルを初期化します。incrementalLearner は、最適化された係数の推定値、データ特性、および適用可能なハイパーパラメーター値を含む、データから学習させた従来式の学習済みモデルの情報を渡します。ただし、従来式の学習済みモデルを変換するには、モデルをあてはめるためのラベル付きデータのセットがなければなりません。

    incrementalLearner を使用するときに指定できるのは、すべての性能評価オプションと、変換時には未知である、学習、モデル、およびデータのオプションのみです。詳細は、従来式の学習済みモデルの変換を参照してください。

  • オブジェクト呼び出し: オブジェクトを直接呼び出して、指定に合わせてインクリメンタル モデルを作成します。この方法には柔軟性があります。目的に合わせてほとんどのオプションを自由に指定でき、モデルは適切な既定値を提供します。ただし、指定によっては評価期間が必要になる場合があります。

    詳細は、従来式の学習済みモデルの変換を参照してください。

次の構成については、選択したインクリメンタル モデルの作成方法に関わりなく、検討する必要があります。

  • 線形モデル タイプ (SVM モデルなど)

  • 線形モデル係数の初期値

  • 目的関数ソルバー (標準 SGD など)

  • ソルバーのハイパーパラメーター値 (SGD ソルバーの学習率など)

  • モデルの性能評価設定 (測定するパフォーマンス メトリクスなど)

オブジェクトの直接呼び出し

他の機械学習モデル オブジェクトとは異なり、インクリメンタル学習モデルは、データについての知識がまったくなくても、対応するオブジェクトを直接呼び出すことで作成できます。モデルを直接作成するために必要な唯一の情報は、機械学習の問題が分類または回帰のどちらであるかということです。たとえば、次のコードは線形回帰用の既定のインクリメンタル モデルを作成します。

Mdl = incrementalRegressionLinear();

指定するデータについての情報がある場合、または線形モデル、ハイパーパラメーター、ソルバー、または性能評価の設定を構成する場合は、オブジェクトを呼び出すときに名前と値のペアの引数を使用します (すべてのモデル プロパティは読み取り専用です。ドット表記を使用して調整することはできません)。たとえば、次の疑似コードは、バイナリ分類用のインクリメンタル ロジスティック回帰モデルを作成し、線形モデル係数 Beta およびバイアス Bias (問題の事前知識から取得) を初期化し、パフォーマンス メトリクスのウォームアップを 500 個の観測値に設定します。

Mdl = incrementalClassificationLinear('Learner','logistic',...
    'Beta',Beta,'Bias',Bias,'MetricsWarmupPeriod',500);

以下の表では、インクリメンタル学習の重要な要素に関するオプションの主なものを簡単に説明しています。すべてのオプションの詳細については、incrementalRegressionLinear または incrementalClassificationLinear を参照してください。

モデル オプションおよびデータ プロパティ

次の表は、主なモデル オプションとデータ特性です。

名前説明
'Beta'インクリメンタル近似の初期値としても機能する線形係数
'Bias'インクリメンタル近似の初期値としても機能するモデル切片
'ClassNames'分類用。観測ラベルの予想クラス名
'Learner'線形 SVM や最小二乗などのモデル タイプ。

予測とモデル損失を生成するには、モデル係数を Beta に格納し、Bias プロパティを指定しなければなりません。さらに、分類問題では、ClassNames プロパティに格納されている両方のクラス名を指定しなければなりません。

学習およびソルバーのオプションとプロパティ

次の表は、学習およびソルバーの主なオプションとプロパティです。

名前説明
'EstimationPeriod'事前学習の推定期間
'Solver'目的関数の最適化アルゴリズム
'Standardize'予測子データを標準化するためのフラグ
'Lambda'リッジ ペナルティ。SGD 最適化のために調整が必要なモデルのハイパーパラメーター
'BatchSize'ミニバッチ サイズ。SGD ハイパーパラメーター
'LearnRate'学習率。SGD ハイパーパラメーター
'Mu'予測子変数の平均が格納される読み取り専用プロパティ
'Sigma'予測子変数の標準偏差が格納される読み取り専用プロパティ

EstimationPeriod で観測値の数で指定される推定期間は、学習が始まる前に置かれます (インクリメンタル学習の期間を参照)。推定期間中、インクリメンタル近似関数 fit および updateMetricsAndFit は、未知の場合に必要な学習量を計算します。たとえば、'Standardize',true を設定した場合、インクリメンタル学習関数は、予測子データを標準化するために予測子の平均および標準偏差を必要とします。その結果、インクリメンタル モデルには推定期間が必要になります (既定値は 1000)。

既定のソルバーは、適応型スケール不変ソルバー 'scale-invariant' [2]です。これにはハイパーパラメーターがなく、予測子変数のスケールの影響を受けないため、予測子データの標準化は必要ありません。代わりに、標準 SGD ('sgd') または平均化 SGD ('asgd') を指定できますが、SGD は予測子変数のスケールの影響を受けやすく、ハイパーパラメーター調整が必要なため、インクリメンタル学習中は実行が困難または不可能です。SGD ソルバーを設定する場合は次のようにします。

  1. ラベル付きデータを取得します。

  2. fitclinear または fitrlinear をそれぞれ呼び出して、従来式で線形分類モデルまたは回帰モデルに学習させます。インクリメンタル学習に使用する SGD ソルバーを指定し、交差検証を行って適切なハイパーパラメーターのセットを決定し、予測子データを標準化します。

  3. 目的のハイパーパラメーターのセットを使用して、標本全体でモデルに学習させます。

  4. incrementalLearner を使用して、結果のモデルをインクリメンタル学習器に変換します。

性能評価のオプションとプロパティ

性能評価のプロパティとオプションを使用して、モデルの性能をインクリメンタル関数 updateMetrics または updateMetricsAndFit で測定する方法とタイミングを構成できます。どのオプションを選択するとしても、インクリメンタル学習の期間についてまず理解するようにしてください。

次の表は、性能評価のすべてのオプションとプロパティを示しています。

名前説明
'Metrics'漸増的に測定するパフォーマンス メトリクスまたは損失関数のリスト
'MetricsWarmupPeiod'パフォーマンス メトリクスを追跡する前にあてはめられていなければならないインクリメンタル モデルの観測値の数
'MetricsWindowSize'予測子データを標準化するためのフラグ
'IsWarm'モデルがウォームであるどうかを示す読み取り専用プロパティ (パフォーマンス メトリクスを測定)
'Metrics'追跡されたウィンドウ メトリクスと累積メトリクスの table が格納される読み取り専用プロパティ

名前と値のペア 'Metrics' で指定されたメトリクスは、モデルの Metrics プロパティに格納された table を形成します。たとえば、インクリメンタル モデル Mdl を作成するときに 'Metrics',["Metric1" "Metric2"] を指定した場合、Metrics プロパティは次のようになります。

>> Mdl.Metrics

ans =

  2×2 table
                Cumulative    Window
                __________    ______

    Metric1        NaN         NaN
    Metric2        NaN         NaN  

モデルの品質が低下するなど、関数 updateMetrics または updateMetricsAndFitMetrics プロパティのパフォーマンス メトリクスを追跡する前に学習させる必要がある場合は、メトリクスのウォームアップを指定します。この場合、IsWarm プロパティは false となり、インクリメンタル近似関数 fit または updateMetricsAndFit に入力データとモデルを渡さなければなりません。

インクリメンタル近似関数が十分なデータを処理して、推定期間およびメトリクスのウォームアップ期間が完了すると、IsWarm プロパティが true になり、入力データでモデルの性能を測定したり、オプションでモデルに学習させたりできるようになります。

モデルがウォームである場合、updateMetrics および updateMetricsAndFit は、指定されたすべてのメトリクスを、(評価の開始時から) 累積的に、名前と値のペアの引数 'MetricsWindowSize' で指定された観測値のウィンドウで追跡します。累積メトリクスには、インクリメンタル学習の履歴全体にわたるモデルの性能が反映されます。性能評価期間 1 の開始後、累積メトリクスは評価期間に依存しません。ウィンドウ メトリクスには、指定したウィンドウ サイズにおける、各性能評価期間のモデルの性能が反映されます。

従来式の学習済みモデルの変換

incrementalLearner では、従来式の学習済みモデルから学習した情報を使用して、インクリメンタル モデルを初期化できます。変換モデルは予測を生成でき、ウォームです。これは、インクリメンタル学習関数がデータ ストリームの最初からモデルのパフォーマンス メトリクスを測定できることを意味します。つまり、インクリメンタル学習のために、推定期間およびパフォーマンス メトリクスのウォームアップ期間は必要ありません。

従来式の学習済みモデルをインクリメンタル学習器に変換するには、incrementalLearner に、モデル、および名前と値のペアの引数で指定したその他のオプションを渡します。たとえば、次の疑似コードは、バイナリ分類用の線形 SVM モデルがデータのバッチから学習したすべての情報でインクリメンタル分類モデルを初期化します。

Mdl = fitcsvm(X,Y);
IncrementalMdl = incrementalLearner(Mdl,Name,Value);

IncrementalMdl は、学習問題に関連付けられたインクリメンタル学習器オブジェクトです。

インクリメンタル モデルの作成と初期化の容易さは、柔軟性とトレードオフの関係にあります。ソフトウェアは、従来の学習で学習された推定係数、ハイパーパラメーター値、およびデータ特性がインクリメンタル学習にも適切であることを前提としています。そのため、incrementalLearner を呼び出すときに、対応する学習済みのオプションまたは調整済みのオプションを設定することはできません。以下の表は、incrementalLearnerMdl から転送する、またはその関数が他の値から推論する IncrementalMdl の主な読み取り専用プロパティを示しています。

プロパティ説明
Beta線形モデル係数
Biasモデルの切片
ClassNames分類問題用。バイナリ分類のクラス ラベル
EpsilonSVM 回帰学習器用。イプシロン不感応区間の幅の半分
Learner線形モデルのタイプ
MuSVM モデル オブジェクト用。予測子変数の平均
NumPredictors予測子変数の数。カテゴリカル予測子変数をダミー コード化するモデルの場合、NumPredictorsnumel(Mdl.ExpandedPredictorNames) であり、インクリメンタル学習中に予期される予測子変数は名前に対応します。詳細は、ダミー変数を参照してください。
Prior分類問題用。前のクラス ラベルの分布
ResponseTransform回帰問題用。予測された応答に適用する関数
ScoreTransform

分類問題用。分類スコアに適用する関数。たとえば、事後クラス確率を計算するように SVM モデルを構成する場合、データから学習したスコアから事後確率への変換関数が ScoreTransform に格納され、転送されます。

SigmaSVM モデル オブジェクト用。予測子変数の標準偏差

メモ

  • IncrementalMdlNumTrainingObservations プロパティには、Mdl の学習に使用した観測値は含まれません。

  • Mdl に学習させるときに 'Standardize',true を指定した場合、IncrementalMdl は既定で、インクリメンタル学習中に予測子を標準化するように構成されます。

線形分類モデルまたは回帰モデル (それぞれ ClassificationLinear または RegressionLinear) の変換には、次の条件が適用されます。

  • インクリメンタル近似関数はリッジ (L2) 正則化のみをサポートします。

  • インクリメンタル近似関数では、正則化値を 1 つのみ指定できます。そのため、fitclinear または fitrlinear を呼び出すときに正則化パス (正則化値のベクトル) を指定する場合、それを selectModels に渡して、1 つのペナルティに関連付けられているモデルを選択するようにします。

  • 標準 SGD または平均化 SGD (名前と値のペアの引数 'Solver''sgd' または 'asgd') を使用して目的関数を解決する場合、incrementalLearner を呼び出すときに次の条件が適用されます。

    • incrementalLearner は、Mdl の最適化に使用されるソルバーを IncrementalMdl に転送します。

    • 適応型スケール不変ソルバー 'scale-invariant' を代わりに指定できますが、別の SGD ソルバーを指定することはできません。

    • 適応型スケール不変ソルバーを指定しない場合、incrementalLearner は、学習率 LearnRate、ミニバッチ サイズ BatchSize、およびリッジ ペナルティ Lambda などのモデルとソルバーのハイパーパラメーター値をインクリメンタル モデル オブジェクトに転送します。転送されたプロパティは変更不可です。

インクリメンタル モデルを作成するにあたってさらに柔軟性が必要な場合は、オブジェクトを直接呼び出し、名前と値のペアの引数を使用して学習済みの情報を個別に設定してモデルを初期化します。以下の疑似コードは次の 2 つの例を示しています。

  • バイナリ分類の線形 SVM モデルをデータのバッチ Xc および Yc にあてはめて学習させた係数とクラス名から、インクリメンタル分類モデルを初期化します。

  • 線形モデルをデータのバッチ Xr および Yr にあてはめて学習させた係数から、インクリメンタル回帰モデルを初期化します。

% Classification
Mdl = fitcsvm(Xc,Yc);
IncrementalMdl = incrementalClassificationLinear('Beta',Mdl.Beta,...
    'Bias',Mdl.Bias,'ClassNames',Mdl.ClassNames);

% Regression
Mdl = fitlm(Xr,Yr);
Bias = Mdl.Coefficients.Estimate(1);
Beta = Mdl.Coefficients.Estimate(2:end);
IncrementalMdl = incrementalRegressionLinear('Learner','leastsquares',...
    'Bias',Bias,'Beta',Beta);

参照

[1] Bifet, Albert, Ricard Gavaldá, Geoffrey Holmes, and Bernhard Pfahringer. Machine Learning for Data Streams with Practical Example in MOA. Cambridge, MA: The MIT Press, 2007.

[2] Kempka, Michał, Wojciech Kotłowski, and Manfred K. Warmuth. "Adaptive Scale-Invariant Online Algorithms for Learning Linear Models." CoRR (February 2019). https://arxiv.org/abs/1902.07528.

参考

オブジェクト

関数