正則化とは?線形回帰の精度を上げるテクニック!!

スポンサーリンク
基礎知識
この記事を読んで分かること
  • 正則化とは何か
  • 変数選択と縮小推定の違い
  • 漸次的選択法、リッジ回帰、Lasso回帰とはどんな方法なのか

 

正則化(Regularization)とは?

正則化(Regularization)は、過学習を防止するための手法で、モデルの学習時に利用されます。

過学習の原因の1つとして、機械学習のモデルが複雑すぎることが挙げられます。

そこで、正則化(Regularization)は、適切な係数を取捨選択したり、係数の大きさを小さくして過学習を防止します。

ロボくん
ロボくん

モデルの学習の時に、最小二乗法などの推定だけでは十分じゃないから、正則化も合わせて使うことでモデルの精度が上がるんだね。

正則化の種類

正則化は「変数選択」と「縮小推定」の2つに分けられます。

正則化の種類
正則化の種類説明
変数選択機械学習モデルの係数を必要なものだけ見つけ出し、不要なものはなくす
縮小推定機械学習モデルの特定の係数だけが大きくならないように制御する

変数選択の手法

変数選択では、係数を1つずつ変化(ON、OFFを切り替え)させながら係数の影響を確認していく「漸次的選択法」がよく使われます。

漸次的選択法には、変数を一つずつ足していく「前向き漸次的選択法」と変数を一つずつ減らしていく「後向き漸次的選択法」があります。

前向き漸次的選択法

前向き漸次的選択法では、係数がない状態から一つずつ係数を増やしていき、モデルの精度が上がるか試していく手法です。

例えば

  $$y=ax^3 + bx^2 + cx + d$$

というモデルがあるとします。

まず最初に全ての係数を0(a,b,c全て0)にして精度を確認します。

  $$y= d$$

次に、係数を一つ(c)足して精度が上がっているか確認します。

  $$y= cx + d$$

更に係数を一つ(b)足して精度が上がっているか確認します。

  $$y=bx^2 + cx + d$$

これを繰り返して精度の高いモデルを選択します。

後ろ向き漸次的選択法

後ろ向き漸次的選択法では、係数が全てある状態から一つずつ係数を減らしていき、モデルの精度が上がるか試していく手法です。

例えば

  $$y=ax^3 + bx^2 + cx + d$$

というモデルがあるとします。

まず最初に全ての係数がある状態の精度を確認します。

  $$y=ax^3 + bx^2 + cx + d$$

次に、係数を一つ(a)減らして精度が上がっているか確認します。

  $$y=bx^2 + cx + d$$

更に係数を一つ(b)減らして精度が上がっているか確認します。

  $$y= cx + d$$

これを繰り返して精度の高いモデルを選択します。

 

ロボくん
ロボくん

変数選択では係数を入れいるか入れないか、択一的な処理をするんだね。

モデルが大きく変わるため、うまく精度が上がらない場合もあるよ。

 

 

縮小推定

縮小推定では、係数が大きくなりすぎないように調整して、モデルの精度を上げていきます。

縮小推定は、「リッジ回帰(Ridge regression)」や「Lasso回帰(least angle regression)」がよく使われます。

リッジ回帰(Ridge regression)

リッジ回帰では、係数の二乗和が大きくなりすぎないように制御する手法です。

モデルのパラメータが大きくなるとペナルティ(罰則項)を与えるようなアルゴリズムになっています。

例えば

  $$y=ax^3 + bx^2 + cx + d$$

というモデルがあるとします。

最小二乗法と組み合わせてリッジ回帰を使用した場合、以下の誤差関数Rを最小にするようにパラメータを調整します。

  $$誤差関数=最小二乗誤差 + 罰則項(係数の二乗和)$$

  $$R=\sum_{i=1}^{n}\{y_i – (ax^3 + bx^2 + cx + d)\}^2 + α(a^2 + b^2 + c^2)$$

Lasso回帰(least angle regression)

Lasso回帰では、係数の絶対値の和が大きくなりすぎないように制御する手法です。

リッジ回帰と同様に、モデルのパラメータが大きくなるとペナルティ(罰則項)を与えるようなアルゴリズムになっています。

例えば

  $$y=ax^3 + bx^2 + cx + d$$

というモデルがあるとします。

最小二乗法と組み合わせてリッジ回帰を使用した場合、以下の誤差関数Rを最小にするようにパラメータを調整します。

  $$誤差関数=最小二乗誤差 + 罰則項(係数の絶対値の和)$$

  $$R=\sum_{i=1}^{n}\{y_i – (ax^3 + bx^2 + cx + d)\}^2 + α(|a| + |b| + |c|)$$

 

ロボくん
ロボくん

変数選択のように係数を消したりせず、

縮小推定では、係数を調整するようなルールを適用していくんだね。

 

まとめ

正則化とは過学習を防止するための手法で、実際にAIを利用するためには必要不可欠な手法と言えるでしょう。

変数選択では、AIモデルの係数の必要性を見出し、縮小推定では特定の係数が全体に影響を及ぼしすぎないように制御する役割があります。

AIのモデルは複雑なため必要な特徴量を見つけることで、汎化性能を高めるだけでなく、モデルの解釈を助けてくれるというメリットもあります。

コメント

タイトルとURLをコピーしました