読者です 読者をやめる 読者になる 読者になる

L1/L2正則化に関して調べたメモ

Python 機械学習 R

機械学習を勉強しているとよく目にするL1/L2について、いろいろ調べたものをメモ程度に。


  • 分類や回帰分析では、学習データとモデル値の誤差を最小化することでモデル化を行うが、過学習を避けるためにペナルティ項を加える。
  • そのペナルティを加えることで、重み付けベクトル(e.g. 2次元:w1, w2)の値が取れる範囲に条件をつけられ、過学習を防ぐ。


わかりやすい絵は「パターン認識機械学習(出版:シュプリンガー・ジャパン株式会社)」に載っているのでご参考まで。
d.hatena.ne.jp


L1ノルム正則化

  • { \displaystyle  ||θ||_1≤R,  ||θ||_1=\sum_{j=1}^{b} |θ_j|} のように定義され、w1, w2は原点を中心とした四角の領域を取る。
  • このとき、四角の領域に接するようにしないといけなく、自ずとw1=0となる。
  • Lasso回帰とも呼ばれる。

< 特徴 >

  • L1正則化は重み付け要素w1=0となるため、「不要なパラメータを削りたい」という時によく使われる。(次元・特徴量削減)
  • モデルの推定と変数の選択を同時に行うことができる。
  • 特に、次元数 >> データ数(仕事ではよくこの状況に出くわす)に強い。但し、変数はデータ数を超えることはできない。
  • 変数間に強い相関があると、相関を捉えられず適切に変数を選択できない可能性がある。

L2ノルム正則化

  • { \displaystyle  ||θ||^2≤R} のように定義され、w1, w2は原点を中心とした円の領域を取る。
  • このとき、円の領域に接するようにしないといけなく、自ずとw1≠0, w2≠0となる。
  • Ridge回帰とも呼ばれる。

< 特徴 >

  • L2正則化は「過学習を抑えて汎用化したい」という時によく使われる。
  • L2正則化項は微分が可能なため、解析的に解ける。L1正則化項は解析的に解けない。

Elastic net正則化


いずれも、Pythonだとscikit-learn(機械学習ライブラリ)、Rだと{glmnet}で利用が可能。



参考

TJOさんブログ
tjo.hatenablog.com

くるじぇさんブログ
breakbee.hatenablog.jp