incrementalClassificationLinear
インクリメンタル学習用のバイナリ分類線形モデル
説明
incrementalClassificationLinear は incrementalClassificationLinear モデル オブジェクトを作成します。これは、インクリメンタル学習用のバイナリ分類線形モデルを表します。サポートされる学習器には、サポート ベクター マシン (SVM) とロジスティック回帰が含まれます。
他の Statistics and Machine Learning Toolbox™ モデル オブジェクトとは異なり、incrementalClassificationLinear は直接呼び出すことができます。また、モデルをデータに当てはめる前に、パフォーマンス メトリクス構成、パラメーター値、および目的ソルバーなどの学習オプションを指定できます。incrementalClassificationLinear オブジェクトを作成すると、インクリメンタル学習用に準備されます。
incrementalClassificationLinear は、インクリメンタル学習に最適です。バイナリ分類用の SVM または線形モデルに学習させるための従来のアプローチ (データへの当てはめによるモデルの作成、交差検証の実行、ハイパーパラメーターの調整など) については、fitcsvm または fitclinear を参照してください。マルチクラスのインクリメンタル学習については、incrementalClassificationECOC および incrementalClassificationNaiveBayes を参照してください。
作成
incrementalClassificationLinear モデル オブジェクトは、次のいくつかの方法で作成できます。
関数の直接呼び出し — インクリメンタル学習オプションを構成するか、
incrementalClassificationLinearを直接呼び出して、線形モデル パラメーターとハイパーパラメーターの初期値を指定します。このアプローチは、データがまだない場合やインクリメンタル学習をすぐに開始したい場合に最適です。従来式の学習済みモデルの変換 — 学習済みモデル オブジェクトのモデル係数およびハイパーパラメーターを使用して、インクリメンタル学習用のバイナリ分類線形モデルを初期化するには、従来式の学習済みモデルを関数
incrementalLearnerに渡してincrementalClassificationLinearモデル オブジェクトに変換できます。この表には、適切なリファレンス ページへのリンクが含まれています。変換可能なモデル オブジェクト 変換関数 ClassificationSVMまたはCompactClassificationSVMincrementalLearnerClassificationLinearincrementalLearnerテンプレート オブジェクトの変換 — テンプレート オブジェクトを関数
incrementalLearnerに渡してincrementalClassificationLinearモデル オブジェクトに変換できます。この表には、適切なリファレンス ページへのリンクが含まれています。変換可能なテンプレート オブジェクト 変換関数 templateSVMincrementalLearnertemplateLinearincrementalLearnerインクリメンタル学習関数の呼び出し —
fit、updateMetrics、およびupdateMetricsAndFitは、構成済みのincrementalClassificationLinearモデル オブジェクトおよびデータを入力として受け入れ、入力モデルとデータから学習した情報で更新されたincrementalClassificationLinearモデル オブジェクトを返します。
説明
は、バイナリ線形分類用の既定のインクリメンタル学習モデル オブジェクト Mdl = incrementalClassificationLinear()Mdl を返します。既定のモデルのプロパティには、未知のモデル パラメーター用のプレースホルダーが含まれています。既定のモデルは、パフォーマンスを追跡したり、予測を生成したりする前に学習させなければなりません。
は、名前と値の引数を使用して、プロパティと追加のオプションを設定します。それぞれの名前は引用符で囲みます。たとえば、Mdl = incrementalClassificationLinear(Name=Value)incrementalClassificationLinear(Beta=[0.1 0.3],Bias=1,MetricsWarmupPeriod=100) は、線形モデル係数 β のベクトルを [0.1 0.3] に、バイアス β0 を 1 に、およびメトリクスのウォームアップ期間を 100 に設定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: Standardize=true は、推定期間中に推定された予測子の平均と標準偏差を使用して、予測子データを標準化します。
インクリメンタル学習中に追跡するモデルのパフォーマンス メトリクス。組み込みの損失関数の名前、名前の string ベクトル、関数ハンドル (@metricName)、関数ハンドルの構造体配列、または名前、関数ハンドル、構造体配列の cell ベクトルとして指定します。
Mdl が "ウォーム" のとき (IsWarm を参照)、updateMetrics および updateMetricsAndFit は Mdl の Metrics プロパティのパフォーマンス メトリクスを追跡します。
次の表は、組み込みの損失関数名の一覧です。string ベクトルを使用して、複数指定できます。
| 名前 | 説明 |
|---|---|
"binodeviance" | 二項分布からの逸脱度 |
"classiferror" | 分類誤差 |
"exponential" | 指数 |
"hinge" | ヒンジ |
"logit" | ロジスティック |
"quadratic" | 2 次 |
組み込み損失関数の詳細については、loss を参照してください。
例: 'Metrics',["classiferror" "hinge"]
パフォーマンス メトリクスを返すカスタム関数を指定するには、関数ハンドル表記を使用します。関数は次の形式でなければなりません。
metric = customMetric(C,S)
出力引数
metricは n 行1列の数値ベクトルです。ここで、各要素は、学習サイクル中にインクリメンタル学習関数によって処理されたデータの対応する観測値の損失です。関数名 (
customMetric) を指定します。Cは n 行2列の logical 行列であり、対応する観測値が属するクラスを各行が示します。列の順序はClassNamesプロパティのクラスの順序に対応します。Cを作成するには、指定されたデータの各観測値について観測値がクラスpに属する場合にqC(=p,q)1を設定します。行の他の要素をp0に設定します。Sは、予測分類スコアの n 行2列の数値行列です。Sはpredictの出力scoreに似ています。ここで、行はデータの観測値に対応し、列の順序はClassNamesプロパティのクラスの順序に対応しています。S(は、クラスp,q)に分類されている観測値qの分類スコアです。p
複数のカスタム メトリクスを指定し、それぞれにカスタム名を割り当てるには、構造体配列を使用します。組み込みメトリクスとカスタム メトリクスの組み合わせを指定するには、cell ベクトルを使用します。
例: 'Metrics',struct('Metric1',@customMetric1,'Metric2',@customMetric2)
例: 'Metrics',{@customMetric1 @customMetric2 'logit' struct('Metric3',@customMetric3)}
updateMetrics および updateMetricsAndFit は、table で指定したメトリクスを Metrics プロパティに保存します。Metrics のデータ型によって、table の行名が決まります。
'Metrics' 値のデータ型 | Metrics プロパティの行名の説明 | 例 |
|---|---|---|
| string または文字ベクトル | 対応する組み込みメトリクスの名前 | "classiferror" の行名は "ClassificationError" |
| 構造体配列 | フィールド名 | struct('Metric1',@customMetric1) の行名は "Metric1" |
| プログラム ファイルに格納されている関数への関数ハンドル | 関数名 | @customMetric の行名は "customMetric" |
| 無名関数 | CustomMetric_。ここで、 は Metrics のメトリクス | @(C,S)customMetric(C,S)... の行名は CustomMetric_1 |
パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。
データ型: char | string | struct | cell | function_handle
各反復での観測値のシャッフル フラグ。次の表の値として指定します。
| 値 | 説明 |
|---|---|
true | ソフトウェアが、関数 fit でモデルを当てはめる前に、データの入力チャンク内の観測値をシャッフルします。このアクションにより、抽出スキームによって誘発されるバイアスが低減されます。 |
false | ソフトウェアが、受信した順序でデータを処理します。 |
このオプションは、Solver が 'scale-invariant' である場合のみ有効です。Solver が 'sgd' または 'asgd' である場合は、データを処理する前に、データの入力チャンク内の観測値が常にシャッフルされます。
例: 'Shuffle',false
データ型: logical
プロパティ
ほとんどのプロパティは、incrementalClassificationLinear を呼び出すときに名前と値の引数の構文のみを使用して直接設定できます。incrementalLearner を呼び出して従来式の学習済みモデル オブジェクトまたはモデル テンプレート オブジェクトに変換するときに、いくつかのプロパティを設定できます。プロパティ FittedLoss、NumTrainingObservations、Mu、Sigma、SolverOptions、および IsWarm は設定できません。
分類モデルのパラメーター
この プロパティ は読み取り専用です。
線形モデル係数 β。NumPredictors 行 1 列の数値ベクトルとして指定します。
インクリメンタル近似関数は学習中に Beta を推定します。Beta の既定の初期値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデル オブジェクトまたはテンプレート モデル オブジェクトを変換して
Mdlを作成する場合、初期値はオブジェクトの対応するプロパティによって指定されます。それ以外の場合、初期値は
zeros(NumPredictors,1)です。
データ型: single | double
この プロパティ は読み取り専用です。
モデル切片 β0 またはバイアス項。数値スカラーとして指定します。
インクリメンタル近似関数は学習中に Bias を推定します。Bias の既定の初期値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデル オブジェクトまたはテンプレート モデル オブジェクトを変換して
Mdlを作成する場合、初期値はオブジェクトの対応するプロパティによって指定されます。それ以外の場合、初期値は
0です。
データ型: single | double
この プロパティ は読み取り専用です。
モデルの学習に使用される一意のクラス ラベル。categorical 配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。ClassNames と応答データは同じデータ型でなければなりません。(string 配列は文字ベクトルの cell 配列として扱われます)。
ClassNames の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、ClassNamesは従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、インクリメンタル近似関数は学習中に
ClassNamesを推測します。
データ型: single | double | logical | char | string | cell | categorical
この プロパティ は読み取り専用です。
線形モデルの当てはめに使用する損失関数。'hinge' または 'logit' を指定します。
| 値 | アルゴリズム | 損失関数 | Learner の値 |
|---|---|---|---|
'hinge' | サポート ベクター マシン | ヒンジ: | 'svm' |
'logit' | ロジスティック回帰 | 逸脱度 (ロジスティック): | 'logistic' |
この プロパティ は読み取り専用です。
線形分類モデルのタイプ。'svm' または 'logistic' として指定します。incrementalClassificationLinear は Learner 値を文字ベクトルとして格納します。
次の表では です。
β は p 個の係数のベクトルです。
x は p 個の予測子変数による観測値です。
b はスカラー バイアスです。
| 値 | アルゴリズム | 損失関数 | FittedLoss の値 |
|---|---|---|---|
'svm' | サポート ベクター マシン | ヒンジ: | 'hinge' |
'logistic' | ロジスティック回帰 | 逸脱度 (ロジスティック): | 'logit' |
Learner の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済み SVM 分類モデル オブジェクト (
ClassificationSVMまたはCompactClassificationSVM) か SVM モデル テンプレート オブジェクト (templateSVMから返されるオブジェクト) を変換してMdlを作成する場合、Learnerは'svm'になります。従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) か線形分類モデル テンプレート オブジェクト (templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、Learnerはオブジェクトの対応するプロパティによって指定されます。それ以外の場合、既定値は
'svm'です。
データ型: char | string
この プロパティ は読み取り専用です。
予測子変数の数。非負の数値スカラーとして指定します。
NumPredictors の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、NumPredictorsは従来式の学習済みモデルの対応するプロパティによって指定されます。incrementalClassificationLinearを直接呼び出してMdlを作成する場合、NumPredictorsは名前と値の引数の構文を使用して指定できます。それ以外の場合、既定値は
0で、インクリメンタル近似関数は学習中に予測子データからNumPredictorsを推測します。
データ型: double
この プロパティ は読み取り専用です。
インクリメンタル モデル Mdl に当てはめる観測値の数。非負の数値スカラーとして指定します。NumTrainingObservations は、Mdl および学習データを fit または updateMetricsAndFit に渡すときに増加します。
メモ
従来式の学習済みモデルを変換して Mdl を作成する場合、incrementalClassificationLinear は、従来式の学習済みモデルに当てはめる観測値の数を NumTrainingObservations に追加しません。
データ型: double
この プロパティ は読み取り専用です。
クラスの事前確率。'empirical'、'uniform'、または数値ベクトルとして指定します。incrementalClassificationLinear は Prior 値を数値ベクトルとして格納します。
| 値 | 説明 |
|---|---|
'empirical' | インクリメンタル学習関数が、インクリメンタル学習中 (推定期間 EstimationPeriod の後) に応答データで観測されたクラスの相対頻度から事前クラス確率を推定します。 |
'uniform' | 各クラスの事前確率を 1/2 とします。 |
| 数値ベクトル | 正規化されたカスタム事前確率。Prior の要素の順序は ClassNames プロパティの要素に対応します。 |
Prior の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、Priorは従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、既定値は
'empirical'です。
データ型: single | double | char | string
この プロパティ は読み取り専用です。
インクリメンタル学習関数が生の応答値を変換する方法を記述するスコア変換関数。文字ベクトル、string スカラー、または関数ハンドルとして指定します。incrementalClassificationLinear は ScoreTransform 値を文字ベクトルまたは関数ハンドルとして格納します。
次の表は、スコア変換で使用可能な組み込み関数の一覧です。
| 値 | 説明 |
|---|---|
"doublelogit" | 1/(1 + e–2x) |
"invlogit" | log(x / (1 – x)) |
"ismax" | 最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを 0 に設定する |
"logit" | 1/(1 + e–x) |
"none" または "identity" | x (変換なし) |
"sign" | x < 0 のとき –1 x = 0 のとき 0 x > 0 のとき 1 |
"symmetric" | 2x – 1 |
"symmetricismax" | 最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを –1 に設定する |
"symmetriclogit" | 2/(1 + e–x) – 1 |
MATLAB® 関数やユーザー定義関数の場合は、関数ハンドルを入力します。たとえば、'ScoreTransform',@function では次のようになります。
functionは n 行2列の行列 (元のスコア) を受け入れ、同じサイズの行列 (変換されたスコア) を返します。列の順序はClassNamesプロパティのクラスの順序に対応します。n は観測値の数であり、行列の行 j には、観測値 j のクラス スコアが格納されます。
ScoreTransform の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、ScoreTransformは従来式の学習済みモデルの対応するプロパティによって指定されます。たとえば、従来式の学習済みモデルのScoreTransformプロパティがスコアから事後確率への変換関数である場合、fitPosteriorまたはfitSVMPosteriorによって計算されるものとして、Mdl.ScoreTransformは無名関数を含みます。それ以外の場合、既定値は
'none'(Learnerが'svm'の場合) または'logit'(Learnerが'logistic'の場合) です。
データ型: char | string | function_handle
学習パラメーター
この プロパティ は読み取り専用です。
ハイパーパラメーターの推定のために、パフォーマンス メトリクスの学習または追跡の前にインクリメンタル モデルが処理する観測値の数。非負の整数として指定します。
メモ
Mdlをインクリメンタル学習用に準備する場合 (学習に必要なすべてのハイパーパラメーターを指定する必要があります)、incrementalClassificationLinearはEstimationPeriodを0に強制します。Mdlをインクリメンタル学習用に準備しない場合、incrementalClassificationLinearはEstimationPeriodを1000に設定します。
詳細は、推定期間を参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
線形モデルの切片使用フラグ。true または false として指定します。
| 値 | 説明 |
|---|---|
true | incrementalClassificationLinear は、バイアス項 β0 を、インクリメンタル近似関数がデータに当てはめる線形モデルに含めます。 |
false | incrementalClassificationLinear は β0 = 0 に設定します。 |
Bias ≠ 0 の場合、FitBias は true でなければなりません。つまり、incrementalClassificationLinear は β0 の等式制約をサポートしません。
FitBias の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) を変換してMdlを作成する場合、FitBiasは従来式の学習済みモデルのModelParametersプロパティのFitBias値によって指定されます。線形モデル テンプレート オブジェクト (
templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、FitBiasはオブジェクトの対応するプロパティによって指定されます。それ以外の場合、既定値は
trueです。
データ型: logical
この プロパティ は読み取り専用です。
予測子の平均。数値ベクトルを指定します。
Mu が空の配列 [] で、'Standardize',true が指定されている場合、インクリメンタル近似関数は、Mu を EstimationPeriod で指定された推定期間中に推定された予測子変数の平均に設定します。
Mu を直接指定することはできません。
データ型: single | double
この プロパティ は読み取り専用です。
予測子の標準偏差。数値ベクトルを指定します。
Sigma が空の配列 [] で、'Standardize',true が指定されている場合、インクリメンタル近似関数は、Sigma を EstimationPeriod で指定された推定期間中に推定された予測子変数の標準偏差に設定します。
Sigma を直接指定することはできません。
データ型: single | double
この プロパティ は読み取り専用です。
目的関数の最小化手法。'scale-invariant'、'sgd' または 'asgd' を指定します。incrementalClassificationLinear は Solver 値を文字ベクトルとして格納します。
| 値 | 説明 | メモ: |
|---|---|---|
'scale-invariant' |
| |
'sgd' | 確率的勾配降下法 (SGD) [3][2] |
|
'asgd' | 平均化確率的勾配降下法 (ASGD) [4] |
|
Solver の既定値は、モデルの作成方法に応じて異なります。
incrementalClassificationLinearを直接呼び出してMdlを作成する場合、既定値は'scale-invariant'です。従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) または線形モデル テンプレート オブジェクト (templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、Mdlは同じソルバーを使用します。(従来式の学習済みモデル (たとえば
TTMdl) のSolverの値はTTMdl.ModelParameters.Solverで確認できます。モデル テンプレート オブジェクトについては、コマンド ウィンドウまたは変数エディターでオブジェクトを表示してSolverの値を確認できます。)それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数Solverで行います。この引数の既定値は'scale-invariant'です。
データ型: char | string
この プロパティ は読み取り専用です。
目的ソルバーの構成。構造体配列として指定します。SolverOptions のフィールドは、指定したソルバー Solver 固有のプロパティです。
データ型: struct
SGD および ASGD ソルバーのパラメーター
この プロパティ は読み取り専用です。
ミニバッチのサイズ。正の整数として指定します。学習中の各学習サイクルで、incrementalClassificationLinear は BatchSize 個の観測値を使用して劣勾配を計算します。
最後のミニバッチ (fit または updateMetricsAndFit の各関数呼び出しにおける最後の学習サイクル) に使用する観測値の数は、BatchSize より小さくてもかまいません。たとえば、fit または updateMetricsAndFit に 25 個の観測値を指定した場合、関数は最初の 2 つの学習サイクルに 10 個の観測値を使用し、最後の学習サイクルに 5 の観測値を使用します。
BatchSize の既定値は、モデルの作成方法に応じて異なります。
incrementalClassificationLinearを直接呼び出してMdlを作成する場合、既定値は10です。従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、BatchSizeは従来式の学習済みモデルのModelParametersプロパティのBatchSize値によって指定されます。線形モデル テンプレート オブジェクト (
templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、BatchSizeはオブジェクトの対応するプロパティによって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数BatchSizeで行います。この引数の既定値は10です。
データ型: single | double
この プロパティ は読み取り専用です。
リッジ (L2) 正則化項の強度。非負のスカラーとして指定します。
Lambda の既定値は、モデルの作成方法に応じて異なります。
incrementalClassificationLinearを直接呼び出してMdlを作成する場合、既定値は1e-5です。従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) または線形モデル テンプレート オブジェクト (templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、Lambdaはオブジェクトの対応するプロパティによって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数Lambdaで行います。この引数の既定値は1e-5です。
データ型: double | single
この プロパティ は読み取り専用です。
初期学習率。'auto' または正のスカラーとして指定します。incrementalClassificationLinear は LearnRate 値を数値スカラーとして格納します。
学習率は、目的の劣勾配をスケールすることによって最適化のステップ サイズを制御します。LearnRate は学習率の初期値を指定し、LearnRateSchedule によって後続の学習サイクルの学習率が決まります。
'auto' を指定した場合、次のようになります。
初期学習率は
0.7となります。EstimationPeriod>0の場合、fitおよびupdateMetricsAndFitは、EstimationPeriodの最後にこの比率を1/sqrt(1+max(sum(X.^2,obsDim)))に変更します。obsDimの値は、観測値が推定期間に収集された予測子データXの列である場合は1、それ以外の場合は2です。
LearnRate の既定値は、モデルの作成方法に応じて異なります。
incrementalClassificationLinearを直接呼び出してMdlを作成する場合、既定値は'auto'です。従来式の学習済み線形分類モデル オブジェクト (
ClassificationLinear) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、LearnRateは従来式の学習済みモデルのModelParametersプロパティのLearnRate値によって指定されます。線形モデル テンプレート オブジェクト (
templateLinearから返されるオブジェクト) を変換してMdlを作成する場合、そのオブジェクトでリッジ正則化と SGD または ASGD ソルバーが使用されていると、LearnRateはオブジェクトの対応するプロパティによって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数LearnRateで行います。この引数の既定値は'auto'です。
データ型: single | double | char | string
この プロパティ は読み取り専用です。
学習率スケジュール。'decaying' または 'constant' として指定します。ここで、LearnRate は初期学習率 ɣ0 を指定します。incrementalClassificationLinear は LearnRateSchedule 値を文字ベクトルとして格納します。
| 値 | 説明 |
|---|---|
'constant' | すべての学習サイクルの学習率を ɣ0 とする。 |
'decaying' | 学習サイクル t での学習率を次とする。
|
LearnRateSchedule の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデル オブジェクトまたはテンプレート モデル オブジェクトを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数LearnRateScheduleで行います。この引数の既定値は'decaying'です。それ以外の場合、既定値は
'decaying'です。
データ型: char | string
パフォーマンス メトリクス パラメーター
この プロパティ は読み取り専用です。
インクリメンタル モデルがパフォーマンス メトリクスを追跡するかどうかを示すフラグ。logical 0 (false) または 1 (true) として指定します。
インクリメンタル モデル Mdl は、インクリメンタル近似関数が (EstimationPeriod + MetricsWarmupPeriod) 個の観測値をインクリメンタル モデルに当てはめた後、"ウォーム" (IsWarm が true となる) になります。
| 値 | 説明 |
|---|---|
true または 1 | インクリメンタル モデル Mdl がウォームです。この結果、updateMetrics および updateMetricsAndFit が Mdl の Metrics プロパティのパフォーマンス メトリクスを追跡します。 |
false または 0 | updateMetrics および updateMetricsAndFit はパフォーマンス メトリクスを追跡しません。 |
データ型: logical
この プロパティ は読み取り専用です。
updateMetrics および updateMetricsAndFit によってインクリメンタル学習中に更新されたモデルのパフォーマンス メトリクス。m 行 2 列の table として指定します。ここで、m は、名前と値の引数 Metrics によって指定されたメトリクスの数です。
Metrics の列には Cumulative および Window のラベルが付けられます。
Cumulative:要素jは、メトリクスjで測定される、モデルがウォーム (IsWarmが1) になった時点からの、モデルの性能です。Window:要素jは、メトリクスjで測定され、MetricsWindowSizeプロパティで指定されたウィンドウ内のすべての観測値に対して評価される、モデルの性能です。ソフトウェアはMetricsWindowSize個の観測値を処理した後、Windowを更新します。
行には、指定したメトリクスのラベルが付けられます。詳細については、incrementalLearner または incrementalClassificationLinear の名前と値の引数 Metrics を参照してください。
データ型: table
この プロパティ は読み取り専用です。
インクリメンタル モデルが Metrics プロパティのパフォーマンス メトリクスを追跡する前に当てはめなければならない観測値の数。非負の整数として指定します。
MetricsWarmupPeriod の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数MetricsWarmupPeriodで行います。この引数の既定値は0です。それ以外の場合、既定値は
1000です。
詳細については、パフォーマンス メトリクスを参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
ウィンドウ パフォーマンス メトリクスの計算に使用する観測値の数。正の整数として指定します。
MetricsWindowSize の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数MetricsWindowSizeで行います。この引数の既定値は200です。それ以外の場合、既定値は
200です。
パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。
データ型: single | double
オブジェクト関数
fit | インクリメンタル学習用の線形モデルの学習 |
updateMetricsAndFit | 線形インクリメンタル学習モデルの新しいデータに基づくパフォーマンス メトリクスの更新とモデルの学習 |
updateMetrics | 線形インクリメンタル学習モデルの新しいデータに基づくパフォーマンス メトリクスの更新 |
loss | データのバッチでの線形インクリメンタル学習モデルの損失 |
predict | 線形インクリメンタル学習モデルからの新しい観測の応答予測 |
perObservationLoss | インクリメンタル学習用モデルの観測値ごとの分類誤差 |
reset | インクリメンタル分類モデルのリセット |
例
バイナリ分類用の既定のインクリメンタル線形 SVM モデルを作成します。
Mdl = incrementalClassificationLinear()
Mdl =
incrementalClassificationLinear
IsWarm: 0
Metrics: [1×2 table]
ClassNames: [1×0 double]
ScoreTransform: 'none'
Beta: [0×1 double]
Bias: 0
Learner: 'svm'
Properties, Methods
Mdl は incrementalClassificationLinear モデル オブジェクトです。そのプロパティはすべて読み取り専用です。
Mdl は、他の演算の実行に使用する前に、データに当てはめなければなりません。
人の行動のデータ セットを読み込みます。データをランダムにシャッフルします。
load humanactivity n = numel(actid); rng(1) % For reproducibility idx = randsample(n,n); X = feat(idx,:); Y = actid(idx);
データ セットの詳細については、コマンド ラインで Description を入力してください。
応答は、次の 5 つのクラスのいずれかになります。座る、立つ、歩く、走る、または踊る。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。
Y = Y > 2;
関数 updateMetricsAndFit を使用して、インクリメンタル モデルを学習データに当てはめます。50 個の観測値のチャンクを一度に処理して、データ ストリームをシミュレートします。各反復で次を行います。
50 個の観測値を処理します。
前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。
、累積メトリクス、およびウィンドウ メトリクスを保存し、インクリメンタル学習中にそれらがどのように進化するかを確認。
% Preallocation numObsPerChunk = 50; nchunk = floor(n/numObsPerChunk); ce = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta1 = zeros(nchunk+1,1); % Incremental learning for j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1); iend = min(n,numObsPerChunk*j); idx = ibegin:iend; Mdl = updateMetricsAndFit(Mdl,X(idx,:),Y(idx)); ce{j,:} = Mdl.Metrics{"ClassificationError",:}; beta1(j + 1) = Mdl.Beta(1); end
IncrementalMdl は、ストリーム内のすべてのデータで学習させた incrementalClassificationLinear モデル オブジェクトです。インクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFit は入力観測値でモデルの性能をチェックし、モデルをその観測値に当てはめます。
パフォーマンス メトリクスと が学習中にどのように進化するかを確認するには、それらを別々のタイルにプロットします。
t = tiledlayout(2,1); nexttile plot(beta1) ylabel('\beta_1') xlim([0 nchunk]) nexttile h = plot(ce.Variables); xlim([0 nchunk]) ylabel('Classification Error') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,ce.Properties.VariableNames) xlabel(t,'Iteration')

