正則化
Regularization ・ せいそくか
係数の大きさにペナルティを課して過学習を抑え、推定を安定させる技法
✦ 30秒で試す — 航海変数を「ほぼ0」でなく「ぴったり0」にできる形がある係数をぴったり0にして変数を落とせるのは?予想してみる概要
正則化は、モデルの係数が大きくなりすぎることに「ペナルティ」を課すことで、過学習を抑え推定を安定させる技法です。過学習とは、モデルが手元のデータの偶然の凹凸まで丸暗記してしまい、そのデータへの当てはまりは完璧に近いのに、新しいデータへの予測がむしろ悪くなる現象を指します。特に説明変数が多い重回帰分析や、変数の数がデータ数に迫る・超えるような状況で、過学習は避けて通れない問題になります。
発想はシンプルです。最小二乗法は「データとのずれ(残差平方和)を最小にする」係数を選びますが、正則化では「残差平方和 + 係数の大きさに応じた罰金」を最小にします。データに合わせようとして係数を大きく振り回すと罰金がかさむため、モデルは「当てはまりの良さ」と「係数の慎ましさ」のバランス点に落ち着きます。罰金の強さは正則化パラメータ λ(ラムダ)で調整し、λ=0 なら通常の最小二乗法、λ を大きくするほど係数はゼロへ縮んでいきます。
罰金の課し方には主に2流派あります。係数の2乗和に課す Ridge(リッジ回帰、L2 正則化)と、絶対値の和に課す Lasso(ラッソ回帰、L1 正則化)です。一見わずかな違いですが、Lasso には「不要な変数の係数を厳密にゼロにして自動的に変数選択する」という際立った性質があり、この違いが両者の使い分けを決めます。
なぜ生まれたか
リッジ回帰は、1970年にホーエルとケナードが「多重共線性」への対処として提案しました。説明変数同士が強く相関していると、最小二乗法の解は極端に不安定になります。データがわずかに変わるだけで係数が大きく振れ、符号すら反転する——数学的には、解こうとする連立方程式(正規方程式)の係数行列がほとんど特異で、逆行列が壊れかけていることが原因です。彼らの処方は、方程式の対角成分に小さな定数 λ を足して安定化させること。これは「係数の2乗和にペナルティを課す」ことと同値でした。同じ発想は、ソ連の数学者チホノフが1940年代から逆問題(観測から原因を逆算する、解が不安定になりやすい問題)のために研究していた「正則化」と同じもので、名前はそこから来ています。
リッジ回帰は、意図的に少しの偏りを入れる代わりに推定のばらつきを大幅に減らす方法です。この「バイアスとバリアンス」の交換は、推定量の性質として「不偏であること」を重んじてきた統計学に対し、偏っていても総合的な誤差が小さい推定のほうが役に立つ場面があると示した点で、転換点となる仕事でした。
第二幕は1996年、ティブシラニの Lasso です。データ収集の自動化で「変数が数百・数千あるが、本当に効くのは一握り」という状況が現実になり、どの変数を残すかという変数選択が切実な問題になっていました。総当たりの変数選択は組み合わせ爆発で不可能、前進・後退の逐次選択はデータが少し変わるだけで選ぶ変数が入れ替わる不安定さを抱えていました。Lasso は絶対値ペナルティという連続的な最適化の副産物として係数を厳密にゼロに落とし、「推定と変数選択を同時に行う」ことを可能にしました。2004年に Lasso の解を λ に沿って一気にたどる計算法(LARS)が生まれ、計算面でも実用になり、正則化は高次元データ時代の統計学と機械学習の中核技術になっています。
詳細
Ridge と Lasso — なぜ Lasso だけゼロになるのか
Ridge と Lasso の違いは、幾何学的に見ると腑に落ちます。ペナルティ付きの最小化「残差平方和 + λ × 罰金」は、「係数の大きさが予算 t 以内に収まる」という制約の下で残差平方和を最小にすることと同値です(λ が大きいほど予算 t は小さい)。係数を座標とする平面に、残差平方和の等高線を描くと、最小二乗解を中心とする楕円が何重にも広がります。予算の領域は Ridge では円(2乗和 ≤ t²)、Lasso では頂点を持つひし形(絶対値和 ≤ t)です。解は、最小二乗解から等高線を少しずつ広げていき、予算の領域に初めて触れた点になります。
ひし形は頂点が座標軸の上に突き出しているため、広がってくる楕円はしばしば頂点——つまり一部の係数が厳密にゼロの点——に最初に触れます。円には頂点がないので、接点が軸の上に来るのは楕円の向きがたまたま揃った特別な場合だけで、Ridge の係数は小さくなってもふつうゼロにはなりません。予算の縁をつかんで領域を縮めてみると、Lasso では解がある瞬間に角へ吸い付き、下の係数の経路でも β2 の線が 0 に張り付きます。Ridge に切り替えると、2本の線はそろって 0 に近づくだけです。
左上の金色のつまみをつかんで、ひし形(係数の予算)を原点へ向けて縮めてください。金の点(解)は、等高線がひし形に最初に触れる場所です。
予算 t を小さくする = ペナルティの強さ λ を大きくする。下のグラフは t を動かしたときの係数の経路
この性質から使い分けが決まります。多くの変数が少しずつ効いていそうなら Ridge、効く変数は一握りで残りはノイズだと考えるなら Lasso。ただし Lasso は、強く相関した変数の群からほぼ気まぐれに1つだけを選び、残りを 0 にしてしまう弱点を持ちます。両者のペナルティを混ぜ合わせた Elastic Net(2005年)は、相関した変数を群ごと残せるようにした折衷案として広く使われます。
バイアスとバリアンスのトレードオフ
正則化の効き目を理解する鍵は、予測誤差が「バイアス(系統的なずれ)の2乗 + バリアンス(推定のばらつき)+ 削れない雑音」に分解できることです(バイアスとバリアンス)。制約のない最小二乗法は偏りのない推定を返しますが、変数が多い・データが少ない・多重共線性がある状況ではバリアンスが爆発します。正則化は係数を縮めることでバイアスを少し受け入れ、代わりにバリアンスを大きく削る。差し引きで新しいデータへの予測誤差が下がる——これが「偏った推定のほうが当たる」からくりで、過学習への処方箋になっている理由です。
では λ をどれくらいにすべきか。これはバイアスとバリアンスの配分を決めるダイヤルなので、データから選ぶのが標準です。定番は交差検証で、λ の候補を細かく並べ、それぞれで「一部を隠して残りで学習し、隠した部分への予測誤差を測る」ことを繰り返して、予測誤差が最小になる λ を選びます。誤差の最小値から標準誤差1つ分だけ誤差が大きいところまで λ を強める「1SEルール」も、よりすっきりしたモデルを好むときの慣習です。ここには重要な思想の転換があります。手元のデータへの当てはまりではなく、見ていないデータへの予測性能でモデルを選ぶ——正則化とセットで、この評価様式が統計モデリングの標準になりました。
ベイズ統計から見た正則化
正則化には美しい別解釈があります。ベイズ推論の視点では、Ridge は「係数は正規分布に従ってゼロ付近にあるだろう」という事前分布を置いたときの事後分布の最頻値(MAP推定)と一致し、Lasso は裾の尖ったラプラス分布を事前分布に置いたものと一致します。ペナルティとは「係数は極端に大きくないはずだ」という事前の信念の言い換えであり、λ はその信念の強さです。頻度論の道具として生まれた正則化とベイズの事前分布が同じ場所に合流するのは、統計学の見通しの良い風景のひとつです。
実務の作法と落とし穴
実務でまず守るべきは、ペナルティを課す前に説明変数を標準化することです。ペナルティは係数の「数値の大きさ」に一律にかかるため、変数の単位(メートルかミリか)で罰金の重さが変わってしまいます。尺度を揃えて初めて公平なペナルティになります。このとき平均と標準偏差は訓練データだけから計算し、交差検証の各回の内側でやり直すこと。全データで標準化してから分割すると、検証用データの情報が学習に混ざるデータリークになります。また切片には通常ペナルティをかけません。カテゴリ変数をダミー変数に展開した場合、Lasso が一部の水準だけを 0 にしてしまうのを避けたいなら、変数単位でまとめて出し入れするグループ Lasso を使います。
解釈上の注意もあります。正則化された係数は意図的に縮められているので、通常の回帰と同じ感覚で効果の大きさを読むと過小評価になりますし、素朴なp値や信頼区間の理論はそのままでは通用しません。Lasso が選んだ変数リストも、データが変わればある程度入れ替わる不安定さを持ちます(ブートストラップ法で何度も選ばせて、どの変数が安定して選ばれるかを見ると実感できます)。正則化はまず「予測を安定させ、高次元でもモデルを立てられるようにする」技術であり、選ばれた変数への因果的な意味づけは慎重に、と心得ておくのが安全です。この考え方はロジスティック回帰や一般化線形モデルのペナルティ付き推定、さらにはニューラルネットワークの重み減衰まで、そのまま拡張されて使われています。
試問
2つの説明変数の係数 β1・β2 を平面の座標にとり、当てはまりの悪さ(残差平方和)を楕円の等高線で、係数の大きさにかける制限(予算)を原点のまわりの図形で描いてあります。解(金の点)は、予算の図形の中で当てはまりがいちばん良い点です。予算の大きさは金色のつまみで、図形の形はペナルティの切り替え(L2(Ridge)の円/L1(Lasso)のひし形)で変えられます。命題モードは円から始まります。
いまは L2(Ridge)の円です。金色のつまみで予算を縮めたり、ペナルティの形を切り替えたりして、β2 を消す方法を探してください。
予算 t を小さくする = ペナルティの強さ λ を大きくする。下のグラフは t を動かしたときの係数の経路
