L1正則化(LASSO)完全ガイド:直感・数学・最適化アルゴリズムと実務上の注意点

L1正則化とは — 概要

L1正則化(L1 regularization)は、機械学習や統計モデリングで過学習を抑制し、モデルの係数に「疎性(sparsity)」を与えるために用いられる手法です。損失関数に係数ベクトルのL1ノルム(各係数の絶対値の和)に比例するペナルティ項を加えることで実現されます。線形回帰にL1ペナルティを加えた手法は特に「LASSO(Least Absolute Shrinkage and Selection Operator)」として知られ、Tibshirani(1996)が広く普及させました。

数学的定式化

標準的な線形回帰(最小二乗)にL1正則化を導入すると、最小化する目的関数は次のようになります:

  • J(w) = (1/2n) ||y - Xw||_2^2 + λ ||w||_1

ここで w は係数ベクトル、X は設計行列、y は目的変数、λ(≥0)は正則化パラメータ、||w||_1 = Σ_i |w_i| がL1ノルムです。λが大きいほどペナルティが強くなり、多くの係数が0になります(=変数選択効果)。

なぜL1正則化を使うのか(直感と効果)

  • 疎な解:L1は係数を完全に0にする傾向があり、変数選択の役割を果たす。
  • 過学習の抑制:モデルの自由度を実効的に下げることで汎化性能を向上させる。
  • モデル解釈性向上:不要な特徴を除外するため、解釈しやすいモデルが得られる。

これに対してL2正則化(リッジ)は係数を小さくするが0にしにくく、疎性は生じにくいという違いがあります。

几何学的な理解(なぜ0を作るのか)

目的関数の等値曲線とペナルティの等高線(L1なら菱形、L2なら球状)を考えると、最適解はしばしばL1の角(座標軸に沿った点、つまり0を含む)で交わるため、係数が0になりやすくなります。これがL1がスパース解を生む幾何学的直感です。

最適化アルゴリズム(扱い方)

L1は絶対値のため0で非微分(非滑らか)ですが、目的関数全体は凸です。代表的な最適化手法:

  • 座標降下法(Coordinate Descent):各座標を固定して1変数問題を解く。特に高次元で効率的で、glmnet等で広く使われる。
  • 近接勾配法(Proximal Gradient, ISTA):勾配ステップとL1に対する近接作用素(ソフトしきい値)を交互に適用する。高速版はFISTA。
  • LARS(Least Angle Regression)/Homotopy:λを連続的に変化させながら解のパスを得る手法。解のパス探索が得意。
  • 内点法や座標降下と組み合わせた専用ソルバ:大規模問題やGLM(ロジスティック回帰等)にも対応。

ソフトしきい値(soft-thresholding)はL1の近接演算子で、1次元では解が次の形になります:S_λ(z) = sign(z) * max(|z| - λ, 0)。座標降下やISTAではこの演算が中心です。

実務上の注意点

  • スケーリング:L1は特徴ごとのスケールに敏感。標準化(平均0、分散1)やスケーリングは必須に近い。
  • λの選び方:交差検証(CV)が一般的。λのパスを評価して最良点や「1SEルール」を使うことが多い。
  • 相関する説明変数:強く相関する特徴があるとLASSOはその中から一つを選ぶ傾向があり、不安定になることがある。Elastic Net(L1+L2)で改善できる。
  • 標本数と次元:p >> n の場合でもL1は有効だが、変数選択の一貫性(正しく真の変数を選べるか)は設計行列の条件(irrepresentable condition等)に依存する。

L1と統計的性質(理論的観点)

LASSOの理論では、推定一貫性や変数選択一貫性(モデル選択の一致性)に関する研究が行われてきました。正しく重要変数を選ぶためには、相関構造に関する条件(irrepresentable condition)や十分な信号強度が必要です。また、L1はバイアスを導入するため、推定量のバイアス-分散トレードオフが生じます。ポスト選択推定として、LASSOで変数を絞った後に通常最小二乗法(OLS)で再推定すること(debiasing/post-selection OLS)が実務で行われます。

ベイズ的解釈

L1正則化はベイズ視点ではラプラス(双指数)事前分布を係数に課すことと等価です。つまり、係数に独立な平均0のラプラス事前を置いたMAP推定がL1ペナルティ付きの最適化と対応します。ただし、事後分布の完全な推論(不確実性評価)にはベイズ推論手法が別途必要です。

拡張と派生手法

  • Elastic Net:L1とL2の組合せ。相関の高い特徴群から複数を保持しやすい(Zou & Hastie, 2005)。
  • Group Lasso:事前にグループ化された変数群ごとにL2ノルムを取り、その和にL1をかけることでグループ単位で選択する(Yuan & Lin, 2006)。
  • Adaptive Lasso:重み付きL1で、適応的にペナルティを調整し、変数選択の一貫性を改善する手法。
  • スパース回帰の他の手法:SCAD、MCPなど、バイアス低減や選択特性を改善する非凹罰則も研究されている。

実装とツール

  • Python: scikit-learn の Lasso、LassoCV、ElasticNet、coordinate descent実装。glmnet の Python ラッパーも利用可能。
  • R: glmnet パッケージ(Friedman et al.)が高速で広く使われている。交差検証やλのパス計算が充実。
  • 大規模/分散: 専用ライブラリや確率的最適化法、分散実装を検討。

実務的なワークフローの例(簡潔)

  • データ前処理(欠損、標準化、カテゴリ処理)
  • 訓練/検証の分割、交差検証の設定
  • λのグリッドでモデル学習(またはパス計算)→ CVで最適λを決定
  • 必要ならポストプロセス(非ゼロ変数で再推定、解釈、検証)
  • レポートと不確かさ評価(ブートストラップやベイズ手法の併用を検討)

利点と限界のまとめ

利点:

  • 自動的な変数選択によるモデルの簡潔化と解釈性向上
  • 高次元データでの有効性と過学習抑制
  • 凸最適化でグローバル最適が得られる(目的は凸)

限界:

  • 相関の強い変数群に対して不安定になりやすい
  • 推定にバイアスが入る(特に大きな係数に対して)
  • 変数選択の理論的一致性は設計行列の条件に依存する

実例(短いケーススタディ)

たとえば医療データで多数のバイオマーカーがある場合、L1正則化を用いると重要なマーカーだけを選択して予測モデルを構築できる。だが、バイオマーカー間で高い相関があると選択がばらつきやすいため、Elastic Net を使用して安定化することが多い。

まとめ

L1正則化(LASSO)は、変数選択と過学習抑制を同時に達成できる強力な手法です。スケーリング、λ選択、相関構造への配慮など実務上の注意点を守れば、モデルの解釈性と汎化性能を向上させられます。用途やデータ特性に応じてElastic NetやGroup Lassoなどの拡張も検討すると良いでしょう。

参考文献