多重共線性があるときにL2正則化項を加えると解けるようになることのざっくりとした説明
動機
回帰モデル構築の際、特徴量とデータの関係によってはうまく機能しない(解けない)ことがあります。たとえば、考えているデータ数に対して特徴量の数が非常に多い場合や、特徴量間に強い相関(多重共線性)がある場合です。このような場合に、正則化項と呼ばれる項を通常の回帰モデル構築の際に用いられる2乗誤差などの目的関数に加えることで、先程の問題を解消することができます。こういった正則化項を加えた上でモデルの最適化をおこなう( = パラメータを推定する)方法を、正則化法といいます。
上記の解けない場合が正則化によってどうして解けるようになるのか、数式で説明している資料があまりないと思ったので、メモとして残しておこうと思います。厳密でない部分もありますが、線形代数をそれなりに知っていればわかった気にはなれるかな、という感じの説明です。
記法と準備
データ数を, 説明変数の数を, 計画行列を, 正則化パラメータをとします。
今回は、以下のような線形回帰モデルを仮定します。
$$ \vec{y} = X\vec{\beta} + \vec{\epsilon} \tag{1} $$
ここで、はそれぞれ目的変数、回帰係数(推定するパラメータ)、残差を表しています。
は次元ベクトル、は次元ベクトル(切片項も含む)、は行列となります。
回帰モデル構築の問題は、回帰係数を求める最適化問題へと帰着されます。最適化のためのよく用いられる目的関数は、以下のような2乗誤差関数です。
$$
S( \vec{\beta} ) = ( \vec{y} - X \vec{\beta} )^T ( \vec{y} - X \vec{\beta} ) \tag{2}
$$
この2乗誤差関数を最小にするようなパラメータは、実測とモデル式の誤差の2乗和を最小にするという意味で、最適なパラメータだと考えます。このパラメータは、目的関数をパラメータで微分したものを0とおいた方程式の解を求めればよく、以下のようになることがわかります。
$$
\vec{\hat{\beta}} = ( X^TX )^{-1} X^T \vec{y} \tag{3}
$$
式(3)の右辺は観測された量だけで構成されているため、それらを代入すれば回帰係数を求めることができます。
式(3)が解けない場合の一つに、の逆行列が求められない場合があります。例えば、多重共線性がある場合、のなかにほとんど同じ値を持つような列が複数出現することになります。全く同じ値をもった列があると行列式が0になることが知られており、行列式の割り算を含む逆行列は発散してしまいます。つまり、逆行列が求められない状況になります。このような行列を特異(正則行列ではない)であるといいます。
以下では、が特異である場合に正則化項、特にノルムを加えると式(3) (を拡張したもの) が解けるようになること、つまり推定量が存在することを説明します。ノルムを考える理由は、手計算ができるからです*1。
簡単な説明
ノルムを加えた場合の目的関数は、以下のようになります。
(本によってファクターが微妙に違いますが、結果に影響はないので一番すっきりしたものにします。)
$$
S( \vec{\beta} ) = ( \vec{y} - X \vec{\beta} )^T ( \vec{y} - X \vec{\beta} ) + \lambda \vec{\beta}^T \vec{\beta} \tag{4}
$$
式(2)から式(3)への変形と同様に、式(4)の目的関数を最小とするパラメータを求めると、以下のようになります。
$$
\vec{\hat{\beta} }_{\text{Ridge}} = ( X^TX + \lambda \vec{1} ) ^{-1} X^T \vec{y} \tag{5}
$$
ここで、は単位行列です。逆行列が存在することを示すことが目標です。
まず、はの実対称行列である*2ため、直交行列*3によって対角化することができます。対角化された行列を (はの固有値) とすると、の逆行列は
$$
(X^T X)^{−1} = (PΓP^T )^{−1} = PΓ^{−1}PT
= P\text{diag} (1/\gamma _1, · · · , 1/\gamma _p)P^T \tag{6}
$$
となります。
ここで、行列が特異な場合にはいくつかのでゼロ固有値が出現しますが、その際は対応するをいったん0でない値にしておき、あとで0の極限をとる、といった操作をするものと理解してください。式(6)から、特異な場合はあるに関してとなり、の逆行列が発散してしまうため、最小二乗推定量が求まらなくなります。
次に、上記の直行行列を用いて逆行列を変形してみましょう。は単位行列であることから
$$
(X^TX + \lambda \vec{1})^{−1} = (P \Gamma P^T + \lambda \vec{1})^{−1}
= \{P(\Gamma + \lambda \vec{1})P^T \}^{−1}
= P(\Gamma + \lambda \vec{1})^{-1}P^T
$$
と変形できます。の対角成分はであるため、逆行列は
$$
(X^TX + \lambda \vec{1})^{−1} = P\text{diag}(1/(\gamma _1 + \lambda), · · · , 1/(\gamma _p + \lambda))P^T
$$
となります。これより、が0でなければの極限でもは無限大になりません。
よって、逆行列が存在するため、は正則になり、推定量が求まります。