アラフォーからの機械学習

アラフォーです。機械学習や統計学の解説記事を書いていきます

リッジ回帰の考察(主成分分析との関係)

リッジ回帰の考察

こちらの回で求めた最小二乗法とリッジ回帰の解は以下のようになりました。

\displaystyle{
    \begin{eqnarray}
        最小二乗回帰 : \hat{\boldsymbol{\beta}} &=& (\boldsymbol{X}^\mathrm{T} \boldsymbol{X})^{-1} \boldsymbol{X}^\mathrm{T} \boldsymbol{y}  \\ \cr
        リッジ回帰 : \hat{\boldsymbol{\beta}} &=& (\boldsymbol{X}^\mathrm{T} \boldsymbol{X} + \lambda\boldsymbol{I})^{-1}\boldsymbol{X}^\mathrm{T} \boldsymbol{y} \tag{1}
    \end{eqnarray}
}

2つの違いは逆行列を求める際に、対角成分に\lambdaを足し合わせる点です。\lambdaは罰則項の強さを調整するハイパーパラメータです。これが一体何を意味しているか式変形を行って解明していこうと思います。今回は特異値分解を使用しますので、参考に特異値分解の記事をリンクしておきます。

固有値分解と特異値分解の説明

まず、\boldsymbol{X}を以下のように特異値分解します。

\displaystyle{
    \boldsymbol{X} = \boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T} \tag{2}
}

ここで\boldsymbol{U}\boldsymbol{V}は、\boldsymbol{U}^\mathrm{T}\boldsymbol{U}=\boldsymbol{I}, \space \boldsymbol{V}^\mathrm{T}\boldsymbol{V}=\boldsymbol{I}となるような行列です。\boldsymbol{D}は特異値を持つ対角行列です。(1)式の最小二乗回帰の解について、

\displaystyle{
    \hat{\boldsymbol{y}} = \boldsymbol{X}\hat{\boldsymbol{\beta}} = \boldsymbol{X}(\boldsymbol{X}^\mathrm{T}\boldsymbol{X})^{-1}\boldsymbol{X}^\mathrm{T}\boldsymbol{y}
}

これを特異値分解の式(2)を使って、

\displaystyle{
    \begin{eqnarray}
        \boldsymbol{X}\hat{\boldsymbol{\beta}} &=& \boldsymbol{X}(\boldsymbol{X}^\mathrm{T}\boldsymbol{X})^{-1}\boldsymbol{X}^\mathrm{T}\boldsymbol{y} \\
        &=& \boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T}(\boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T})\boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{y} \\
        &=& \boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T}\boldsymbol{V}\boldsymbol{D}^{-2}\boldsymbol{V}^\mathrm{T}\boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{y} \\
        &=& \boldsymbol{U}\boldsymbol{U}^\mathrm{T}\boldsymbol{y} \tag{3}
    \end{eqnarray}
}

一方リッジ回帰は、

\displaystyle{
    \begin{eqnarray}
        \boldsymbol{X}\hat{\boldsymbol{\beta}} &=& \boldsymbol{X}(\boldsymbol{X}^\mathrm{T}\boldsymbol{X} + \lambda\boldsymbol{I})^{-1}\boldsymbol{X}^\mathrm{T}\boldsymbol{y} \\
        &=& \boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T}(\boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T} + \lambda \boldsymbol{I})^{-1}\boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{y} \\
        &=& \boldsymbol{U}\boldsymbol{D}(\boldsymbol{D}^2 + \lambda \boldsymbol{I})^{-1}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{y} \\
        &=& \sum^p_{j=1} \boldsymbol{u}_j \frac{d^2_j}{d^2_j + \lambda} \boldsymbol{u}^\mathrm{T}_j \boldsymbol{y}  \tag{4} \\
    \end{eqnarray}
}
\displaystyle{
     (\boldsymbol{U} = [\boldsymbol{u}_1,\ldots, \boldsymbol{u}_p])
}

なお、\lambda \ge 0なので、\frac{d^2_j}{d^2_j + \lambda} \le 1です。

最小二乗回帰とリッジ回帰との違いは\frac{d^2_j}{d^2_j + \lambda} \le 1の部分です。この分だけ\boldsymbol{U}^\mathrm{T}\boldsymbol{y}が縮小されます。ハイパーパラメータである\lambdaの値を大きくするか、d^2_jの値が小さくなるとより強く縮小されることを示しています。d^2_jは特異値の各成分の2乗値ですが、これは一体何を意味しているのでしょうか。

リッジ回帰と主成分分析の関係

実はリッジ回帰は主成分分析と関係があります。主成分分析は標本共分散行列を固有値分解して求めますが、標本共分散行列は下式で求めます。

\displaystyle{
    \boldsymbol{S} = \frac{\boldsymbol{X}^\mathrm{T}\boldsymbol{X}}{N}
}

ただし、\boldsymbol{X}は中心化(平均値で引かれている)されているとします。これを特異値分解の式(2)を使って変形すると、

\displaystyle{
    \begin{eqnarray}
        \frac{\boldsymbol{X}^\mathrm{T}\boldsymbol{X}}{N} &=& \frac{1}{N} \boldsymbol{V}\boldsymbol{D}\boldsymbol{U}^\mathrm{T}\boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^\mathrm{T} \\
        &=& \boldsymbol{V}\frac{\boldsymbol{D}^2}{N}\boldsymbol{V}^\mathrm{T}
    \end{eqnarray}
}

となります。\boldsymbol{V}は直交行列であり、\boldsymbol{D}は対角行列です。つまりこの式は(Nを無視すれば)\boldsymbol{X}^\mathrm{T}\boldsymbol{X}固有値分解の形になっています。なので\boldsymbol{V}の列ベクトル\boldsymbol{v}_j固有ベクトルであり、\boldsymbol{D}^2の各値は固有値です。各固有ベクトル\boldsymbol{X}の主成分方向を表しています。たとえば1列目の固有ベクトル\boldsymbol{v}_1との内積

\displaystyle{
    \boldsymbol{z}_1 = \boldsymbol{X}\boldsymbol{v}_1 \tag{5}
}

を第1主成分と言います。第1主成分は他の主成分と比較して、最も大きい標本分散を持っています。つまり\boldsymbol{v}_jは分散の方向を表しています。そして分散の大きさは固有値で表されています。固有値\boldsymbol{D}^2/Nなので、第1主成分の分散は、

\displaystyle{
    \mathrm{Var}(\boldsymbol{z}_1) = \frac{d^2_1}{N} \tag{6}
}

となります。ここで(4)式の話に戻します。問題はd^2_jが何であるのかということでした。これは(6)式が示しているように分散です。そしてリッジ回帰ではd^2_jが小さい変数についてより強く縮小するという話でした。d^2_jが小さいとはつまり、主成分方向にデータを射影したときの分散が小さくなることです。したがいまして、リッジ回帰は小さい分散方向の成分を持つ変数の係数をより強く縮小させることがわかります。

参考

  • 現代数理統計学の基礎
  • 統計的学習の基礎