Main Content

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

resume

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

説明

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

UpdatedMdl = resume(Mdl,Tbl,ResponseVarName) は、Tbl 内の予測子データと Tbl.ResponseVarName 内の真の応答を使用して学習を続行します。

UpdatedMdl = resume(Mdl,Tbl,Y) は、table Tbl 内の予測子データと Y 内の真の応答を使用して学習を続行します。

UpdatedMdl = resume(___,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);

Mdl = fitrkernel(Xtrain,Ytrain,'Standardize',true, ...
    '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


Mdl RegressionKernel モデルです。

テスト セットについてイプシロン不感応誤差を推定します。

Xtest = X(idxTest,:);
Ytest = Y(idxTest);

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

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

UpdatedMdl = resume(Mdl,Xtrain,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,Xtest,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);

[Mdl,FitInfo] = fitrkernel(Xtrain,Ytrain,'Standardize',true,'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,:);
Ytest = Y(idxTest);

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

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

[UpdatedMdl,UpdatedFitInfo] = resume(Mdl,Xtrain,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,Xtest,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.1785
                 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.1146
                 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 の学習に使用した予測子データ。np 列の数値行列を指定します。n は観測値の個数、p は予測子の個数です。

データ型: single | double

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

データ型: double | single

Mdl の学習に使用した標本データ標本データ。テーブルとして指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。必要に応じて、応答変数用および観測値の重み用の追加列を Tbl に含めることができます。Tbl には、Mdl を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。

テーブルに格納されている標本データを使用して Mdl に学習をさせた場合、resume の入力データもテーブルに含まれていなければなりません。

Mdl の学習に使用した応答変数の名前。Tbl 内の変数の名前で指定します。ResponseVarName の値は名前 Mdl.ResponseName に一致しなければなりません。

データ型: char | string

メモ

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

名前と値の引数

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

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

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

Mdl の学習に使用した観測値の重み。'Weights' と数値ベクトル、または Tbl に含まれる変数の名前で構成されるコンマ区切りのペアとして指定します。

  • Weights が数値ベクトルである場合、Weights のサイズは X または Tbl の行数と等しくなければなりません。

  • WeightsTbl 内の変数名である場合、Weights を文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、重みが Tbl.W として格納されている場合、Weights として 'W' を指定します。それ以外の場合、Tbl の列は Tbl.W を含めてすべて予測子として扱われます。

観測値の重みを指定した場合、resume は合計が 1 になるように Weights を正規化します。

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

線形係数およびバイアス項 (切片) の相対許容誤差。非負のスカラーとして指定します。

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

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

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

例: 'BetaTolerance',1e-6

データ型: single | double

勾配の絶対許容誤差。非負のスカラーとして指定します。

最適化反復 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) に置き換えることにより非線形回帰モデルを取得します。ここで、xii 番目の観測値 (行ベクトル)、φ(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) から抽出した標本、σ はカーネル スケールです。この方式では O(mp) の計算および格納が必要です。Fastfood[2]方式では、ガウス スケーリング行列と組み合わせたアダマール行列を使用して、Z の代わりに別のランダムな基底 V を導入します。このランダムな基底により、計算コストが O(mlogp) に、ストレージが O(m) に削減されます。

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

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

拡張機能

バージョン履歴

R2018a で導入