Written by
SD/T

【回帰分析の数理】#4 過学習を防ぐL2正則化とベイズ的解釈(MAP推定)

[mathjax]

はじめに

データマイニング・機械学習における最もシンプルな手法である線形回帰を例に、今回の記事では過学習を防ぐテクニックの一つであるL2正則化と、L2正則化のベイズ的解釈について見ていきます。前回の記事では、説明変数の多い柔軟なモデルにおいて、データの量を減らすと過学習が起きてしまう様子を観察しました。

【回帰分析の数理】#3 線形回帰の多項式回帰への拡張

L2正則化

通常の線形回帰におけるコスト関数は、次のように設定しました。

$$
large
J(theta) = sum_{i=1}^N (y^{(i)}-theta^mathrm{T} x^{(i)})^2
$$

対して、L2正則化では、次のような正則化項をコスト関数に加えます。正則化項はモデルパラメタ(theta)のベクトルの大きさに対する罰則(ペナルティ)として機能し、直感的には、(lambda)が大きいほど(theta)を(0)に近づける作用が働くといえます。

$$
large
J(theta) = sum_{i=1}^N (y^{(i)}-theta^mathrm{T} x^{(i)})^2 + lambda |theta|_2^2
$$

補足
(|theta|)はベクトルのノルムを表します。
$$
|x|_p = bigr( sum_{i=1}^n |x_i|^p bigl)^{1/p}
$$
なお、(|x|_2^2=x^mathrm{T}x)です。

さて、上記のコスト関数を最適化するモデルパラメタ(theta)を求めます。凸関数の和は同じく凸関数である(*文献[1] 参照)ことから、上記のコスト関数の微分値がゼロベクトルになる(theta)が一意な最適解となります。微分についてはこちらも参照してください。

$$
large
nabla_theta J(theta) = 2(X^mathrm{T}Xtheta – X^mathrm{T}vec{y}) + 2lambdatheta \
$$

(nabla_theta J(theta) =0)のとき、

$$
large
(X^mathrm{T}X + lambda I)hat{theta} = X^mathrm{T}vec{y} \
large
hat{theta} = (X^mathrm{T}X + lambda I)^{-1} X^mathrm{T}vec{y}
$$

さて、前回と同様のデータを用いて、L2正則化したk次多項式によるフィッティングを特定の(lambda)について行うと次のようになります。今回は(k=8)と設定しています。

(lambda)が大きいほど、フィッティング曲線の変動を抑えるような作用が働くことが分かります。フィッティングが明らかに過学習を起こしていると思われる場合は、このようにL2正則化項を加えることが有効です。また、L2正則化付きの線形回帰をRidge回帰と呼びます。

L2正則化のベイズ的解釈 – MAP推定

この章では、L2正則化が、ベイズ統計の考え方を用いると確率論的に解釈できることを見ていきます。

初回のブログでは、単回帰分析を例に最尤推定に言及しました。最尤推定とは、次のようにモデルパラメタを決定する手法のことです。ただし、(D)は観測されたデータの集合を指します。

$$
large
theta_mathrm{MLE} = argmax_theta p(D|theta) = p({x^{(i)}, y^{(i)}}_{i=1}^N|theta)
$$

ベイズ統計においては、モデルパラメタである(theta)も確率変数として扱います。そして、次のようにモデルパラメタを決定する手法を、最大事後確率推定(MAP推定、maximum a posteriori)と呼びます。

$$
large
theta_mathrm{MAP} = argmax_theta p(theta|D)
$$

(p(theta|D))を事後確率 posterior probabilityと呼びます。これは、条件付き確率がデータ(D)を観測した「後」という形をとっているためです。また、次に示す条件付き確率の変換は、ベイズの定理と呼ばれます。

$$
large
p(x|y) = frac{p(x)p(y|x)}{p(y)}
$$

ベイズの定理を用いると、(theta_mathrm{MAP})は次のように展開されます。

