正則化最小二乗法 (regularized least squares method) |
2017-06-24 - 2017-08-19 (update) |
|
|
*過学習 とは
[link:最小二乗法]に基づいてモデルのパラメータを求める時,特にパラメータが多い条件では望ましい結果が出てこない場合があります.図1は,式(1)のような高次の関数について,そのパラメータを推定した例を示します.
{$y=w_m x^m + w_{m-1} x^{m-1} + \cdots + w_0 \tag{1}$}
{{small:{$(w_m, \cdots, w_0)$}が関数のパラメータです}}
[img:qgb5]
{{small:図1 最小二乗法による推定結果}}
図1の関数は,観測値{$(p_1, \cdots, p_i, \cdots, p_n)$}とのずれは小さくなっていますが,ほとんどの場合このような関数を求めたいわけではありません.この現象は過学習,或いはover-fittingと呼びます.
*正則化最小二乗法 とは
過学習が起こる場合,パラメータの数値が大きくなりすぎる傾向が知られています.正則化最小二乗法では,パラメータの数値の大きさを考慮に入れて目的関数を設計します.その結果,例えば図2のような関数を推定できます.
[img:jtxh]
{{small:図2 正則化最小二乗法による推定結果}}
正則化最小二乗法について詳しく学びたい場合,[1]の文献が参考になります.
{{small:[1] C.M.Bishop, 元田浩(監訳), 栗田多喜夫(監訳), 樋口知之(監訳), 松本裕治(監訳), 村田昇(監訳), "パターン認識と機械学習 上", 丸善出版, 2007}}
{{small:[link:https://www.amazon.co.jp/パターン認識と機械学習-上-C-M-ビショップ/dp/4621061224] }}
*アルゴリズム
ここでは,正則化最小二乗法の解き方を説明します.具体的に,式(1)の関数について各項のパラメータを求める問題を考えます.
{$y=w_m x^m + w_{m-1} x^{m-1} + ... + w_0 \tag{1}$}
通常の最小二乗法に基づいて解を求める場合,次の目的関数{$E$}の最小化を考えます.
{$$ E = \sum{(y_i - (w_m x_i^m + w_{m-1} x_i^{m-1} + ... + w_0))^2} = \sum{(y_i - A_i X)^2}$$}
ここで,{$A_i = \begin{bmatrix} x_i^m & \cdots & 1 \end{bmatrix}$},{$X = \begin{bmatrix} w_m & \cdots & w_0 \end{bmatrix} ^\mathrm{T}$}としています.
また,{$A = \begin{bmatrix} A_1^\mathrm{T} & \cdots & A_n^\mathrm{T} \end{bmatrix} ^{\mathrm{T}}$}, {$B = \begin{bmatrix} y_1 & \cdots & y_n \end{bmatrix} ^\mathrm{T}$}と置くと,次のように表現できます.
{$$ E = \sum{(y_i - A_i X)^2} = \|B - A X\|^2$$}
正則化最小二乗法では,上記の目的関数にパラメータの2乗ノルムを追加します.この項は正則化項と呼びます.
{$ E = \|B - A X\|^2 + \lambda \|X\|^2 $}
{{small:{$$(\|X\|^2 = X^\mathrm{T} X = w_m^2 + w_{m-1}^2 + \cdots + w_0^2)$$} }}
ここで,{$\lambda$}は正則化項を重視する比率を表します.
続いて,目的関数の展開を行います.
{$$\begin{align*}
E &= \|B - A X\|^2 + \lambda \|X\|^2 \\
&= (B - A X)^\mathrm{T}(B - A X) + \lambda X^\mathrm{T} X \\
&= X^\mathrm{T}A^\mathrm{T}AX - 2X^\mathrm{T}A^\mathrm{T}B + B^\mathrm{T}B + \lambda X^\mathrm{T} X
\end{align*}$$}
{$E$}の極小値では,微分が0になることから,次の式が得られます.
{$$ \frac{dE}{dX} =2A^\mathrm{T}AX - 2A^\mathrm{T}B + 2\lambda X = 0 $$}
{$$ (A^\mathrm{T}A + \lambda I)X = A^\mathrm{T}B$$}
最後に,{$$(A^\mathrm{T}A + \lambda I)$$}の逆行列を計算しそれを両辺に掛けることで,{$X$}を求めることができます.
{$$ X = (A^\mathrm{T}A + \lambda I)^{-1} A^\mathrm{T}B $$}
なお,今回すべてのパラメータに注目した2乗ノルム{$\|X\|^2$} を目的関数に追加しました.ただし,低次の項,特にバイアスに当たる{$w_0$}については除外する考えがあります.これは,低次の項は過学習が起こらない条件でも,大きな値をとる場合があり得るからです.このあたりは条件によって調整することになります.
>> ご意見・ご質問など お気軽にご連絡ください.info