ラビットチャレンジ【機械学習】~非線形回帰モデル~
概要
この章では以下のような項目を学んだ
・非線形回帰モデルの基本
・パラメータ推定
・バイアスとバリアンスのトレードオフ
・モデルの汎化性能を測定方法
・ハイパーパラメータチューニング
・サマリー
非線形回帰モデルの基本
データを線形で予測できる場合は非常に少ない。下図は青色のデータに対して線形回帰を行った結果(オレンジ色線)である。
データの特徴を線形回帰では捉えることができていない
下図の赤線のように非線形な構造を捉える仕組みが必要がある
非線形回帰モデルとは複雑な非線形構造を内在する現象に対して非線形回帰モデリングを実施する方法である
パラメータ推定
基底展開法
・回帰関数として、基底関数と呼ばれる既知の非線形関数とパラメータベクトルの戦型結合を使用
未知のパラメータは線形回帰モデルと同様に最小二乗法により推定
上記のxiを基底関数という
よく使用される基底関数
・多項式関数
・ガウス型基底関数
スプライン関数/Bスプライン関数
表現力が大きな基底関数を選べば万事OK!!ではない
適切な基底関数を選択しないと未学習(underfitting)や過学習(overfitting)といった問題がでてくる
未学習
学習データに対して十分小さな誤差が得られないモデル
・(解決策)モデルの表現力を上げる
小さな誤差は得られたけど、テスト集合誤差との差が大きいモデル
・(解決策1)学習データを増やす
・(解決策2)不必要な基底関数(変数)を削除して表現力を抑止
・(解決策3)正則化法(Ridge正則化・Lasso正則化)を利用して表現力を抑止
正則化にかんしては、こちらの記事が非常に分かりやすいhttps://qiita.com/Takayoshi_Makabe/items/8f6dcb25124b9dcb1ae8
バイアスとバリアンスのトレードオフ
機械学習モデルの学習を進めていくなかで真のモデル(本当に欲しいモデルの値)との間にズレが生じてしまう。
このズレは
「バイアス、バリアンス、ノイズ」の3つの要素から構成される。
ノイズ
どうやっても減らすことができない誤差(対処のしようがない)
バイアス
モデルの表現力が低いがゆえに学習が上手くいかない度合い
バリアンス
訓練データに依存し過ぎることで新しいデータへの予測が悪化する度合い
モデルの表現力を抑えるとバイアスが大きくなりバリアンスが小さくなる
モデルの表現力を高めるとバイアスが小さくなりバリアンスが大きくなる
バイアスとバリアンスはトレードオフ関係にあるため、バイアスとバリアンスのバランスが取るようにモデルの表現力を制御する必要がある
モデルの汎化性能を測定方法
学習したモデルの汎化性能を測定するために大きく分けて2つの方法がある
ホールドアウト法
有限のデータを学習用と検証用の2つに分割し「予測精度」や「誤り率」を推定するために使用する
・学習の精度と性能評価の精度はトレードオフの関係にある
・手元に大量のデータがないと性能評価は良くならない
交差検証法法
データをK個に分割してそのうち1つを検証用、残りのK-1個を学習用に使用する
・比較的データが少ない時に使用する
・精度の平均をCV値と呼ぶ
ハイパーパラメータチューニング
機械学習においては人間が調整する必要があるハイパーパラメータがある
ハイパーパラメータを調整する方法の1つとしてグリッドサーチがある
グリッドサーチ
・全てのパラメータの組み合わせで評価値を算出
・最も良い評価値のを持つチューニングパラメータをモデルのパラメータとして採用
サマリー
データ構造が複雑であれば線形回帰ではなく、非線形回帰にてデータを捉える必要がある
非線形回帰になるとモデルの表現力(基底関数)によって学習が進まなかったり、過学習になったりする ⇒ 適切なモデルの表現力を制御する必要がある
学習だけではなく、そのモデルを性能評価する精度も大切であり、訓練データにだけ良い予測精度を出しても使い物にならない ⇒ 検証法も間違いなく選択する
モデルのハイパーパラメータは人間がやる必要があるが、手作業でしても終わらないため、プログラムで機械的に探索したほうがいい