ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

resume

ガウス カーネル回帰モデルの学習の再開

説明

UpdatedMdl = resume(Mdl,X,Y) は、学習データ (X 内の予測子データと Y 内の応答データ) や特徴量拡張など、Mdl の学習に使用したものと同じオプションを使用して、学習を続行します。学習は、Mdl 内の最新の推定パラメーターから始まります。この関数は、新しいガウス カーネル回帰モデル UpdatedMdl を返します。

UpdatedMdl = resume(Mdl,X,Y,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、新しいカーネル回帰モデルを返します。たとえば、収束の許容誤差や追加最適化反復の最大回数などの収束制御オプションを変更できます。

[UpdatedMdl,FitInfo] = resume(___) は、前の構文の入力引数のいずれかを使用して、あてはめの情報も構造体配列 FitInfo に返します。

すべて折りたたむ

反復回数を増やしてガウス カーネル回帰モデルの学習を再開し、回帰損失を向上させます。

carbig データセットを読み込みます。

load carbig

予測子変数 (X) と応答変数 (Y) を指定します。

X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;

配列 X および Y から、それぞれの配列で NaN 値が含まれている行を削除します。NaN 値が含まれている行を削除してからデータを fitrkernel に渡すと、学習が高速化され、メモリ使用量が少なくなります。

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5); 
Y = R(:,end); 

観測値の 10% をホールドアウト標本として予約します。学習インデックスとテスト インデックスを分割の定義から抽出します。

rng(10)  % For reproducibility
N = length(Y);
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

学習データを標準化し、カーネル回帰モデルに学習をさせます。反復制限を 5 回に設定し、'Verbose',1 を指定して診断情報を表示します。

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
Mdl = fitrkernel(Ztrain,Ytrain,'IterationLimit',5,'Verbose',1)
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  5.691016e+00 |  0.000000e+00 |  5.852758e-02 |                |             0 |
|  LBFGS |      1 |            1 |  5.086537e+00 |  8.000000e+00 |  5.220869e-02 |   9.846711e-02 |           256 |
|  LBFGS |      1 |            2 |  3.862301e+00 |  5.000000e-01 |  3.796034e-01 |   5.998808e-01 |           256 |
|  LBFGS |      1 |            3 |  3.460613e+00 |  1.000000e+00 |  3.257790e-01 |   1.615091e-01 |           256 |
|  LBFGS |      1 |            4 |  3.136228e+00 |  1.000000e+00 |  2.832861e-02 |   8.006254e-02 |           256 |
|  LBFGS |      1 |            5 |  3.063978e+00 |  1.000000e+00 |  1.475038e-02 |   3.314455e-02 |           256 |
|=================================================================================================================|
Mdl = 
  RegressionKernel
              ResponseName: 'Y'
                   Learner: 'svm'
    NumExpansionDimensions: 256
               KernelScale: 1
                    Lambda: 0.0028
             BoxConstraint: 1
                   Epsilon: 0.8617


  Properties, Methods

Mdl RegressionKernel モデルです。

学習データの列と同じ平均および標準偏差を使用してテスト データを標準化します。テスト セットについてイプシロン不感応誤差を推定します。

Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);