$$
large
begin{align}
theta_mathrm{MAP} &= argmax_theta p(theta|D) \
&= argmax_theta frac{p(theta)p(D|theta)}{p(D)} \
&= argmax_theta p(theta)p(D|theta)
end{align}
$$

3つ目の等式は、(theta)についての最適化において(p(D))が無関係であるために成立します。

ここで、(p(theta))は現時点では未知の量ですが、これをデータを観測する「前」の確率分布として事前確率 prior probabilityと呼びます。MAP推定が事前確率×尤度を最大化していることを踏まえると、MAP推定とは尤度を事前分布に従って重み付けした量を最大化するものである、ともいえます。

では、(p(theta))はどのように定めたら良いでしょうか。L2正則化は、ベイズ統計においては次のような仮定に基づくと考えることができます。

$$
large
theta sim mathbb{N}(0, eta^2I)
$$

(mathbb{N}(0, eta^2I))は平均(0)、分散(eta^2I)の多変量正規分布です。この仮定に基づき、(theta_mathrm{MAP})を展開していくと、L2正則化と等価になることを確認してみましょう。ただし、正規分布の規格化定数は最適化に影響しないため、定数として(C_1, C_2)とします。

$$
begin{align}
theta_mathrm{MAP} &= argmax_theta p(theta)p(D|theta) \
&= argmax_theta p(theta)prod_{i=1}^N p(y^{(i)}|x^{(i)}, theta) \
&= argmax_theta log p(theta) + sum_{i=1}^N log p(y^{(i)}|x^{(i)}, theta) \
&= argmax_theta log C_1 exp(-frac{1}{2}theta^mathrm{T}(eta^2I)^{-1}theta) + sum_{i=1}^N log C_2 exp(-frac{(y^{(i)}-theta^mathrm{T}x^{(i)})^2}{2sigma^2}) \
&= argmax_theta log C_1 – frac{1}{2}theta^{T}(eta^2I)^{-1}theta + Nlog C_2 – frac{1}{2sigma^2}sum_{i=1}^N (y^{(i)}-theta^mathrm{T}x^{(i)})^2 \
&= argmin_theta  frac{1}{2eta^2} theta^mathrm{T}theta + frac{1}{2sigma^2}sum_{i=1}^N (y^{(i)}-theta^mathrm{T}x^{(i)})^2 \
&= argmin_theta frac{sigma^2}{eta^2} |theta|_2^2 + sum_{i=1}^N (y^{(i)}-theta^mathrm{T}x^{(i)})^2
end{align}
$$

最後の式が、L2正則化におけるコスト関数である(J(theta) = sum_{i=1}^N (y^{(i)}-theta^mathrm{T} x^{(i)})^2 + lambda |theta|_2^2)と等価であることが確認できます。よって、モデルパラメタに平均(0)の正規分布を仮定したMAP推定は、L2正則化つきの最尤推定と等価であることが分かります。

ここで、(lambda=sigma^2/eta^2)であることに注意すると、モデルパラメタを生成する正規分布の分散(eta)が小さくなるほど、(lambda)が大きくなり、モデルパラメタを(0)に近づける作用が強力になることが分かります。事前確率のパラメタ(今回は(eta))は、モデルパラメタと区別して、ハイパーパラメタと呼ばれます。ハイパーパラメタの最適化は、データマイニングの実務スキルが問われる奥深い分野であり、今後のブログでも触れていく予定です。

まとめ

今回は、過学習を防ぐテクニックの一つであるL2正則化と、L2正則化がベイズ統計におけるMAP推定に含まれることを確認しました。

次回のブログでは、2値分類の基本的手法であるロジスティック回帰について見ていきます。

【回帰分析の数理】#5 ロジスティック回帰の導出

参考文献

[1] Convexity and Regularization(閲覧 2020/5/24)
[2] Stanford CS229 Bias-Variance Analysis: Theory and Practice (閲覧 2020/5/24)

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です