L1ペナルティ徹底解説:LASSOの原理・最適化・スケーリングと実務ポイント

L1ペナルティとは — 概要

L1ペナルティ(L1正則化)は、統計学や機械学習におけるモデル推定で用いられる正則化手法の一つで、パラメータの絶対値和(L1ノルム)に対して罰則を課すものです。代表的な応用は線形回帰におけるLASSO(Least Absolute Shrinkage and Selection Operator)で、目的関数の最小化において誤差項に加えλ||β||1(βは係数ベクトル、λは正則化パラメータ)が加わります。

数式での定式化

回帰問題を例にすると、L1ペナルティ付きの最小化問題は次のように書けます。

minimize (1/2n) ||y - Xβ||_2^2 + λ ||β||_1

ここで n はサンプル数、X は設計行列、y は目的変数ベクトル、β は係数、||β||_1 = Σ_i |β_i| です。λ ≥ 0 を調整することでモデルの複雑さとデータ適合度のトレードオフを制御します。

L1ペナルティの特徴と直感的理解

  • スパース性(変数選択性): L1ペナルティは多くの係数をちょうどゼロにする性質があります。これは高次元データや変数選択を同時に行いたい場面で有効です。

  • 凸性だが非微分可能: 目的関数は凸なのでグローバル最適解が存在しますが、L1ノルムはゼロ点で微分不可能であり、解析的扱いや最適化上の工夫が必要です。

  • バイアスの導入: L1は係数を縮小(shrink)するため、小さなバイアスが導入されます。特に大きな係数も縮小されるので推定量の無偏性は失われます。

  • 相関する特徴量への挙動: 相関の強い説明変数がある場合、L1はその中からいくつかを選び他をゼロにする傾向があり、どれが選ばれるかはデータやλに依存して不安定になることがあります。

ジオメトリ的直観

二次誤差(楕円形の等高線)とL1ノルムの等高線(ひし形)を重ね合わせると、最適解がひし形の角(つまり軸に沿ったゼロ成分を持つ点)で接することが多く、これが係数がゼロになる直観的理由です。L2ペナルティ(リッジ回帰)だと等高線は円形であり、ゼロになる“角”がないためスパース性を生みにくい点が対照的です。

最適化アルゴリズム(実装上のポイント)

  • 座標ごとの降下法(Coordinate Descent): 各係数を一つずつ更新する手法で、L1のソフトしきい値(soft-thresholding)により効率よく解を得られます。多くの実装(glmnetやscikit-learnのLasso)はこの手法を採用しています。

  • ソフトしきい値演算(Proximal operator): 勾配ステップの後にsoft-thresholdingを適用することで、ISTA/FISTAのような近接勾配法でも扱えます。1次元の更新では次の閉形式が使えます: S(a, λ) = sign(a)·max(|a|−λ, 0)。

  • LARSアルゴリズム: LASSOの正則化経路(λを連続的に動かしたときの解の軌跡)を効率的に計算するために開発された手法(LARS)は、特に変数数がそれほど大きくない場合に有用です。

ハイパーパラメータλの選び方

  • 交差検証(Cross-Validation): 最も一般的。データを分割してλごとの性能を比較し、汎化性能の良いλを選びます。

  • 情報量規準(AIC, BIC等)や統計的基準: モデルの複雑さと適合度のバランスをとる指標として利用できますが、L1では自由度の扱いがやや複雑です。

  • 正則化経路の可視化: λを変化させたときの係数パスを描くことで、どの変数がどのタイミングで入るかを観察できます。

スケーリングの重要性

特徴量のスケーリング(平均0、分散1への標準化)はほぼ必須です。L1ペナルティは各係数の絶対値を直接罰するため、特徴量のスケールが異なると不適切な変数選択につながります。実装によっては内部で標準化を行うものもありますが、明示的に確認しておくのが安全です。

L1の欠点と改善手法

  • 相関の強い特徴量の扱いが不安定: 相関が強いと、ある変数群をランダムに選択するような挙動になりやすいです。

  • バイアスが残る: 重要な係数であっても縮小されるため、推定バイアスを低減したい場合はそのままでは不十分です。

  • 改善方法:

    • Elastic Net: L1とL2の混合ペナルティで、相関変数群を一緒に選びやすくし安定性を向上させます(Zou & Hastie, 2005)。
    • Group Lasso: グループ単位で変数選択を行う拡張。
    • Adaptive Lasso: 係数ごとに重みを付けて一部のバイアスを緩和し、一致性(oracle property)を改善する手法。

統計的解釈とベイズ対応

L1ペナルティはベイズの立場から見るとラプラス(双指数)分布の事前分布を仮定したMAP推定と一致します。すなわち、係数に独立なラプラス事前を与えることでL1正則化と同等の推定が得られます(Bayesian Lasso)。この対応は確率的な解釈や不確かさの推定を与える際に有用です。

応用例と実務上のヒント

  • 高次元データ(p >> n)での特徴選択: 遺伝子発現データやテキスト解析のように説明変数が非常に多い場合、L1は有力な選択肢です。

  • 解釈性が必要なモデル: モデルの説明性(どの変数が効いているか)を重視する場合、スパースなモデルは有利です。ただし相関が影響する点に注意します。

  • 実装上の注意:

    • 必ず特徴量をスケーリングする。
    • λは交差検証で選ぶ。複数の指標(MSE、AUCなど)で検討する。
    • 相関が強い場合はElastic Netを検討する。
    • モデルの不確実さを評価したい場合はベイズ的手法やブートストラップも考慮する。

理論的な性質(概要)

理論的には、適切な条件の下でLASSOはスパースな真のモデルを一貫して復元できる場合があります(変数選択の一貫性)。ただし、これらの保証は設計行列の性質(例えば相関構造やスパース性レベル)やλの選び方に依存します。また、推定された係数にはバイアスが残るため推定量の効率性と解釈には注意が必要です。

代表的な実装とツール

  • glmnet(R、Matlabのインターフェースあり): 高速な座標降下法に基づく実装で、正則化経路の計算が得意です。

  • scikit-learn(Python): Lasso, LassoCV などの実装を提供。

  • 専用ライブラリやパッケージ: 多くの統計/機械学習ライブラリにL1正則化が組み込まれています。

まとめ — いつ使うべきか

L1ペナルティは、モデルのスパース化・変数選択を自動的に行いたい場合に強力なツールです。高次元データや解釈性が重要なケースで特に有用ですが、相関の強い変数群やバイアスの問題には注意が必要です。実務では、特徴量の標準化、λの適切なチューニング、必要に応じてElastic Netなどの改良手法を併用することで、より安定かつ実用的な結果を得られます。

参考文献