L = loss(Mdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674

resume を使用して、モデルの学習を続行します。この関数は、Mdl の学習に使用したものと同じ学習オプションによって学習を続行します。

UpdatedMdl = resume(Mdl,Ztrain,Ytrain);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  3.063978e+00 |  0.000000e+00 |  1.475038e-02 |                |           256 |
|  LBFGS |      1 |            1 |  3.007822e+00 |  8.000000e+00 |  1.391637e-02 |   2.603966e-02 |           256 |
|  LBFGS |      1 |            2 |  2.817171e+00 |  5.000000e-01 |  5.949008e-02 |   1.918084e-01 |           256 |
|  LBFGS |      1 |            3 |  2.807294e+00 |  2.500000e-01 |  6.798867e-02 |   2.973097e-02 |           256 |
|  LBFGS |      1 |            4 |  2.791060e+00 |  1.000000e+00 |  2.549575e-02 |   1.639328e-02 |           256 |
|  LBFGS |      1 |            5 |  2.767821e+00 |  1.000000e+00 |  6.154419e-03 |   2.468903e-02 |           256 |
|  LBFGS |      1 |            6 |  2.738163e+00 |  1.000000e+00 |  5.949008e-02 |   9.476263e-02 |           256 |
|  LBFGS |      1 |            7 |  2.719146e+00 |  1.000000e+00 |  1.699717e-02 |   1.849972e-02 |           256 |
|  LBFGS |      1 |            8 |  2.705941e+00 |  1.000000e+00 |  3.116147e-02 |   4.152590e-02 |           256 |
|  LBFGS |      1 |            9 |  2.701162e+00 |  1.000000e+00 |  5.665722e-03 |   9.401466e-03 |           256 |
|  LBFGS |      1 |           10 |  2.695341e+00 |  5.000000e-01 |  3.116147e-02 |   4.968046e-02 |           256 |
|  LBFGS |      1 |           11 |  2.691277e+00 |  1.000000e+00 |  8.498584e-03 |   1.017446e-02 |           256 |
|  LBFGS |      1 |           12 |  2.689972e+00 |  1.000000e+00 |  1.983003e-02 |   9.938921e-03 |           256 |
|  LBFGS |      1 |           13 |  2.688979e+00 |  1.000000e+00 |  1.416431e-02 |   6.606316e-03 |           256 |
|  LBFGS |      1 |           14 |  2.687787e+00 |  1.000000e+00 |  1.621956e-03 |   7.089542e-03 |           256 |
|  LBFGS |      1 |           15 |  2.686539e+00 |  1.000000e+00 |  1.699717e-02 |   1.169701e-02 |           256 |
|  LBFGS |      1 |           16 |  2.685356e+00 |  1.000000e+00 |  1.133144e-02 |   1.069310e-02 |           256 |
|  LBFGS |      1 |           17 |  2.685021e+00 |  5.000000e-01 |  1.133144e-02 |   2.104248e-02 |           256 |
|  LBFGS |      1 |           18 |  2.684002e+00 |  1.000000e+00 |  2.832861e-03 |   6.175231e-03 |           256 |
|  LBFGS |      1 |           19 |  2.683507e+00 |  1.000000e+00 |  5.665722e-03 |   3.724026e-03 |           256 |
|  LBFGS |      1 |           20 |  2.683343e+00 |  5.000000e-01 |  5.665722e-03 |   9.549119e-03 |           256 |
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |           21 |  2.682897e+00 |  1.000000e+00 |  5.665722e-03 |   7.172867e-03 |           256 |
|  LBFGS |      1 |           22 |  2.682682e+00 |  1.000000e+00 |  2.832861e-03 |   2.587726e-03 |           256 |
|  LBFGS |      1 |           23 |  2.682485e+00 |  1.000000e+00 |  2.832861e-03 |   2.953648e-03 |           256 |
|  LBFGS |      1 |           24 |  2.682326e+00 |  1.000000e+00 |  2.832861e-03 |   7.777294e-03 |           256 |
|  LBFGS |      1 |           25 |  2.681914e+00 |  1.000000e+00 |  2.832861e-03 |   2.778555e-03 |           256 |
|  LBFGS |      1 |           26 |  2.681867e+00 |  5.000000e-01 |  1.031085e-03 |   3.638352e-03 |           256 |
|  LBFGS |      1 |           27 |  2.681725e+00 |  1.000000e+00 |  5.665722e-03 |   1.515199e-03 |           256 |
|  LBFGS |      1 |           28 |  2.681692e+00 |  5.000000e-01 |  1.314940e-03 |   1.850055e-03 |           256 |
|  LBFGS |      1 |           29 |  2.681625e+00 |  1.000000e+00 |  2.832861e-03 |   1.456903e-03 |           256 |
|  LBFGS |      1 |           30 |  2.681594e+00 |  5.000000e-01 |  2.832861e-03 |   8.704875e-04 |           256 |
|  LBFGS |      1 |           31 |  2.681581e+00 |  5.000000e-01 |  8.498584e-03 |   3.934768e-04 |           256 |
|  LBFGS |      1 |           32 |  2.681579e+00 |  1.000000e+00 |  8.498584e-03 |   1.847866e-03 |           256 |
|  LBFGS |      1 |           33 |  2.681553e+00 |  1.000000e+00 |  9.857038e-04 |   6.509825e-04 |           256 |
|  LBFGS |      1 |           34 |  2.681541e+00 |  5.000000e-01 |  8.498584e-03 |   6.635528e-04 |           256 |
|  LBFGS |      1 |           35 |  2.681499e+00 |  1.000000e+00 |  5.665722e-03 |   6.194735e-04 |           256 |
|  LBFGS |      1 |           36 |  2.681493e+00 |  5.000000e-01 |  1.133144e-02 |   1.617763e-03 |           256 |
|  LBFGS |      1 |           37 |  2.681473e+00 |  1.000000e+00 |  9.869233e-04 |   8.418484e-04 |           256 |
|  LBFGS |      1 |           38 |  2.681469e+00 |  1.000000e+00 |  5.665722e-03 |   1.069722e-03 |           256 |
|  LBFGS |      1 |           39 |  2.681432e+00 |  1.000000e+00 |  2.832861e-03 |   8.501930e-04 |           256 |
|  LBFGS |      1 |           40 |  2.681423e+00 |  2.500000e-01 |  1.133144e-02 |   9.543716e-04 |           256 |
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |           41 |  2.681416e+00 |  1.000000e+00 |  2.832861e-03 |   8.763251e-04 |           256 |
|  LBFGS |      1 |           42 |  2.681413e+00 |  5.000000e-01 |  2.832861e-03 |   4.101888e-04 |           256 |
|  LBFGS |      1 |           43 |  2.681403e+00 |  1.000000e+00 |  5.665722e-03 |   2.713209e-04 |           256 |
|  LBFGS |      1 |           44 |  2.681392e+00 |  1.000000e+00 |  2.832861e-03 |   2.115241e-04 |           256 |
|  LBFGS |      1 |           45 |  2.681383e+00 |  1.000000e+00 |  2.832861e-03 |   2.872858e-04 |           256 |
|  LBFGS |      1 |           46 |  2.681374e+00 |  1.000000e+00 |  8.498584e-03 |   5.771001e-04 |           256 |
|  LBFGS |      1 |           47 |  2.681353e+00 |  1.000000e+00 |  2.832861e-03 |   3.160871e-04 |           256 |
|  LBFGS |      1 |           48 |  2.681334e+00 |  5.000000e-01 |  8.498584e-03 |   1.045502e-03 |           256 |
|  LBFGS |      1 |           49 |  2.681314e+00 |  1.000000e+00 |  7.878714e-04 |   1.505118e-03 |           256 |
|  LBFGS |      1 |           50 |  2.681306e+00 |  1.000000e+00 |  2.832861e-03 |   4.756894e-04 |           256 |
|  LBFGS |      1 |           51 |  2.681301e+00 |  1.000000e+00 |  1.133144e-02 |   3.664873e-04 |           256 |
|  LBFGS |      1 |           52 |  2.681288e+00 |  1.000000e+00 |  2.832861e-03 |   1.449821e-04 |           256 |
|  LBFGS |      1 |           53 |  2.681287e+00 |  2.500000e-01 |  1.699717e-02 |   2.357176e-04 |           256 |
|  LBFGS |      1 |           54 |  2.681282e+00 |  1.000000e+00 |  5.665722e-03 |   2.046663e-04 |           256 |
|  LBFGS |      1 |           55 |  2.681278e+00 |  1.000000e+00 |  2.832861e-03 |   2.546349e-04 |           256 |
|  LBFGS |      1 |           56 |  2.681276e+00 |  2.500000e-01 |  1.307940e-03 |   1.966786e-04 |           256 |
|  LBFGS |      1 |           57 |  2.681274e+00 |  5.000000e-01 |  1.416431e-02 |   1.005310e-04 |           256 |
|  LBFGS |      1 |           58 |  2.681271e+00 |  5.000000e-01 |  1.118892e-03 |   1.147324e-04 |           256 |
|  LBFGS |      1 |           59 |  2.681269e+00 |  1.000000e+00 |  2.832861e-03 |   1.332914e-04 |           256 |
|  LBFGS |      1 |           60 |  2.681268e+00 |  2.500000e-01 |  1.132045e-03 |   5.441369e-05 |           256 |
|=================================================================================================================|

更新されたモデルを使用して、テスト セットについてイプシロン不感応誤差を推定します。

UpdatedL = loss(UpdatedMdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8933

反復回数を増やして resume で回帰モデルを更新すると、約 0.08 倍だけ回帰誤差が減少します。

carbig データセットを読み込みます。

load carbig

予測子変数 (X) と応答変数 (Y) を指定します。

X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;

配列 X および Y から、それぞれの配列で NaN 値が含まれている行を削除します。NaN 値が含まれている行を削除してからデータを fitrkernel に渡すと、学習が高速化され、メモリ使用量が少なくなります。

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5); 
Y = R(:,end); 

観測値の 10% をホールドアウト標本として予約します。学習インデックスとテスト インデックスを分割の定義から抽出します。

rng(10)  % For reproducibility
N = length(Y);
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

学習データを標準化し、名前と値のペアの引数 'BetaTolerance' および 'GradientTolerance' を使用することにより収束制御学習オプションを緩和してカーネル回帰モデルに学習をさせます。'Verbose',1 を指定して、診断情報を表示します。

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
[Mdl,FitInfo] = fitrkernel(Ztrain,Ytrain,'Verbose',1, ...
    'BetaTolerance',2e-2,'GradientTolerance',2e-2);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  5.691016e+00 |  0.000000e+00 |  5.852758e-02 |                |             0 |
|  LBFGS |      1 |            1 |  5.086537e+00 |  8.000000e+00 |  5.220869e-02 |   9.846711e-02 |           256 |
|  LBFGS |      1 |            2 |  3.862301e+00 |  5.000000e-01 |  3.796034e-01 |   5.998808e-01 |           256 |
|  LBFGS |      1 |            3 |  3.460613e+00 |  1.000000e+00 |  3.257790e-01 |   1.615091e-01 |           256 |
|  LBFGS |      1 |            4 |  3.136228e+00 |  1.000000e+00 |  2.832861e-02 |   8.006254e-02 |           256 |
|  LBFGS |      1 |            5 |  3.063978e+00 |  1.000000e+00 |  1.475038e-02 |   3.314455e-02 |           256 |
|=================================================================================================================|

Mdl RegressionKernel モデルです。

学習データの列と同じ平均および標準偏差を使用してテスト データを標準化します。テスト セットについてイプシロン不感応誤差を推定します。

Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);