プロットは、updateMetricsAndFit が次を行うことを示しています。
をインクリメンタル学習のすべての反復で当てはめます。
パフォーマンス メトリクスをメトリクスのウォームアップ期間後にのみ計算します。
累積メトリクスを各反復中に計算します。
ウィンドウ メトリクスを 200 個の観測値 (4 回の反復) の処理後に計算します。
メトリクスのウォームアップ期間を指定して、インクリメンタル バイナリ SVM 学習器を準備します。その間、関数 updateMetricsAndFit はモデルの当てはめのみを行います。メトリクス ウィンドウ サイズを観測値 500 個に指定します。SGD を使用してモデルに学習させ、SGD バッチ サイズ、学習率、および正則化パラメーターを調整します。
人の行動のデータ セットを読み込みます。データをランダムにシャッフルします。
load humanactivity n = numel(actid); rng("default") % For reproducibility idx = randsample(n,n); X = feat(idx,:); Y = actid(idx);
データ セットの詳細については、コマンド ラインで Description を入力してください。
応答は、次の 5 つのクラスのいずれかになります。座る、立つ、歩く、走る、または踊る。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。
Y = Y > 2;
バイナリ分類用のインクリメンタル線形モデルを作成します。次のようにモデルを構成します。
インクリメンタル近似関数で生の (標準化されていない) 予測子データを処理するように指定します。
SGD ソルバーを指定します。
リッジ正則化パラメーター値 0.001、SGD バッチ サイズ 20、および学習率 0.002 で、問題に対して十分に機能すると仮定します。
メトリクスのウォームアップ期間を観測値 5000 個に指定します。
メトリクス ウィンドウ サイズを観測値 500 個に指定します。
分類およびヒンジ エラー メトリクスを追跡して、モデルの性能を測定します。
Mdl = incrementalClassificationLinear('Standardize',false, ... 'Solver','sgd','Lambda',0.001,'BatchSize',20,'LearnRate',0.002, ... 'MetricsWarmupPeriod',5000,'MetricsWindowSize',500, ... 'Metrics',{'classiferror' 'hinge'})
Mdl =
incrementalClassificationLinear
IsWarm: 0
Metrics: [2×2 table]
ClassNames: [1×0 double]
ScoreTransform: 'none'
Beta: [0×1 double]
Bias: 0
Learner: 'svm'
Properties, Methods
Mdl はインクリメンタル学習用に構成された incrementalClassificationLinear モデル オブジェクトです。
関数 updateMetricsAndFit を使用して、インクリメンタル モデルを残りのデータに当てはめます。各反復で次を行います。
50 個の観測値のチャンクを処理して、データ ストリームをシミュレートします。チャンクのサイズと SGD バッチ サイズは異なることに注意してください。
前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。
推定係数 、累積メトリクス、およびウィンドウ メトリクスを保存し、インクリメンタル学習中にそれらがどのように進化するかを確認します。
% Preallocation numObsPerChunk = 50; nchunk = floor(n/numObsPerChunk); ce = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); hinge = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta10 = zeros(nchunk+1,1); % Incremental fitting for j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1); iend = min(n,numObsPerChunk*j); idx = ibegin:iend; Mdl = updateMetricsAndFit(Mdl,X(idx,:),Y(idx)); ce{j,:} = Mdl.Metrics{"ClassificationError",:}; hinge{j,:} = Mdl.Metrics{"HingeLoss",:}; beta10(j + 1) = Mdl.Beta(10); end
Mdl は、ストリーム内のすべてのデータで学習させた incrementalClassificationLinear モデル オブジェクトです。インクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFit は入力観測値でモデルの性能をチェックし、モデルをその観測値に当てはめます。
パフォーマンス メトリクスと が学習中にどのように進化するかを確認するには、それらを別々のタイルにプロットします。
tiledlayout(2,2) nexttile plot(beta10) ylabel('\beta_{10}') xlim([0 nchunk]); xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') xlabel('Iteration') nexttile h = plot(ce.Variables); xlim([0 nchunk]); ylabel('Classification Error') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,ce.Properties.VariableNames) xlabel('Iteration') nexttile h = plot(hinge.Variables); xlim([0 nchunk]); ylabel('Hinge Loss') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,hinge.Properties.VariableNames) xlabel('Iteration')

