コンテンツにスキップ

線形回帰・正則化

キーワード:ノルム、過少適合、過剰適合、最小二乗法、相関係数、多重共線性、L1正則化、L2正則化

要点

  • 線形回帰は、予測 \(\hat{y}=\mathbf{w}^{\top}\mathbf{x}\) と正解の二乗誤差の和を最小にする。勾配を 0 とおいた正規方程式で解析的に解ける(誤差が正規分布なら最尤推定と同じ)。
  • モデルが複雑すぎると過剰適合、単純すぎると過少適合になる。説明変数どうしが強く相関すると \(\mathbf{X}^{\top}\mathbf{X}\) が不安定になる(多重共線性)。
  • 損失にノルムの罰則を足すのが正則化。L2(Ridge)は係数を縮め、L1(Lasso)は一部の係数を 0 にする。

最小二乗法

入力 \(N\) 個を並べた計画行列 \(\mathbf{X}\in\mathbb{R}^{N\times D}\)(バイアスは、全サンプルで 1 の列を足して \(\mathbf{w}\) に含める)、正解 \(\mathbf{y}\in\mathbb{R}^{N}\) とする。

\[ \begin{aligned} &\text{推論} && \hat{\mathbf{y}}=\mathbf{X}\mathbf{w} \\[2mm] &\text{損失} && L(\mathbf{w})=\frac12\|\mathbf{y}-\mathbf{X}\mathbf{w}\|_2^2=\frac12\sum_{n=1}^{N}\bigl(y_n-\mathbf{w}^{\top}\mathbf{x}_n\bigr)^2 \\[2mm] &\text{勾配} && \frac{\partial L}{\partial \mathbf{w}}=\mathbf{X}^{\top}\mathbf{X}\mathbf{w}-\mathbf{X}^{\top}\mathbf{y}=\mathbf{X}^{\top}(\mathbf{X}\mathbf{w}-\mathbf{y}) \\[2mm] &\text{正規方程式} && \mathbf{X}^{\top}\mathbf{X}\,\mathbf{w}=\mathbf{X}^{\top}\mathbf{y}\ \ \Longrightarrow\ \ \hat{\mathbf{w}}=(\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y} \\[2mm] &\text{勾配降下法} && \mathbf{w}\leftarrow\mathbf{w}-\eta\,\mathbf{X}^{\top}(\mathbf{X}\mathbf{w}-\mathbf{y}) \end{aligned} \]
記号 形 検算
\(\mathbf{X}\) \(N\times D\) —
\(\mathbf{X}^{\top}(\mathbf{X}\mathbf{w}-\mathbf{y})\) \((D\times N)(N\times 1)=D\times 1\) 勾配は \(\mathbf{w}\) と同じ形
\(\mathbf{X}^{\top}\mathbf{X}\) \(D\times D\) 半正定値。逆行列が使えるのは \(\mathrm{rank}\,\mathbf{X}=D\) のとき
  • 二乗誤差は \(\mathbf{w}\) の凸な二次関数(ヘッセ行列 \(\mathbf{X}^{\top}\mathbf{X}\) が半正定値)。勾配 0 の点が大域的最小。
  • 幾何:\(\hat{\mathbf{y}}=\mathbf{X}(\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y}\) は、\(\mathbf{y}\) を \(\mathbf{X}\) の列が張る空間へ正射影したもの。残差 \(\mathbf{y}-\hat{\mathbf{y}}\) は各列と直交する(これが正規方程式)。
  • 確率の見方:\(y=\mathbf{w}^{\top}\mathbf{x}+\varepsilon,\ \varepsilon\sim\mathcal{N}(0,\sigma^2)\) とすると、対数尤度は \(-\frac{N}{2}\log(2\pi\sigma^2)-\frac{1}{2\sigma^2}\|\mathbf{y}-\mathbf{X}\mathbf{w}\|^2\)。\(\mathbf{w}\) について最大化すると二乗誤差の最小化と一致する(パラメータ推定)。
  • \(D>N\) や列が従属のときは \((\mathbf{X}^{\top}\mathbf{X})^{-1}\) が存在しない。擬似逆行列 \(\mathbf{X}^{+}\mathbf{y}\)(最小ノルム解、特異値分解)か、後述の正則化を使う。実装では逆行列を直接作らず、QR 分解や SVD で解く。

相関係数と決定係数

\[ r_{xy}=\frac{\sum_n(x_n-\bar{x})(y_n-\bar{y})}{\sqrt{\sum_n(x_n-\bar{x})^2}\sqrt{\sum_n(y_n-\bar{y})^2}}=\frac{\mathrm{Cov}(x,y)}{\sigma_x\sigma_y}\in[-1,\,1],\qquad R^2=1-\frac{\sum_n(y_n-\hat{y}_n)^2}{\sum_n(y_n-\bar{y})^2} \]
  • \(r=\pm1\) は完全な直線関係、\(r=0\) は線形な関係がない(非線形な関係は見逃す)。相関は因果ではない。外れ値に弱い。
  • 説明変数が 1 つの単回帰では、傾き \(\hat{w}_1=r_{xy}\,\sigma_y/\sigma_x\)、決定係数 \(R^2=r_{xy}^2\)。
  • \(R^2\) は「\(y\) の分散のうちモデルが説明した割合」。説明変数を足すだけで訓練データでは必ず増えるので、モデル比較には検証データでの誤差を使う(評価)。

