LoginSignup
0
1

More than 3 years have passed since last update.

機械学習 第二章 非線形回帰モデル

Posted at
単回帰/重回帰
y=w_0+w_1x+w_2x_2+...+w_mx_m

→非線形な回帰を考えたい
→xの代わりにΦ(x)を用いる。

*xからΦ(x)に代えてもwについては線形のまま

予測model;

\hat{y}= w_0+w_1\phi_1(x) +w_2\phi_2(x)+...+w_m\phi_m(x)

これは重みwについて線形

基底展開法
  • 回帰関数として、基底関数と呼ばれる既知の非線形関数とパラメータベクトルの線形結合を使用
  • 未知パラメータは線形回帰モデルと同様に最小二乗法や最尤法により推定

多項式

\phi_j=x^j

ガウス型基底

\phi_j(x)=\exp\biggl(\frac{(x-\mu_j)^2}{2h_j} \biggr)

基底展開法も線形回帰と同じ枠組みで推定可能

  • 説明変数
x-i=(x_i1,x_i2,...,x_im)\in \mathbb{R}^m
  • 非線形関数ベクトル
\phi(x_i)=(\phi_1(x_i),\phi_2(x_i),...,\phi_k(x_i))^T\in \mathbb{R}^k
  • 非線形関数の計画行列
\Phi^(train)=(\phi(x_1),\phi(x_2),...,\phi(x_n))^T\in \mathbb{R}^{n×k}
  • 最尤法による予測値
\hat{y}=\Phi(\Phi^{(tarin)T}\Phi^{(train)})^{-1}\Phi^{(train)T}y^{(train)}

未学習(underfitting)と過学習(overfitting)
  • 学習データに対して、十分小さな誤差が得られないモデル→未学習
  • 小さな誤差は得られたけど、テスト集合誤差との差が大きいモデル→過学習

  • 不要な基底関数を削除
    基底関数の数、位置やバンド幅によりモデルの複雑さが変化
    解きたい問題に対して多くの基底関数を用意してしまうと過学習の問題が起こるため、適切な基底関数を用意(CVなどで選択)

  • 正則化法(罰則化法)
    「モデルの複雑さに伴って、その値が大きくなる正則化項(罰則項)を課した関数」を最小化
    正則化(平滑化)パラメータ

S_\gamma = (y-\Phi w)^T(y-\Phi w)+\gamma R(w)

  • 正則化項(罰則項)の役割
    無い→最小2乗推定量
    L2ノルムを利用→Ridge推定量
    L1のノルムを利用→Lasso推定量

  • 正則化パラメータの役割
    小さく→制約面が大きく
    大きく→制約面が小さく

  • 手元のモデルがデータに未学習しているか過学習しているか

訓練誤差もテスト誤差もどちらも小さい→汎化しているモデルの可能性
訓練誤差は小さいがテスト誤差も大きい→過学習
訓練誤差もテスト誤差もどちらも小さくならない→未学習
回帰の場合には陽に解が求まります(学習誤差と訓練誤差の値を比較)

  • ホールドアウト法

有限のデータを学習用とテスト用の2つに分割し、「予測精度」や「誤り率」を推定する為に使用

・学習用を多くすればテスト用が減り学習精度は良くなるが、性能評価の精度は悪くなる
・逆にテスト用を多くすれば学習用が減少するので、学習そのものの精度が悪くなることになる。
・手元にデータが大量にある場合を除いて、良い評価性能を与えないという欠点がある。

基底展開法に基づく非線形回帰モデルでは、基底関数の数、位置、バンド幅の値とチューニングパラメータをホールドアウト値を小さくするモデルで決定する。

  • クロスバリデーション(交差検証)


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1