固有値分解と特異値分解の説明
固有値分解と特異値分解は統計学や機械学習において頻繁に登場する手法です。とくに、主成分分析やリッジ回帰をより深く理解する上で大いに役立ちます。
固有値分解(Eigenvalue Decompositions)
一言でいうと、与えられた行列を直交するベクトルとその大きさに分解することです。
では数式で説明してみます。固有値分解とはという次元がの正方行列があったとき、下式のように分解することです。
ここでは直交行列、は対角行列です。直交行列とは、
となるような行列です。ここでは単位行列です。自身の内積が単位行列になるとはの各ベクトル(基底)が直交しているということです。たとえばを
というような行列としたときに、自身の内積は
となり、これが単位行列になるので、
これを各成分ごとに書くと、
となります。ところで、行列をベクトルを使って表すと以下になります。
列成分をベクトルと置きました。さて(2)式と(3)式を見比べてみます。(2)式の各式は何を意味しているでしょうか。(2)式の1行目はベクトル[tex:\textbf{p}1, \textbf{p}2]の内積が0であると言っています。
内積が0であるとは2つのベクトルが直交していることを意味しています。これが直交行列という名前が付いている理由になります。また、(2)式の2行目と3行目はそれぞれベクトル[tex:\textbf{p}1, \textbf{p}2]の大きさが1であると言っています。つまり単位ベクトルです。これらのベクトルを固有ベクトルと言います。
直交行列を統計学や機械学習で見ると、列ベクトルは変数(特徴量)に該当しますので、各変数が無相関であるような行列です。
話を固有値分解に戻します。対角行列であるは、対角成分以外が0である行列で、以下のような形状です。
このを固有値と言います。固有ベクトルが方向を示していたのに対して、こちらはその大きさを表現しています。なぜ大きさであるのかは固有値分解の式である(1)を展開するとわかります。簡単のためにをの行列とします。
行列は直交行列の列ベクトル(固有ベクトル)に対角行列の成分(固有値)をかけ合わせ、それらを固有ベクトルの分だけ足し合わせた形に分解できることを意味しています。固有ベクトルは大きさが1で方向のみを表しており、固有値はその方向の大きさを表していることがわかります。また、繰り返しになりますが、各固有ベクトルは直交しているため足し算の形に書き表すことができるわけです。
特異値分解(Singular Value Decompositions ; SVD)
固有値分解は正方行列であるという制限がありますが、一般的には特徴量の数よりデータの数のほうが多いと考えられます(行列が横より縦のほうが長い)。そこで特異値分解です。特異値分解は、ランクが、次元がの行列を下式のように分解することです。
ここで各行列は以下のような性質をを持ったものです。
- : 次元は, 対角行列である
- : 次元は, となるような行列
- : 次元は, となるような行列
なお、はの大文字です。
は以下のように固有値の時と同じ形になっており、各値を特異値と言います。
固有値分解の時はが直交行列であるという性質を持っていましたが、特異値分解では正方行列から一般の行列に拡張を行ったためその性質は失われています。しかしながら、特異値分解対象であるにフルランクであるという制約を設けることで一部その性質を得ることができます。フルランクであるとはランクと列数が同じ()ということです。その制約により、(4)式自体には変化はありませんが、各行列は以下の性質のように変化します。
- : 形状は, 対角行列である
- : 形状は, となるような行列
- : 形状は, となるような直交行列
参考
- 現代数理統計学の基礎