【初学者向け】正則化とは【L1正則化 / L2正則化】

スポンサーリンク

【本記事の内容】正則化とは(L1正則化/L2正則化)

今回は、機械学習・統計学でモデル推定の際によく起こる「過学習」を抑制する手法として「正則化」の概要について説明していきます。

【目次】

正則化と過学習

過学習

過剰適合(かじょうてきごう、英: overfitting)や過適合(かてきごう)や過学習(かがくしゅう、英: overtraining)とは、統計学や機械学習において、訓練データに対して学習されているが、未知データ(テストデータ)に対しては適合できていない、汎化できていない状態を指す。汎化能力の不足に起因する。

 

過学習の例。直線はシンプルで多少の誤差はあるものの、大まかにデータを捉えている。曲がりくねった線は誤差0だが非常に複雑で、おそらくうまく一般化ができてない。

wikipedia「overfitting」https://ja.wikipedia.org/wiki/%E9%81%8E%E5%89%B0%E9%81%A9%E5%90%8 から引用

 

 

もっとかみ砕いていえば、過学習というのは

例えば、

「数学の期末テストで「計算問題集」しか勉強せずにテストに臨んで、計算問題に対してはいいパフォーマンス出すけど、文章問題・応用問題は全然できない」

みたいな感じです。

正則化

機械学習において、モデルの過学習を抑えるために損失関数(誤差関数)に正則化項を導入する手法のことを「正則化」と言います。

正則化の数式表現

正則化でよく使われるL1正則化, L2正則化の一般形のLq正則化は以下のように表せます。

\(L_q\)正則化

 

\begin{eqnarray}
S_{\lambda}(\boldsymbol{\beta}) &=&  f(\boldsymbol{\beta}) + \lambda || \boldsymbol{\beta}||_q\\
&=&  f(\boldsymbol{\beta}) + \lambda \sum_{i=0}^{p}| \boldsymbol{\beta}_i|^q\\
\end{eqnarray}

ただし、

  • \(\boldsymbol{\beta} = (\beta_0,\beta_1, … , \beta_p)^T \): 回帰係数ベクトル(これが求めたいもの!!!)
  • \(S_{\lambda}(\boldsymbol{\beta})\) : コスト関数(=損失関数+正則化項)
  • \(f(\boldsymbol{\beta})\) : 損失関数(誤差関数)
  • \(\lambda (≧0)\) : 正則化パラメータ →この値が大きいほど(モデルの複雑さに)より強いペナルティを与える
  • \(\lambda || \boldsymbol{\beta}||_q\) : 正則化項(罰則項)→ モデルの複雑さ(回帰係数の大きさ)にペナルティを科すことで過学習を抑制している ;  \(\beta_i 大\) →コスト大

L1正則化(Lasso)・L2正則化(Ridge)

正則化の中で、機械学習・統計学で特によく使われるのが「L1正則化(またはLasso)」「L2正則化(またはRidge)」です。(\(L_q\)正則化のq = 1,2を代入したものです。)

\begin{eqnarray}
・L1正則化 : S_{\lambda}(\boldsymbol{\beta}) &=&  f(\boldsymbol{\beta}) + \lambda \sum_{i=0}^{p}| \boldsymbol{\beta}_i|^1\\
・L2正則化 : S_{\lambda}(\boldsymbol{\beta}) &=& f(\boldsymbol{\beta}) + \lambda \sum_{i=0}^{p} \boldsymbol{\beta}_i^{~2}\\
\end{eqnarray}

L1正則化・L2正則化の特徴・比較

特徴
・L1正則化の特徴 :   変数選択(スパース性)(回帰係数の)推定を同時に行える
・L2正則化の特徴 :   過学習を抑制する / 解析的に解が求まる
比較
【L1正則化】 【L2正則化】
スパース性がある(変数選択ができる) スパース性がない
解析的に解が求まらない(数値計算で推定) 解析的に解が求まる
過学習の抑制 〇 過学習の抑制 ◎
精度 〇 精度 ◎
スパース性

回帰係数の多くを0と推定する(疎な解が求まる)性質のこと。

0と推定された回帰係数を重要でない変数とみなすことで、変数選択にも使うことができる

 

(例) モデル式  :

  • $$\hat{y}=\beta_0+\beta_1 x_1 +\beta_2 x_2+ \beta_3 x_3$$
  • $$\boldsymbol{\beta}_{lasso} = (\beta_0,\beta_1, \beta_2 , \beta_3)^T  = (1, 0, 2, 0)^T$$

の場合、回帰式は

$$ \hat{y}= 1+2 x_2$$

となる。すなわち、\( \beta_1, \beta_3 \)に対応する変数\( x_1, x_3 \)は予測に影響を与えない → 重要でない変数 と考えることができる。

解析的に解が求まる

求めたい未知数(パラメータ)が式変形や近似式の利用によって求まることをいう。

→ L2正則化は式変形だけで回帰係数が求まる / L1正則化は式変形だけで回帰係数が求まらない

過学習の抑制と精度

L1正則化でもL2正則化でも過学習の抑制は行われる。

一方で、精度については、L1正則化は回帰係数の多くを0と推定することで「次元圧縮(変数選択)を行っている」ことから、L2正則化より式の表現力が小さい。そのため、L2正則化の方がL1正則化より精度が高い傾向にある。

参考文献

次回予告

次は「L2正則化」→「L1正則化」の順で解説していく予定です。

何かあればコメント欄にて。

コメント

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