プロットは、updateMetricsAndFit が次を行うことを示しています。
をインクリメンタル学習のすべての反復で当てはめます。
パフォーマンス メトリクスをメトリクスのウォームアップ期間後にのみ計算します。
累積メトリクスを各反復中に計算します。
ウィンドウ メトリクスを 500 個の観測値 (10 回の反復) の処理後に計算します。
fitclinear を使用してバイナリ分類用の線形モデルに学習させ、それをインクリメンタル学習器に変換し、その性能を追跡し、ストリーミング データに当てはめます。学習オプションを従来式からインクリメンタル学習に引き継ぎます。
データの読み込みと前処理
人の行動のデータ セットを読み込みます。データをランダムにシャッフルします。予測子データの観測値を列に配置します。
load humanactivity rng(1); % For reproducibility n = numel(actid); idx = randsample(n,n); X = feat(idx,:)'; Y = actid(idx);
データ セットの詳細については、コマンド ラインで Description を入力してください。
応答は、次の 5 つのクラスのいずれかになります。座る、立つ、歩く、走る、または踊る。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。
Y = Y > 2;
被験者がアイドル (Y = false) だったときの収集データが、被験者が移動していたときのデータの倍の品質であると仮定します。アイドルの被験者から収集した観測値に 2 を割り当て、移動している被験者から収集した観測値に 1 を割り当てる重み変数を作成します。
W = ones(n,1) + ~Y;
バイナリ分類用の線形モデルの学習
バイナリ分類用の線形モデルを、データの半分から取った無作為標本に当てはめます。
idxtt = randsample([true false],n,true); TTMdl = fitclinear(X(:,idxtt),Y(idxtt),'ObservationsIn','columns', ... 'Weights',W(idxtt))
TTMdl =
ClassificationLinear
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'none'
Beta: [60×1 double]
Bias: -0.1107
Lambda: 8.2967e-05
Learner: 'svm'
Properties, Methods
TTMdl は、バイナリ分類用の従来式の学習済み線形モデルを表す ClassificationLinear モデル オブジェクトです。
学習済みモデルの変換
従来式の学習済み分類モデルを、インクリメンタル学習用のバイナリ分類線形モデルに変換します。
IncrementalMdl = incrementalLearner(TTMdl)
IncrementalMdl =
incrementalClassificationLinear
IsWarm: 1
Metrics: [1×2 table]
ClassNames: [0 1]
ScoreTransform: 'none'
Beta: [60×1 double]
Bias: -0.1107
Learner: 'svm'
Properties, Methods
パフォーマンス メトリクスの追跡とモデルの当てはめの個別の実行
関数 updateMetrics および fit を使用して、残りのデータに対してインクリメンタル学習を実行します。50 個の観測値を一度に処理して、データ ストリームをシミュレートします。各反復で次を行います。
updateMetricsを呼び出し、観測値の入力チャンクを所与として、モデルの分類誤差の累積とウィンドウを更新します。前のインクリメンタル モデルを上書きして、Metricsプロパティ内の損失を更新します。関数がモデルをデータ チャンクに当てはめないことに注意してください。チャンクはモデルに対して "新しい" データです。観測値の向きを列方向に指定し、観測値の重みを指定します。fitを呼び出して、観測値の入力チャンクにモデルを当てはめます。前のインクリメンタル モデルを上書きして、モデル パラメーターを更新します。観測値の向きを列方向に指定し、観測値の重みを指定します。分類誤差と推定された最初の係数 を保存します。
% Preallocation idxil = ~idxtt; nil = sum(idxil); numObsPerChunk = 50; nchunk = floor(nil/numObsPerChunk); ce = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta1 = [IncrementalMdl.Beta(1); zeros(nchunk,1)]; Xil = X(:,idxil); Yil = Y(idxil); Wil = W(idxil); % Incremental fitting for j = 1:nchunk ibegin = min(nil,numObsPerChunk*(j-1) + 1); iend = min(nil,numObsPerChunk*j); idx = ibegin:iend; IncrementalMdl = updateMetrics(IncrementalMdl,Xil(:,idx),Yil(idx), ... 'ObservationsIn','columns','Weights',Wil(idx)); ce{j,:} = IncrementalMdl.Metrics{"ClassificationError",:}; IncrementalMdl = fit(IncrementalMdl,Xil(:,idx),Yil(idx), ... 'ObservationsIn','columns','Weights',Wil(idx)); beta1(j + 1) = IncrementalMdl.Beta(end); end
IncrementalMdl は、ストリーム内のすべてのデータで学習させた incrementalClassificationLinear モデル オブジェクトです。
あるいは、updateMetricsAndFit を使用して、新しいデータ チャンクに対するモデルのパフォーマンス メトリクスを更新し、モデルをデータに当てはめることもできます。
パフォーマンス メトリクスと推定された係数 のトレース プロットをプロットします。
t = tiledlayout(2,1); nexttile h = plot(ce.Variables); xlim([0 nchunk]) ylabel('Classification Error') legend(h,ce.Properties.VariableNames) nexttile plot(beta1) ylabel('\beta_1') xlim([0 nchunk]) xlabel(t,'Iteration')

