0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DeepRunning ~Level4.2~

Last updated at Posted at 2020-07-24

#Level4.機械学習講座(理論と実践)
##4-2.非線形回帰モデル
###4-2-1.データの捉え方
  ●複雑な非線形構造を内在する現象に対して、非線形回帰モデリングを実施する
   データの構造を線形で捉える場合は限られている。
   ⇒非線形な構造をとらえる仕組みを考える。

###4-2-2.基底展開法
  ●基底関数と呼ばれる「既知の非線形関数」と「パラメータベクトル」の線形結合
  ●未知のパラメータには、線形回帰モデルと同じく「最小二乗法」「最尤法」によって推定する

  y_{i}=f(x_{i})+ε_{i}

  y_{i}=w_{0}+\sum_{j=1}^{m}w_{j}\phi_{j}+ε_{i}

  ・・・$x$を線形の写像の$\phi$によって、非線形にしてから$w$との線形結合を見る。
   ムムム。難しいですね。
   ということで、別にお勉強してみました。
   困ったときのWikipedia様。
   <非線形回帰(出典:Wikipediaより)>

  ●よく使われる基底関数
   ①多項式関数
   ②ガウス型基底関数
   ③スプライン関数/Bスプライン関数

  ⇒$x$軸の空間は横軸であるので、$x$を一度、非線形に変換する。
   その後、非線形の関数とパラメータを線形結合でfitできるのではという考え方。
   もう少し深く勉強が必要そうです。(笑)

###4-2-3.1次元の基底関数に基づく非線形回帰

【多項式(1~9次)】

\phi_j=x^j

【ガウス型基底】
  ●正規分布の形そのもので、当然、微分すると1になる。

\phi_j(x)=exp \left\{\frac{(x-μ_j)^2}{2h_j}\right\}

###4-2-4.2次元の基底関数に基づく非線形回帰

【2次元ガウス型基底関数】
  ●ベクトル表記で表せられる。
  ●$h_j$が小さくなるとバンド幅も小さくなり、大きくなるとバンド幅も大きくなる。

\phi_j(x)=exp \left\{\frac{(x-μ_j)^T(x-μ_j)}{2h_j}\right\}

###4-2-5.非線形関数の計画行列や最尤法の予測値

【説明変数】  

x_i=(x_{i1},x_{i2},・・・,x_{im})\in{\mathbb{R}^m}

【非線形関数ベクトル】
  ●基底関数ベクトルに変換した$k$次元のベクトル
  ●$\phi$は事前に用意したものに置き換える。

  \phi(x_i)=(\phi_1(x_i),\phi_2(x_i),・・・,\phi_k(x_i))^T\in{\mathbb{R}^k}

【非線形関数の計画行列】
  ●$n×k$のサイズの行列で、写像を学習データ分だけ用意する。

  \Phi^{(train)}=(\phi(x_1),\phi(x_2),・・・,\phi(x_n))^T\in{\mathbb{R}^{n×k}}

【最尤法による予測値】

  \hat y=\Phi(\Phi^{(train)^T}\Phi^{(train)})^{-1}\Phi^{(train)^{T}}y^{(train)}

###4-2-6.未学習(underfitting)と過学習(overfitting)
  ●未学習 ・・・ 学習データで十分な誤差が得られないモデル。表現力が低い。
  ●過学習 ・・・ 学習データにぴったりのモデル過ぎて、テストデータとの誤差が大きいモデル。

  未学習の場合は、表現力の高いモデルを利用する。
  過学習の場合は、学習データを増やしたり、不要な基底関数(変数)を削除して表現力を抑止する。
  また、正規化法で表現力を抑止する。

  ※何事も「やらなすぎ」「やりすぎ」にはご注意を!!

###4-2-7.過学習(overfitting)対策
 【不要な基底関数を削除】
   ●基底関数の数、位置やバンド幅によりモデルの複雑さが変化する。
   ●適切な基底関数を用意する。

 【正規化法(罰則化法)】
   ●モデルの複雑さに伴い値が大きくなる“正則化項(罰則項)”を課す関数を最小化
    ⇒複数の種類があり、推定量の性質が異なる。
   ●正則化(平滑化)パラメータ

  \mathcal{S}_γ=(y-\Phi w)^{T}(y-\Phi w)+γR(w)  \gamma(>0)

   ⇒$γR(w)$がモデルの複雑さに伴う罰則である。
    $γ$をどの程度抑えるかがポイント。

###4-2-8.正則化項(罰則項)の役割、正規化パラメータの役割

  ●正則化項が無い場合は、最小二乗推定量となる。
  ●L2ノルムを利用する場合は、Ridge推定量と呼ぶ。(縮小推定と呼ばれる)
   ⇒Ridge推定量を大きく取る(制約面を大きく)と、最小二乗推定量と同じになる。
    小さく取る(制約面を小さく)と、パラメータが0になるものが多く、overfittingしてしまう。
  ●L1ノルムを利用する場合は、Lasso推定量と呼ぶ。(スパース推定と呼ばれる)
   ⇒L1ノルムはダイヤモンド形。
    いくつかのパラメータを正確に0に推定する。不要な基底や変数を排除できる。
    また、変数を推定する指標になる。

###4-2-9.モデルの選択
  ●汎化性性能が高い適切なモデルは交差検証法で決定する!!
   ⇒どうやって見つけるのか。

###4-2-10.汎化性能
  ●学習データ以外で、新たな入力データに対する予測性能のこと。
  ●汎化誤差(テスト誤差)が小さいものが良い性能のモデル。
   ⇒当然、学習データではなく、検証データで性能測定する。
  ●バイアス・バリアンス分解
   ⇒今度、ゆっくり勉強してみよう。。。《今後の宿題》

 【訓練誤差】

MSE_{train}=\frac{1}{n_{train}}\sum^{n_{train}}_{i=1}(\hat y_i^{(train)}-y_i^{(train)})^2

 【テスト誤差】

MSE_{test}=\frac{1}{n_{test}}\sum^{n_{test}}_{i=1}(\hat y_i^{(test)}-y_i^{(test)})^2

###4-2-11.学習と検証のデータ利用
 【ホールドアウト法】
   データを学習用とテスト用の2つに分けて「予測精度」「誤り率」
   を推定するために使用する。ただし、問題がある。

   ・学習用を多くすると精度は上がるが、性能評価の精度が落ちる。
   ・テスト用を多くすると学習用が減るため、予測精度が落ちる。
   ・使用できるデータが大量にない場合、良い性能評価を与えない欠点となる。
    ⇒そのため、データ量のバランス等を考えなければならない。
     (例:片方に外れ値のデータが含まれる。等)

 【クロスバリデーション(交差検証:CV)】
   データを学習用とテスト用に分割して、組み替えて使用する。
   分割したデータでは重複していないことが大切。

   制度の平均をCV値と呼び、最も小さいCV値のモデルを採用する。

   ※ホールドアウトとCVでモデルの検証をした際に、
    ホールドアウトの精度の方が良くても、汎化性能の推定としてはCVを利用する。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?