L = loss(Mdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674

resume を使用して、修正した収束制御オプションでモデルの学習を続行します。

[UpdatedMdl,UpdatedFitInfo] = resume(Mdl,Ztrain,Ytrain, ...
    'BetaTolerance',2e-3,'GradientTolerance',2e-3);
|=================================================================================================================|
| Solver |  Pass  |   Iteration  |   Objective   |     Step      |    Gradient   |    Relative    |  sum(beta~=0) |
|        |        |              |               |               |   magnitude   | change in Beta |               |
|=================================================================================================================|
|  LBFGS |      1 |            0 |  3.063978e+00 |  0.000000e+00 |  1.475038e-02 |                |           256 |
|  LBFGS |      1 |            1 |  3.007822e+00 |  8.000000e+00 |  1.391637e-02 |   2.603966e-02 |           256 |
|  LBFGS |      1 |            2 |  2.817171e+00 |  5.000000e-01 |  5.949008e-02 |   1.918084e-01 |           256 |
|  LBFGS |      1 |            3 |  2.807294e+00 |  2.500000e-01 |  6.798867e-02 |   2.973097e-02 |           256 |
|  LBFGS |      1 |            4 |  2.791060e+00 |  1.000000e+00 |  2.549575e-02 |   1.639328e-02 |           256 |
|  LBFGS |      1 |            5 |  2.767821e+00 |  1.000000e+00 |  6.154419e-03 |   2.468903e-02 |           256 |
|  LBFGS |      1 |            6 |  2.738163e+00 |  1.000000e+00 |  5.949008e-02 |   9.476263e-02 |           256 |
|  LBFGS |      1 |            7 |  2.719146e+00 |  1.000000e+00 |  1.699717e-02 |   1.849972e-02 |           256 |
|  LBFGS |      1 |            8 |  2.705941e+00 |  1.000000e+00 |  3.116147e-02 |   4.152590e-02 |           256 |
|  LBFGS |      1 |            9 |  2.701162e+00 |  1.000000e+00 |  5.665722e-03 |   9.401466e-03 |           256 |
|  LBFGS |      1 |           10 |  2.695341e+00 |  5.000000e-01 |  3.116147e-02 |   4.968046e-02 |           256 |
|  LBFGS |      1 |           11 |  2.691277e+00 |  1.000000e+00 |  8.498584e-03 |   1.017446e-02 |           256 |
|  LBFGS |      1 |           12 |  2.689972e+00 |  1.000000e+00 |  1.983003e-02 |   9.938921e-03 |           256 |
|  LBFGS |      1 |           13 |  2.688979e+00 |  1.000000e+00 |  1.416431e-02 |   6.606316e-03 |           256 |
|  LBFGS |      1 |           14 |  2.687787e+00 |  1.000000e+00 |  1.621956e-03 |   7.089542e-03 |           256 |
|=================================================================================================================|

更新されたモデルを使用して、テスト セットについてイプシロン不感応誤差を推定します。

UpdatedL = loss(UpdatedMdl,Ztest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8891

収束の許容誤差を小さくして resume で回帰モデルを更新すると、回帰誤差が減少します。

出力 FitInfo および UpdatedFitInfo を表示します。

FitInfo
FitInfo = struct with fields:
                  Solver: 'LBFGS-fast'
            LossFunction: 'epsiloninsensitive'
                  Lambda: 0.0028
           BetaTolerance: 0.0200
       GradientTolerance: 0.0200
          ObjectiveValue: 3.0640
       GradientMagnitude: 0.0148
    RelativeChangeInBeta: 0.0331
                 FitTime: 0.0476
                 History: [1x1 struct]

UpdatedFitInfo
UpdatedFitInfo = struct with fields:
                  Solver: 'LBFGS-fast'
            LossFunction: 'epsiloninsensitive'
                  Lambda: 0.0028
           BetaTolerance: 0.0020
       GradientTolerance: 0.0020
          ObjectiveValue: 2.6878
       GradientMagnitude: 0.0016
    RelativeChangeInBeta: 0.0071
                 FitTime: 0.1950
                 History: [1x1 struct]

勾配の絶対許容誤差が満たされたので、どちらの学習も終了しています。

UpdatedFitInfo.History.GradientMagnitude を使用して、勾配の大きさと反復回数をプロットします。UpdatedFitInfoHistory フィールドには FitInfoHistory フィールドの情報が格納されていることに注意してください。

semilogy(UpdatedFitInfo.History.GradientMagnitude,'o-')
ax = gca;
ax.XTick = 1:21;
ax.XTickLabel = UpdatedFitInfo.History.IterationNumber;
grid on
xlabel('Number of Iterations')
ylabel('Gradient Magnitude')

1 回目の学習は、勾配の大きさが 2e-2 より小さくなったので、5 回の反復後に終了しています。2 回目の学習は、勾配の大きさが 2e-3 より小さくなったので、14 回の反復後に終了しています。

入力引数

すべて折りたたむ

カーネル回帰モデル。RegressionKernel モデル オブジェクトを指定します。RegressionKernel モデル オブジェクトは、fitrkernel を使用して作成できます。

Mdl の学習に使用した予測子データ。n 行 p 列の数値行列を指定します。n は観測値の個数、p は予測子の個数です。

データ型: single | double

Mdl の学習に使用した応答データ。数値ベクトルを指定します。

データ型: double | single

メモ

resume は、Mdl の学習に使用したものと同じ学習データ (XY) および観測値の重み (Weights) のみに対して実行する必要があります。関数 resume は、特徴量拡張など、Mdl の学習に使用したものと同じ学習オプションを使用します。

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: UpdatedMdl = resume(Mdl,X,Y,'BetaTolerance',1e-3) は、線形係数およびバイアス項に対する相対許容誤差を除き、Mdl の学習に使用したものと同じ学習オプションを使用して学習を再開します。

Mdl の学習に使用した観測値の重み。'Weights' と長さ n の正の数値ベクトルから構成されるコンマ区切りのペアとして指定します。nX 内の観測値の個数です。関数 resume は、Weights 内の対応する値を使用して、X 内の観測値に重みを付けます。

既定値は ones(n,1)/n です。

resume は合計が 1 になるように Weights を正規化します。

例: 'Weights',w

データ型: single | double

線形係数およびバイアス項 (切片) の相対許容誤差。'BetaTolerance' と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

Bt=[βtbt] であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。BtBt1Bt2<BetaTolerance で最適化が終了します。

GradientTolerance も指定した場合、いずれかの終了条件が満たされると最適化が終了します。

既定では、Mdl の学習に使用した BetaTolerance の値と同じ値になります。

例: 'BetaTolerance',1e-6

データ型: single | double

勾配の絶対許容誤差。'GradientTolerance' と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

最適化反復 t における係数およびバイアス項に関する目的関数の勾配ベクトルを t とします。t=max|t|<GradientTolerance で最適化が終了します。

BetaTolerance も指定した場合、いずれかの終了条件が満たされると最適化が終了します。

既定では、Mdl の学習に使用した GradientTolerance の値と同じ値になります。

例: 'GradientTolerance',1e-5

データ型: single | double

追加最適化反復の最大回数。'IterationLimit' と正の整数から構成されるコンマ区切りのペアとして指定します。

fitrkernelMdl に学習をさせるときに名前と値のペアの引数 'BlockSize' を使用して指定したメモリ (Mdl.ModelParameters.BlockSize) に変換後のデータが収まる場合、既定値は 1000 です。それ以外の場合、既定値は 100 です。

既定値は Mdl の学習に使用した値ではないことに注意してください。

例: 'IterationLimit',500

データ型: single | double

出力引数

すべて折りたたむ

更新されたカーネル回帰モデル。RegressionKernel モデル オブジェクトとして返されます。

最適化の詳細。次の表に記載されているフィールドを含む構造体配列として返されます。これらのフィールドには、最終的な値または名前と値のペアの引数の指定が格納されます。

フィールド説明
Solver

目的関数の最小化手法: 'LBFGS-fast''LBFGS-blockwise' または 'LBFGS-tall'。詳細については、fitrkernelアルゴリズムの節を参照してください。

LossFunction損失関数。線形回帰モデルのタイプに応じて、平均二乗誤差 (MSE) またはイプシロン不感応になります。fitrkernelLearner を参照してください。
Lambda正則化項の強度。fitrkernelLambda を参照してください。
BetaTolerance線形係数およびバイアス項の相対許容誤差。BetaTolerance を参照してください。
GradientTolerance勾配の絶対許容誤差。GradientTolerance を参照してください。
ObjectiveValue最適化終了時の目的関数の値。回帰損失と正則化項を加算することにより目的関数が構成されます。
GradientMagnitude最適化終了時における目的関数の勾配ベクトルの無限大ノルム。GradientTolerance を参照してください。
RelativeChangeInBeta最適化終了時の線形係数およびバイアス項の相対的な変化。BetaTolerance を参照してください。
FitTimeモデルをデータにあてはめるためにかかった経過実時間 (秒単位)。
History最適化情報の履歴。このフィールドには Mdl の学習の最適化情報も格納されます。Mdl に学習をさせるときに 'Verbose',0 を指定した場合、このフィールドは空 ([]) になります。詳細については、Verbosefitrkernelアルゴリズムの節を参照してください。

フィールドにアクセスするには、ドット表記を使用します。たとえば、各反復における目的関数値のベクトルにアクセスするには、コマンド ウィンドウで FitInfo.ObjectiveValue と入力します。

FitInfo が提供する情報を確認して、収束が満足できるものであるかどうかを評価します。

詳細

すべて折りたたむ

ランダムな特徴量拡張

Random Kitchen Sink[1]や Fastfood[2]などのランダムな特徴量拡張では、ビッグ データに対するカーネル回帰アルゴリズムのガウス カーネルの近似値を計算効率が高い方法で求めます。ランダムな特徴量拡張は、大規模な学習セットが含まれているビッグ データ事例への適用の方がより有用ですが、メモリに収まる小規模なデータセットにも適用できます。

カーネル回帰アルゴリズムでは、予測子データを高次元空間にマッピングした後で、各応答データ点 (yi) からの逸脱がイプシロン マージン (ε) の値を超えない最適な関数を求めます。

一部の回帰問題は、線形モデルを使用して適切に表すことはできません。このような場合は、ドット積 x1x2' を非線形カーネル関数 G(x1,x2)=φ(x1),φ(x2) に置き換えることにより非線形回帰モデルを取得します。ここで、xi は i 番目の観測値 (行ベクトル)、φ(xi) は xi を高次元空間にマッピングする変換 ("カーネル トリック" と呼ばれます) です。しかし、(n が大きい) 大規模なデータセットでは、観測値の各ペアについて G(x1,x2) (グラム行列) を評価すると計算コストが高くなります。

ランダムな特徴量拡張の方式では、ドット積がガウス カーネルを近似するようなランダム変換を求めます。つまり、次のようになります。

G(x1,x2)=φ(x1),φ(x2)T(x1)T(x2)',

ここで、T(x)p における x を高次元空間 (m) にマッピングします。Random Kitchen Sink[1]方式では、次のランダムな変換を使用します。

T(x)=m1/2exp(iZx')',

ここで、Zm×pN(0,σ2) から抽出した標本、σ2 はカーネル スケールです。この方式では O(mp) の計算および格納が必要です。Fastfood[2]方式では、ガウス スケーリング行列と組み合わせたアダマール行列を使用して、Z の代わりに別のランダムな基底 V を導入します。このランダムな基底により、計算コストが O(mlogp) に、ストレージが O(m) に削減されます。

m および σ2 の値はそれぞれ、fitrkernel の名前と値のペアの引数 NumExpansionDimensions および KernelScale を使用して指定できます。

関数 fitrkernel は、ランダムな特徴量拡張に Fastfood 方式を使用し、線形回帰を使用してガウス カーネル回帰モデルに学習をさせます。関数 fitrsvm のソルバーでは n 行 n 列のグラム行列の計算が必要ですが、fitrkernel のソルバーに必要なのは、n 行 m 列の行列の形成だけです。ビッグ データの場合は一般に m が n よりはるかに小さくなります。

拡張機能

R2018a で導入