累積の損失は安定しており徐々に減少しますが、ウィンドウの損失には急な変動があります。
はまず急激に変動した後、fit がより多くのチャンクを処理するにつれて徐々に平坦になります。
詳細
"インクリメンタル学習" ("オンライン学習") は、予測子変数の分布、予測関数や目的関数の素性 (調整パラメーターの値を含む)、観測値にラベル付けがされているか等についてほぼ知識が無い時に、データ ストリームから入ってくるデータを処理することに関係している機械学習の一分野です。従来の機械学習は、モデルへの当てはめに十分にラベル付けされたデータを使用でき、交差検証を実施してハイパーパラメーターを調整し、予測子の分布を推論するもので、インクリメンタル学習と異なります。
入力観測値に対し、インクリメンタル学習モデルは、次のいずれかの方法 (通常はこの順序) でデータを処理します。
ラベルを予測します。
予測性能を測定します。
モデルの構造的な破綻やドリフトについてチェックします。
入力観測値へモデルを当てはめます。
詳細については、インクリメンタル学習の概要を参照してください。
"インクリメンタル学習用の適応型スケール不変ソルバー" ([1]で紹介) は、線形予測モデルに学習させるための勾配降下法ベースの目的ソルバーです。ソルバーはハイパーパラメーターを持たず、予測子変数のスケールの違いの影響を受けず、予測子変数の分布の事前知識が不要です。これらの特徴は、インクリメンタル学習に適しています。
標準 SGD および ASGD ソルバーは、予測子変数間のスケールの違いの影響を受けやすいため、モデルの性能低下につながることがあります。SGD および ASGD を使用して精度を向上させるには、予測子データを標準化し、正則化と学習率のパラメーターを調整できます。従来の機械学習では、交差検証と予測子を標準化してハイパーパラメーター調整を行うのに十分なデータが利用できます。しかし、インクリメンタル学習の場合、十分なデータが利用できず (たとえば、観測値が一度に 1 つしか利用できない場合があります)、予測子の分布が未知である場合があります。このような特徴があるため、インクリメンタル学習中のパラメーター調整と予測子の標準化は困難または不可能です。
分類用のインクリメンタル近似関数 fit および updateMetricsAndFit は、アルゴリズムのより積極的な ScInOL2 バージョンを使用します。
ヒント
モデルを作成した後で、データ ストリームについてインクリメンタル学習を実行する C/C++ コードを生成できます。C/C++ コードの生成には MATLAB Coder™ が必要です。詳細については、コード生成の紹介を参照してください。
アルゴリズム
推定期間中、インクリメンタル近似関数 fit および updateMetricsAndFit は、最初の EstimationPeriod 個の入力観測値を使用して、インクリメンタル学習に必要なハイパーパラメーターを推定 (調整) します。推定は EstimationPeriod が正の場合にのみ発生します。次の表は、ハイパーパラメーターとそれらが推定または調整される条件について説明します。
| ハイパーパラメーター | モデル プロパティ | 使用法 | 条件 |
|---|---|---|---|
| 予測子の平均および標準偏差 |
| 標準化された予測子データ | 次のいずれの条件にも当てはまる場合は、ハイパーパラメーターが推定されます。
|
| 学習率 | LearnRate | ソルバーのステップ サイズの調整 | 次のいずれの条件にも当てはまる場合は、ハイパーパラメーターが推定されます。
|
推定期間中には、fit がモデルを当てはめることも、updateMetricsAndFit がモデルを当てはめたりパフォーマンス メトリクスを更新したりすることもありません。推定期間の満了時に、関数はハイパーパラメーターを格納するプロパティを更新します。
予測子変数を標準化するようにインクリメンタル学習関数が構成されている場合、インクリメンタル学習モデル Mdl の Mu および Sigma プロパティに保存されている平均と標準偏差を使用して標準化が行われます。
'Standardize',trueと正の推定期間 (EstimationPeriodを参照) が設定されていて、Mdl.MuとMdl.Sigmaが空の場合、インクリメンタル近似関数は、推定期間の観測値を使用して平均と標準偏差を推定します。'Standardize','auto'を設定すると (既定の設定)、次の条件が適用されます。従来式の学習済みバイナリ線形 SVM モデル (
ClassificationSVMまたはCompactClassificationSVM) を変換してincrementalClassificationLinearを作成する場合、従来式の学習済みモデルのMuおよびSigmaプロパティが空の配列[]であれば、インクリメンタル学習関数は予測子変数を標準化しません。従来式の学習済みモデルのMuおよびSigmaプロパティが空でない場合、インクリメンタル学習関数は、指定された平均と標準偏差を使用して予測子変数を標準化します。インクリメンタル近似関数は、推定期間の長さにかかわらず、新しい平均と標準偏差を推定しません。線形分類モデル (
ClassificationLinear) を変換してincrementalClassificationLinearを作成する場合、インクリメンタル学習関数は、推定期間の長さにかかわらず、データを標準化しません。従来式の学習済みモデルを変換するのでない場合、インクリメンタル学習関数は、SGD ソルバー (
Solverを参照) と正の推定期間 (EstimationPeriodを参照) が指定されている場合にのみ予測子データを標準化します。
インクリメンタル近似関数が予測子の平均と標準偏差を推定するとき、関数は推定期間の観測値を使用して加重平均と加重標準偏差を計算します。具体的には、関数は予測子 j (xj) の標準化のために次を使用します。
xj は予測子 j、xjk は推定期間内の予測子 j の観測値 k です。
pk はクラス k の事前確率です (インクリメンタル モデルの
Priorプロパティ)。wj は観測値の重み j です。
関数
updateMetricsおよびupdateMetricsAndFitは、インクリメンタル モデルが "ウォーム" (IsWarm プロパティ) のときに、新しいデータからモデルのパフォーマンス メトリクス ('Metrics') を追跡します。インクリメンタル モデルは、fitまたはupdateMetricsAndFitがインクリメンタル モデルを MetricsWarmupPeriod 個の観測値 ("メトリクスのウォームアップ期間") に当てはめた後、ウォームになります。EstimationPeriod > 0 の場合、関数はモデルをデータに当てはめる前にハイパーパラメーターを推定します。そのため、関数は、モデルがメトリクスのウォームアップ期間を開始する前に
EstimationPeriod個の観測値を追加で処理しなければなりません。インクリメンタル モデルの
Metricsプロパティは、各パフォーマンス メトリクスの 2 つの形式を table の変数 (列)CumulativeおよびWindowとし、個々のメトリクスを行に格納します。インクリメンタル モデルがウォームになると、updateMetricsおよびupdateMetricsAndFitは次の頻度でメトリクスを更新します。Cumulative— 関数は、モデルの性能追跡の開始以降の累積メトリクスを計算します。関数は、関数が呼び出されるたびにメトリクスを更新し、提供されたデータ セット全体に基づいて計算を行います。Window— 関数は、名前と値のペアの引数 MetricsWindowSize によって決定されたウィンドウ内のすべての観測値に基づいてメトリクスを計算します。MetricsWindowSizeによってソフトウェアがWindowメトリクスを更新する頻度も決まります。たとえば、MetricsWindowSizeが 20 の場合、関数は提供されたデータの最後の 20 個の観測値に基づいてメトリクスを計算します (X((end – 20 + 1):end,:)およびY((end – 20 + 1):end))。ウィンドウ内のパフォーマンス メトリクスを追跡するインクリメンタル関数は、次のプロセスを使用します。
指定された各メトリクスについて長さ
MetricsWindowSizeのバッファーを保存し、観測値の重みのバッファーを保存します。入力観測値のバッチに基づくモデル性能をメトリクス バッファーの要素に入力し、対応する観測値の重みを重みバッファーに格納します。
バッファーがいっぱいになると、
Mdl.Metrics.Windowをメトリクス ウィンドウの性能の加重平均で上書きします。関数が観測値のバッチを処理するときにバッファーがあふれる場合、最新の入力観測値MetricsWindowSizeがバッファーに入り、最も古い観測値がバッファーから削除されます。たとえば、MetricsWindowSizeが 20 で、メトリクス バッファーには前に処理されたバッチからの 10 個の値が存在し、15 個の値が入力されるとします。長さ 20 のウィンドウを構成するため、関数は 15 個の入力観測値からの測定値と前のバッチからの最新の 5 個の測定値を使用します。
CumulativeとWindowのパフォーマンス メトリクスの値を計算する際、スコアがNaNの観測値は省略されます。
参照
[1] Kempka, Michał, Wojciech Kotłowski, and Manfred K. Warmuth. "Adaptive Scale-Invariant Online Algorithms for Learning Linear Models." Preprint, submitted February 10, 2019. https://arxiv.org/abs/1902.07528.
[2] Langford, J., L. Li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.” J. Mach. Learn. Res., Vol. 10, 2009, pp. 777–801.
[3] Shalev-Shwartz, S., Y. Singer, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.” Proceedings of the 24th International Conference on Machine Learning, ICML ’07, 2007, pp. 807–814.
[4] Xu, Wei. “Towards Optimal One Pass Large Scale Learning with Averaged Stochastic Gradient Descent.” CoRR, abs/1107.2490, 2011.
拡張機能
使用上の注意事項および制限事項:
incrementalClassificationLinearモデル オブジェクトのすべてのオブジェクト関数でコード生成がサポートされます。ただし、perObservationLossとresetではサポートされません。データをシャッフルするように
Mdlを構成した場合 (Solver および Shuffle を参照)、関数fitは、モデルをバッチに当てはめる前に観測値の各入力バッチを無作為にシャッフルします。シャッフルされた観測値の順序は、MATLAB で生成される順序と一致しないことがあります。incrementalClassificationLinearモデル オブジェクトを読み込むか作成するコードを生成する場合、次の制限が適用されます。事後確率をスコアとして返すように構成された変換済み SVM モデルを
Mdlで表現することはできません。予測されるすべてのクラス名を
ClassNamesプロパティに含めなければなりません。予測子変数の数を
NumPredictorsプロパティに反映しなければなりません。
詳細は、コード生成の紹介を参照してください。
バージョン履歴
R2020b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)