メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

incrementalLearner

バイナリ分類用のカーネル モデルをインクリメンタル学習器に変換

R2022a 以降

    説明

    IncrementalMdl = incrementalLearner(Mdl) は、Mdl の従来式の学習済みカーネル モデル オブジェクトまたはカーネル モデル テンプレート オブジェクトを使用して、インクリメンタル学習用のバイナリ ガウス カーネル分類モデル IncrementalMdl を返します。

    従来式の学習済みモデルを指定する場合、そのプロパティの値は Mdl から得られた知識 (モデルのパラメーターとハイパーパラメーター) を反映した内容になります。そのため、IncrementalMdl は新しい観測値に対してラベルの予測を行うことができます。また "ウォーム" となるため、予測性能が追跡されます。

    IncrementalMdl = incrementalLearner(Mdl,Name=Value) は、1 つ以上の名前と値の引数によって指定された追加オプションを使用します。一部のオプションでは、予測性能の追跡を行う前に IncrementalMdl に学習させる必要があります。たとえば、MetricsWarmupPeriod=50,MetricsWindowSize=100 は、50 個の観測値から成る、パフォーマンス メトリクスの追跡前のインクリメンタル学習の予備期間を指定し、ウィンドウ パフォーマンス メトリクスを更新する前に 100 個の観測値を処理することを指定します。

    すべて折りたたむ

    fitckernel を使用してバイナリ学習用のカーネル分類モデルに学習させ、それをインクリメンタル学習器に変換します。

    データの読み込みと前処理

    人の行動のデータ セットを読み込みます。

    load humanactivity

    データ セットの詳細については、コマンド ラインで Description を入力してください。

    応答は、次の 5 つのクラスのいずれかになります。SittingStandingWalkingRunning、または Dancing。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。

    Y = actid > 2;

    カーネル分類モデルの学習

    カーネル分類モデルをデータ セット全体に当てはめます。

    Mdl = fitckernel(feat,Y)
    Mdl = 
      ClassificationKernel
                  ResponseName: 'Y'
                    ClassNames: [0 1]
                       Learner: 'svm'
        NumExpansionDimensions: 2048
                   KernelScale: 1
                        Lambda: 4.1537e-05
                 BoxConstraint: 1
    
    
      Properties, Methods
    
    

    Mdl は従来式の学習済みカーネル分類モデルを表す ClassificationKernel モデル オブジェクトです。

    学習済みモデルの変換

    従来式の学習済みカーネル分類モデルをインクリメンタル学習用のモデルに変換します。

    IncrementalMdl = incrementalLearner(Mdl,Solver="sgd",LearnRate=1)
    IncrementalMdl = 
      incrementalClassificationKernel
    
                        IsWarm: 1
                       Metrics: [1×2 table]
                    ClassNames: [0 1]
                ScoreTransform: 'none'
        NumExpansionDimensions: 2048
                   KernelScale: 1
    
    
      Properties, Methods
    
    

    IncrementalMdl は、インクリメンタル学習用に準備された incrementalClassificationKernel モデル オブジェクトです。

    • 関数 incrementalLearner は、モデル パラメーターを、Mdl が学習データから抽出した他の情報と共に渡して、インクリメンタル学習器を初期化します。

    • IncrementalMdl はウォーム (IsWarm が 1) です。これは、インクリメンタル学習関数がパフォーマンス メトリクスの追跡を開始できることを意味します。

    • fitckernel がメモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) ソルバーを使用して Mdl に学習させるのに対し、incrementalClassificationKernel は適応型スケール不変ソルバーを使用してモデルに学習させます。

    応答予測

    従来式の学習済みモデルから変換して作成したインクリメンタル学習器は、追加の処理なしで予測を生成できます。

    両方のモデルを使用して、すべての観測値の分類スコアを予測します。

    [~,ttscores] = predict(Mdl,feat);
    [~,ilscores] = predict(IncrementalMdl,feat);
    compareScores = norm(ttscores(:,1) - ilscores(:,1))
    compareScores = 
    0
    

    モデルによって生成されたスコアの差は 0 です。

    学習済みのカーネル分類モデルを使用して、インクリメンタル学習器を初期化します。メトリクスのウォームアップ期間とメトリクス ウィンドウ サイズを指定して、インクリメンタル学習器を準備します。

    人の行動のデータ セットを読み込みます。

    load humanactivity

    データ セットの詳細については、コマンド ラインで Description を入力してください。

    応答は、次の 5 つのクラスのいずれかになります。座る、立つ、歩く、走る、踊るです。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。

    Y = actid > 2;

    データ セットは行動ごとにグループ化されているため、データをシャッフルして単純にします。次に、データをランダムに 2 分割します。最初の半分は従来式のモデルの学習用、残りの半分はインクリメンタル学習用です。

    n = numel(Y);
    
    rng(1) % For reproducibility
    cvp = cvpartition(n,Holdout=0.5);
    idxtt = training(cvp);
    idxil = test(cvp);
    shuffidx = randperm(n);
    X = feat(shuffidx,:);
    Y = Y(shuffidx);
    
    % First half of data
    Xtt = X(idxtt,:);
    Ytt = Y(idxtt);
    
    % Second half of data
    Xil = X(idxil,:);
    Yil = Y(idxil);

    データの最初の半分にカーネル分類モデルを当てはめます。

    Mdl = fitckernel(Xtt,Ytt);

    従来式の学習済みカーネル分類モデルをインクリメンタル学習用のモデルに変換します。次を指定します。

    • メトリクスのウォームアップ期間は観測値 2000 個

    • メトリクス ウィンドウ サイズは観測値 500 個

    • 分類誤差およびヒンジ損失を使用してモデルの性能を測定

    IncrementalMdl = incrementalLearner(Mdl, ...
        MetricsWarmupPeriod=2000,MetricsWindowSize=500, ...
        Metrics=["classiferror","hinge"]);

    関数 updateMetricsAndFit を使用して、インクリメンタル モデルをデータの残りの半分に当てはめます。各反復で次を行います。

    • 20 個の観測値を一度に処理して、データ ストリームをシミュレートします。

    • 前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。

    • 累積メトリクス、ウィンドウ メトリクス、および学習観測値の数を保存し、インクリメンタル学習中にそれらがどのように進化するかを確認します。

    % Preallocation
    nil = numel(Yil);
    numObsPerChunk = 20;
    nchunk = ceil(nil/numObsPerChunk);
    ce = array2table(zeros(nchunk,2),VariableNames=["Cumulative","Window"]);
    hinge = array2table(zeros(nchunk,2),VariableNames=["Cumulative","Window"]); 
    numtrainobs = [zeros(nchunk,1)];
    
    % Incremental fitting
    for j = 1:nchunk
        ibegin = min(nil,numObsPerChunk*(j-1) + 1);
        iend   = min(nil,numObsPerChunk*j);
        idx = ibegin:iend;    
        IncrementalMdl = updateMetricsAndFit(IncrementalMdl,Xil(idx,:),Yil(idx));
        ce{j,:} = IncrementalMdl.Metrics{"ClassificationError",:};
        hinge{j,:} = IncrementalMdl.Metrics{"HingeLoss",:};
        numtrainobs(j) = IncrementalMdl.NumTrainingObservations;
    end

    IncrementalMdl は、ストリーム内のすべてのデータで学習させた incrementalClassificationKernel モデル オブジェクトです。インクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFit は入力観測値でモデルの性能をチェックし、モデルをその観測値に当てはめます。

    学習観測値の数とパフォーマンス メトリクスのトレース プロットを別々のタイルにプロットします。

    t = tiledlayout(3,1);
    nexttile
    plot(numtrainobs)
    xlim([0 nchunk])
    ylabel(["Number of","Training Observations"])
    xline(IncrementalMdl.MetricsWarmupPeriod/numObsPerChunk,"--")
    nexttile
    plot(ce.Variables)
    xlim([0 nchunk])
    ylabel("Classification Error")
    xline(IncrementalMdl.MetricsWarmupPeriod/numObsPerChunk,"--")
    legend(ce.Properties.VariableNames,Location="best")
    nexttile
    plot(hinge.Variables)
    xlim([0 nchunk])
    ylabel("Hinge Loss")
    xline(IncrementalMdl.MetricsWarmupPeriod/numObsPerChunk,"--")
    xlabel(t,"Iteration")

    Figure contains 3 axes objects. Axes object 1 with ylabel Number of Training Observations contains 2 objects of type line, constantline. Axes object 2 with ylabel Classification Error contains 3 objects of type line, constantline. These objects represent Cumulative, Window. Axes object 3 with ylabel Hinge Loss contains 3 objects of type line, constantline.

    プロットは、updateMetricsAndFit が次を行うことを示しています。

    • モデルをインクリメンタル学習のすべての反復で当てはめます。

    • パフォーマンス メトリクスをメトリクスのウォームアップ期間後にのみ計算します。

    • 累積メトリクスを各反復中に計算します。

    • ウィンドウ メトリクスを 500 個の観測値 (25 回の反復) の処理後に計算します。

    incrementalClassificationKernel の既定のソルバーは適応型スケール不変ソルバーです。このソルバーの場合、モデルを当てはめる前にハイパーパラメーターの調整は必要ありません。ただし、代わりに標準確率的勾配降下 (SGD) ソルバーまたは平均化 SGD (ASGD) ソルバーのいずれかを指定する場合は、推定期間を指定することもできます。その間、インクリメンタル近似関数は学習率を調整します。

    人の行動のデータ セットを読み込みます。

    load humanactivity

    データ セットの詳細については、コマンド ラインで Description を入力してください。

    応答は、次の 5 つのクラスのいずれかになります。SittingStandingWalkingRunning、および Dancing。被験者が移動しているかどうか (actid > 2) を基準に、応答を二分します。

    Y = actid > 2;

    データをランダムに 2 分割します。最初の半分は従来式のモデルの学習用、残りの半分はインクリメンタル学習用です。

    n = numel(Y);
    
    rng(1) % For reproducibility
    cvp = cvpartition(n,Holdout=0.5);
    idxtt = training(cvp);
    idxil = test(cvp);
    
    % First half of data 
    Xtt = feat(idxtt,:);
    Ytt = Y(idxtt);
    
    % Second half of data
    Xil = feat(idxil,:);
    Yil = Y(idxil);

    データの最初の半分にカーネル分類モデルを当てはめます。

    TTMdl = fitckernel(Xtt,Ytt);

    従来式の学習済みカーネル分類モデルをインクリメンタル学習用のモデルに変換します。標準 SGD ソルバーを指定し、推定期間を 2000 個の観測値に指定します (学習率が必要な場合の既定は 1000)。

    IncrementalMdl = incrementalLearner(TTMdl,Solver="sgd",EstimationPeriod=2000);

    IncrementalMdl はインクリメンタル学習用に構成された incrementalClassificationKernel モデル オブジェクトです。

    関数 fit を使用して、インクリメンタル モデルをデータの残りの半分に当てはめます。各反復で次を行います。

    • 10 個の観測値を一度に処理して、データ ストリームをシミュレート。

    • 前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。

    • 初期学習率と学習観測値の数を保存して、学習中にそれらがどのように進化するかを確認。

    % Preallocation
    nil = numel(Yil);
    numObsPerChunk = 10;
    nchunk = floor(nil/numObsPerChunk);
    learnrate = [zeros(nchunk,1)];
    numtrainobs = [zeros(nchunk,1)];
    
    % Incremental fitting
    for j = 1:nchunk
        ibegin = min(nil,numObsPerChunk*(j-1) + 1);
        iend   = min(nil,numObsPerChunk*j);
        idx = ibegin:iend;
        IncrementalMdl = fit(IncrementalMdl,Xil(idx,:),Yil(idx));
        learnrate(j) = IncrementalMdl.SolverOptions.LearnRate;
        numtrainobs(j) = IncrementalMdl.NumTrainingObservations;
    end

    IncrementalMdl は、ストリーム内のすべてのデータで学習させた incrementalClassificationKernel モデル オブジェクトです。

    学習観測値の数と初期学習率のトレース プロットを別々のタイルにプロットします。

    t = tiledlayout(2,1);
    nexttile
    plot(numtrainobs)
    xlim([0 nchunk])
    xline(IncrementalMdl.EstimationPeriod/numObsPerChunk,"-.");
    ylabel("Number of Training Observations")
    nexttile
    plot(learnrate)
    xlim([0 nchunk])
    ylabel("Initial Learning Rate")
    xline(IncrementalMdl.EstimationPeriod/numObsPerChunk,"-.");
    xlabel(t,"Iteration")

    Figure contains 2 axes objects. Axes object 1 with ylabel Number of Training Observations contains 2 objects of type line, constantline. Axes object 2 with ylabel Initial Learning Rate contains 2 objects of type line, constantline.

    プロットから、推定期間中は関数 fit がモデルをストリーミング データに当てはめないことがわかります。初期学習率は、推定期間後に 0.7 から自動調整された値に急転します。ソフトウェアでの学習時は、IncrementalMdlLearnRateScheduleプロパティで指定された初期値から徐々に減衰する学習率が使用されます。

    入力引数

    すべて折りたたむ

    従来式の学習済みガウス カーネル モデルまたはカーネル モデル テンプレート。fitckernel によって返される ClassificationKernel モデル オブジェクト、または templateKernel によって返されるテンプレート オブジェクトとして指定します。

    Mdl がカーネル モデル テンプレート オブジェクトの場合、incrementalLearner は予測子変数を標準化するかどうかをモデル テンプレート オブジェクトの Standardize プロパティに基づいて決定します。詳細については、データの標準化を参照してください。

    メモ

    インクリメンタル学習関数は、数値の入力予測子データのみをサポートします。Mdl に categorical データで学習させた場合、インクリメンタル学習関数を使用するには符号化したバージョンの categorical データを準備する必要があります。dummyvar を使用して、各カテゴリカル変数をダミー変数で構成される数値行列に変換します。その後、学習関数での categorical データの符号化と同じ方法で、すべてのダミー変数行列とその他の数値予測子を連結します。詳細については、ダミー変数を参照してください。

    名前と値の引数

    すべて展開する

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: Solver="sgd",MetricsWindowSize=100 は、目的関数の最適化用に確率的勾配降下ソルバーを指定し、ウィンドウ パフォーマンス メトリクスを更新する前に 100 個の観測値を処理することを指定します。

    一般オプション

    すべて展開する

    目的関数の最小化手法。次の表の値として指定します。

    説明メモ:
    "scale-invariant"

    インクリメンタル学習用の適応型スケール不変ソルバー[1]

    • このアルゴリズムはパラメーターを持たず、予測子のスケールの違いに適応できます。SGD または ASGD を使用する前に、このアルゴリズムを試してください。

    • 関数 fit でモデルを当てはめる前にデータの入力チャンクをシャッフルするには、Shuffletrue に設定します。

    "sgd"確率的勾配降下法 (SGD) [2][3]

    • SGD で効果的に学習させるには、データを標準化し、SGD および ASGD ソルバーのオプションにリストされているオプションを使用してハイパーパラメーターの適切な値を指定します。

    • 関数 fit でモデルを当てはめる前にデータの入力チャンクが常にシャッフルされます。

    "asgd"平均化確率的勾配降下法 (ASGD) [4]

    • ASGD で効果的に学習させるには、データを標準化し、SGD および ASGD ソルバーのオプションにリストされているオプションを使用してハイパーパラメーターの適切な値を指定します。

    • 関数 fit でモデルを当てはめる前にデータの入力チャンクが常にシャッフルされます。

    例: Solver="sgd"

    データ型: char | string

    ハイパーパラメーターの推定のために、パフォーマンス メトリクスの学習または追跡の前にインクリメンタル モデルが処理する観測値の数。非負の整数として指定します。

    メモ

    • Mdl をインクリメンタル学習用に準備する場合 (学習に必要なすべてのハイパーパラメーターを指定する必要があります)、incrementalLearnerEstimationPeriod0 に強制します。

    • Mdl をインクリメンタル学習用に準備しない場合、incrementalLearnerEstimationPeriod1000 に設定します。

    詳細については、推定期間を参照してください。

    例: EstimationPeriod=100

    データ型: single | double

    SGD および ASGD ソルバーのオプション

    すべて展開する

    ミニバッチのサイズ。正の整数として指定します。学習中の各学習サイクルで、incrementalLearnerBatchSize 個の観測値を使用して劣勾配を計算します。

    最後のミニバッチ (fit または updateMetricsAndFit の各関数呼び出しにおける最後の学習サイクル) に含まれる観測値の数は、BatchSize より小さくてもかまいません。たとえば、fit または updateMetricsAndFit に 25 個の観測値を指定した場合、関数は最初の 2 つの学習サイクルに 10 個の観測値を使用し、最後の学習サイクルに 5 の観測値を使用します。

    例: BatchSize=5

    データ型: single | double

    リッジ (L2) 正則化項の強度。非負のスカラーとして指定します。

    例: Lambda=0.01

    データ型: single | double

    初期学習率。"auto" または正のスカラーとして指定します。

    学習率は、目的の劣勾配をスケールすることによって最適化のステップ サイズを制御します。LearnRate は学習率の初期値を指定し、LearnRateSchedule によって後続の学習サイクルの学習率が決まります。

    "auto" を指定した場合、次のようになります。

    • 初期学習率は 0.7 となります。

    • EstimationPeriod > 0 の場合、fit および updateMetricsAndFit は、EstimationPeriod の最後にこの比率を 1/sqrt(1+max(sum(X.^2,2))) に変更します。

    例: LearnRate=0.001

    データ型: single | double | char | string

    学習率スケジュール。次の表の値として指定します。ここで、LearnRate は初期学習率 ɣ0 を指定します。

    説明
    "constant"すべての学習サイクルの学習率を ɣ0 とする。
    "decaying"

    学習サイクル t での学習率を次とする。

    γt=γ0(1+λγ0t)c.

    • λLambda の値です。

    • Solver"sgd" の場合、c = 1 です。

    • Solver"asgd" の場合、c = 0.75 です[4]

    例: LearnRateSchedule="constant"

    データ型: char | string

    適応型スケール不変ソルバーのオプション

    すべて展開する

    各反復での観測値のシャッフル フラグ。logical 1 (true) または 0 (false) として指定します。

    説明
    logical 1 (true)ソフトウェアが、関数 fit でモデルを当てはめる前に、データの入力チャンク内の観測値をシャッフルします。このアクションにより、抽出スキームによって誘発されるバイアスが低減されます。
    logical 0 (false)ソフトウェアが、受信した順序でデータを処理します。

    例: Shuffle=false

    データ型: logical

    パフォーマンス メトリクス オプション

    すべて展開する

    関数 updateMetrics または updateMetricsAndFit を使ってインクリメンタル学習中に追跡するモデルのパフォーマンス メトリクス。組み込みの損失関数の名前、名前の string ベクトル、関数ハンドル (@metricName)、関数ハンドルの構造体配列、または名前、関数ハンドル、構造体配列の cell ベクトルとして指定します。

    次の表は、組み込みの損失関数名の一覧です。string ベクトルを使用して、複数指定できます。

    名前説明
    "binodeviance"二項分布からの逸脱度
    "classiferror"分類誤差
    "exponential"指数損失
    "hinge"ヒンジ損失
    "logit"ロジスティック損失
    "quadratic"二次損失

    組み込み損失関数の詳細については、loss を参照してください。

    例: Metrics=["classiferror","hinge"]

    パフォーマンス メトリクスを返すカスタム関数を指定するには、関数ハンドル表記を使用します。関数は次の形式でなければなりません。

    metric = customMetric(C,S)

    • 出力引数 metricn 行 1 列の数値ベクトルです。ここで、各要素は、学習サイクル中にインクリメンタル学習関数によって処理されたデータの対応する観測値の損失です。

    • 関数名 (customMetric) を指定します。

    • Cn 行 2 列の logical 行列であり、対応する観測値が属するクラスを各行が示します。列の順序はインクリメンタル学習用のモデルにおけるクラスの順序に対応します。C を作成するには、指定されたデータの各観測値について観測値 p がクラス q に属する場合に C(p,q) = 1 を設定します。行 p の他の要素を 0 に設定します。

    • S は、予測分類スコアの n 行 2 列の数値行列です。Spredict の出力 score に似ています。ここで、行はデータの観測値に対応し、列の順序はインクリメンタル学習用のモデルにおけるクラスの順序に対応しています。S(p,q) は、クラス q に分類されている観測値 p の分類スコアです。

    複数のカスタム メトリクスを指定し、それぞれにカスタム名を割り当てるには、構造体配列を使用します。組み込みメトリクスとカスタム メトリクスの組み合わせを指定するには、cell ベクトルを使用します。

    例: Metrics=struct(Metric1=@customMetric1,Metric2=@customMetric2)

    例: Metrics={@customMetric1,@customMetric2,"logit",struct(Metric3=@customMetric3)}

    updateMetrics および updateMetricsAndFit は、table で指定したメトリクスをプロパティ IncrementalMdl.Metrics に保存します。Metrics のデータ型によって、table の行名が決まります。

    Metrics 値のデータ型Metrics プロパティの行名の説明
    string または文字ベクトル対応する組み込みメトリクスの名前"classiferror" の行名は "ClassificationError"
    構造体配列フィールド名struct(Metric1=@customMetric1) の行名は "Metric1"
    プログラム ファイルに格納されている関数への関数ハンドル関数名@customMetric の行名は "customMetric"
    無名関数CustomMetric_j。ここで、jMetrics のメトリクス j@(C,S)customMetric(C,S)... の行名は CustomMetric_1

    パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。

    データ型: char | string | struct | cell | function_handle

    インクリメンタル モデルが Metrics プロパティのパフォーマンス メトリクスを追跡する前に当てはめなければならない観測値の数。非負の整数として指定します。インクリメンタル モデルは、インクリメンタル近似関数が (EstimationPeriod + MetricsWarmupPeriod) 個の観測値をインクリメンタル モデルに当てはめた後にウォームになります。

    パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。

    例: MetricsWarmupPeriod=50

    データ型: single | double

    ウィンドウ パフォーマンス メトリクスの計算に使用する観測値の数。正の整数として指定します。

    パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。

    例: MetricsWindowSize=250

    データ型: single | double

    出力引数

    すべて折りたたむ

    インクリメンタル学習用のバイナリ ガウス カーネル分類モデル。incrementalClassificationKernel モデル オブジェクトとして返されます。IncrementalMdl は新しいデータに基づいて予測を生成するようにも構成されます (predict を参照)。

    関数 incrementalLearner は、Mdl のモデル情報を使用して IncrementalMdl をインクリメンタル学習用に初期化します。次の表は、incrementalLearnerIncrementalMdl の対応するプロパティに渡す Mdl のプロパティを示したものです。関数では、学習済みのモデルの係数、正則化項の強度、乱数ストリームなど、IncrementalMdl を初期化するために必要な他のモデル情報も渡します。

    入力オブジェクト Mdl のタイププロパティ説明
    ClassificationKernel モデル オブジェクトまたはカーネル モデル テンプレート オブジェクトKernelScaleカーネル スケール パラメーター。正のスカラー
    Learner線形分類モデルのタイプ。文字ベクトル
    NumExpansionDimensions拡張空間の次元数。正の整数
    ClassificationKernel モデル オブジェクトClassNamesバイナリ分類のクラス ラベル。2 要素のリスト
    Mu予測子変数の平均。数値ベクトル
    NumPredictors予測子の数。正の整数
    Prior前のクラス ラベルの分布。数値ベクトル
    ScoreTransformスコア変換関数。関数名または関数ハンドル
    Sigma予測子変数の標準偏差。数値ベクトル

    Mdl の従来式学習済みモデルの Cost プロパティは、incrementalClassificationKernel でサポートされないため、incrementalLearner で使用されないことに注意してください。

    詳細

    すべて折りたたむ

    アルゴリズム

    すべて折りたたむ

    参照

    [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.

    [5] Rahimi, A., and B. Recht. “Random Features for Large-Scale Kernel Machines.” Advances in Neural Information Processing Systems. Vol. 20, 2008, pp. 1177–1184.

    [6] Le, Q., T. Sarlós, and A. Smola. “Fastfood — Approximating Kernel Expansions in Loglinear Time.” Proceedings of the 30th International Conference on Machine Learning. Vol. 28, No. 3, 2013, pp. 244–252.

    [7] Huang, P. S., H. Avron, T. N. Sainath, V. Sindhwani, and B. Ramabhadran. “Kernel methods match Deep Neural Networks on TIMIT.” 2014 IEEE International Conference on Acoustics, Speech and Signal Processing. 2014, pp. 205–209.

    バージョン履歴

    R2022a で導入