過少適合・過剰適合

線形回帰の「線形」はパラメータ \(\mathbf{w}\) について線形という意味。\(\phi_j(x)=x^j\) などの基底に置き換えれば、曲線も同じ式で扱える(多項式回帰)。

\[ \hat{y}=\sum_{j=0}^{d}w_j\,\phi_j(x),\qquad \phi_j(x)=x^{j}\ \text{(ここでは }(2x-1)^j\text{)} \]
状態 次数・モデル 訓練誤差 汎化誤差(テスト誤差)
過少適合 単純すぎる(\(d\) が小さい) 大きい 大きい
適切 ちょうどよい 小さい 小さい
過剰適合 複雑すぎる(\(d\) が大きい) ほぼ 0 大きい(ノイズまで覚える)
  • 対策:データを増やす、モデルを単純にする、正則化、早期終了、検証データでの選択(評価)。

動かしてみる

  • 初期状態は \(d=9\)(データ 10 点に対して十分に複雑)で、訓練 RMSE はほぼ 0、テスト RMSE が大きい過剰適合です。曲線がデータの点を縫うように振れています。
  • \(d=0\) や \(1\) にすると、訓練もテストも誤差が大きいままです(過少適合)。\(d=3\sim5\) あたりでテスト誤差が最小になります。
  • \(d=9\) のまま \(\log_{10}\lambda\) を \(-6\) から大きくすると、曲線がなめらかになり、\(\|\mathbf{w}\|^2\) が急に小さくなります(正則化の効果。大きくしすぎると過少適合)。

多重共線性

説明変数どうしがほぼ線形従属(強く相関)しているとき、\(\mathbf{X}^{\top}\mathbf{X}\) はほぼ特異になる。

  • 係数の分散は \(\mathrm{Var}(\hat{\mathbf{w}})=\sigma^2(\mathbf{X}^{\top}\mathbf{X})^{-1}\)。固有値が 0 に近い方向があると、係数が不安定(データが少し変わるだけで符号まで変わる)になる。予測そのものは大きく崩れないこともある。
  • 診断:説明変数どうしの相関係数、分散拡大係数 \(\mathrm{VIF}_j=\dfrac{1}{1-R_j^2}\)(\(R_j^2\):第 \(j\) 変数を他の変数で回帰したときの決定係数。目安として 10 以上は要注意)、条件数。
  • 対策:相関の強い変数を除く・まとめる、主成分分析で無相関にする(次元圧縮)、Ridge 回帰(\(\mathbf{X}^{\top}\mathbf{X}+\lambda\mathbf{I}\) は常に正則)。

ノルムと正則化

ノルム

ノルム 式 単位球(\(\lVert\mathbf{w}\rVert=1\))の形(2次元)
L1 \(\lVert\mathbf{w}\rVert_1=\sum_i\lvert w_i\rvert\) 菱形(頂点が軸上)
L2 \(\lVert\mathbf{w}\rVert_2=\sqrt{\sum_i w_i^2}\) 円
Lp \(\lVert\mathbf{w}\rVert_p=\bigl(\sum_i\lvert w_i\rvert^{p}\bigr)^{1/p}\) \(p\) が大きいほど正方形に近づく
L∞ \(\lVert\mathbf{w}\rVert_\infty=\max_i\lvert w_i\rvert\) 正方形
L0(準ノルム) 0 でない成分の個数 軸上の点(最適化が組合せ問題で難しい。L1 で代用する)

罰則付き損失

\[ \begin{aligned} &\text{一般形} && L_{\mathrm{reg}}(\mathbf{w})=L(\mathbf{w})+\lambda R(\mathbf{w}) \\[2mm] &\text{Ridge(L2)} && R(\mathbf{w})=\frac12\|\mathbf{w}\|_2^2 \quad\Rightarrow\quad \hat{\mathbf{w}}=(\mathbf{X}^{\top}\mathbf{X}+\lambda\mathbf{I})^{-1}\mathbf{X}^{\top}\mathbf{y} \\[2mm] &\text{Lasso(L1)} && R(\mathbf{w})=\|\mathbf{w}\|_1 \quad\Rightarrow\quad \text{閉じた形の解はなく、座標降下法・劣勾配法で解く} \\[2mm] &\text{Elastic Net} && R(\mathbf{w})=\alpha\|\mathbf{w}\|_1+\frac{1-\alpha}{2}\|\mathbf{w}\|_2^2 \\[2mm] &\text{勾配降下(L2)} && \mathbf{w}\leftarrow(1-\eta\lambda)\,\mathbf{w}-\eta\,\nabla L(\mathbf{w})\quad\text{(重み減衰 weight decay)} \end{aligned} \]
  • \(\lambda\ge0\):正則化の強さ(ハイパーパラメータ)。\(\lambda=0\) で通常の最小二乗法、\(\lambda\to\infty\) で \(\hat{\mathbf{w}}\to\mathbf{0}\)。交差検証で選ぶ。
  • バイアス(切片)は罰則に含めない(閉じた形で書くときは、切片に対応する \(\mathbf{I}\) の対角成分だけ 0 にする)。特徴量は標準化しておく(スケールが違うと罰則が不公平になる)。
  • \(R\) を \(\tfrac12\|\mathbf{w}\|^2\) と書くか \(\|\mathbf{w}\|^2\) と書くかで \(\lambda\) の値が 2 倍変わる(後者の勾配は \(2\lambda\mathbf{w}\))。教材ごとの違いに注意。
  • Ridge の解は、\(\mathbf{X}=\mathbf{U}\Sigma\mathbf{V}^{\top}\)(特異値 \(\sigma_i\))で書くと、各方向を \(\dfrac{\sigma_i^2}{\sigma_i^2+\lambda}\) 倍に縮める。\(\sigma_i\) が小さい(情報の少ない)方向ほど強く縮む。

直交な特徴量での解(縮み方の違い)

\(\mathbf{X}^{\top}\mathbf{X}=\mathbf{I}\) のとき、最小二乗解を \(w^{0}_j\) とすると

\[ \text{Ridge:}\ \ \hat{w}_j=\frac{w^{0}_j}{1+\lambda},\qquad \text{Lasso:}\ \ \hat{w}_j=\mathrm{sign}(w^{0}_j)\max\bigl(\lvert w^{0}_j\rvert-\lambda,\,0\bigr)\ \ \text{(ソフトしきい値)} \]
  • Ridge は一律に割合で縮める(0 にはならない)。Lasso は一定量 \(\lambda\) だけ引き、\(\lvert w^0_j\rvert\le\lambda\) なら 0 になる=特徴選択。

確率の見方(MAP 推定)

  • \(\mathbf{w}\) に正規分布の事前分布 \(\mathcal{N}(0,\tau^2)\) を置いた MAP 推定が L2(\(\lambda=\sigma^2/\tau^2\))。ラプラス分布の事前分布 \(\propto e^{-\lvert w\rvert/b}\) なら L1(\(\lambda=\sigma^2/b\))。ラプラス分布は 0 に尖っているので、解が 0 に張り付きやすい。

幾何:なぜ L1 は 0 になるのか

二乗誤差は \(\mathbf{w}^{0}\) を中心とする楕円の等高線を持つ。罰則つきの解は、楕円が罰則の等高線に最初に触れる点(制約形では \(R(\mathbf{w})\le t\) の領域の境界)。円は滑らかなので接点が軸上になることはまれだが、菱形は頂点が軸上にあり、楕円がそこで触れやすい。

動かしてみる

  • L1(Lasso)で \(\lambda\) を 1.2 付近まで増やすと、解(紺の点)が菱形の頂点に乗り、\(w_2\) がぴったり 0 になります。下の行の「0 でない係数の数」が 1 に減ります(さらに増やすと 2 つとも 0)。
  • L2(Ridge)に切り替えると、\(\lambda\) を増やしても 2 つの係数は 0 に近づくだけで、ちょうど 0 にはなりません。
  • \(\rho\) を変えると楕円の向きと細さが変わり、軌跡(灰の点線)の曲がり方と、\(w_2\) が 0 になる \(\lambda\) が変わります(\(\rho=0\) で約 0.7、\(\rho=0.9\) で約 1.3)。Elastic Net は L1 と L2 の中間の軌跡になります。
手法 罰則 性質
Ridge L2 係数を縮める。多重共線性に強く、解は解析的に求まる
Lasso L1 係数を 0 にする(スパース)。特徴選択ができるが、相関する変数のうち 1 つを選びがち
Elastic Net L1+L2 相関する変数をまとめて残す。スパース性と安定性の両立

試験の着眼点

  • 正規方程式 \(\mathbf{X}^{\top}\mathbf{X}\mathbf{w}=\mathbf{X}^{\top}\mathbf{y}\) を導けること。損失を \(\tfrac12\) 付きで書くと勾配が \(\mathbf{X}^{\top}(\mathbf{X}\mathbf{w}-\mathbf{y})\) になる。
  • 誤差が正規分布 ⇒ 最小二乗法=最尤推定。事前分布が正規分布 ⇒ L2、ラプラス分布 ⇒ L1(MAP 推定)。
  • L1=スパース(特徴選択)、L2=縮小(全部小さく)。罰則の等高線が菱形か円かで説明できる。
  • 多重共線性:\(\mathbf{X}^{\top}\mathbf{X}\) がほぼ特異、係数が不安定、VIF で診断、Ridge で緩和。
  • 過少適合は訓練誤差も大きい、過剰適合は訓練誤差が小さく汎化誤差が大きい。\(\lambda\) や次数は検証データで選ぶ。
  • 切片は正則化しない。特徴量は標準化する。

参考