特異値分解

特異値分解(Singular-Value Decomposition)

Aをサイズm\times nの行列({\rm rank}\,A=k)とします。このとき、サイズm\times mの直交行列Uとサイズn\times nの直交行列Vが存在して

\displaystyle{(1)\quad A=U\Sigma V^T }

が成り立ちます。ここで、サイズm\times nの行列\Sigmaは次を満たします。

\displaystyle{(2.1)\quad \Sigma= \left[\begin{array}{cc} \Sigma_1(k\times k) & 0\,(k\times n-k)\\ 0\,(m-k\times k) & 0\,(m-k\times n-k) \end{array}\right] }

\displaystyle{(2.2)\quad \Sigma_1={\rm diag}\{\sigma_1,\cdots,\sigma_k\}\quad(\sigma_1\ge\cdots\ge\sigma_k>0) }

A^TA\ge 0だから、仮定{\rm rank}\,A=kより、A^TAk個の正固有値とn-k個の零固有値をもち、互いに直交する固有ベクトルをもちます。そこで、A^TAの固有値の正の平方根を、大きい順に、\sigma_1\ge\cdots\ge\sigma_k>\sigma_{k+1}=\cdots=\sigma_{n}=0のように表し、対応する固有ベクトルv_1,\cdots,v_nv_i^Tv_i=1\ (i=j),\ 0\ (i\ne j)を満足するようにとることができます。いま、\Sigma_1を上のように、また

\displaystyle{(3)\quad V= [\begin{array}{cc} V_1 & V_2 \end{array}] = [\begin{array}{ccc|ccc} v_1 & \cdots & v_k & v_{k+1}& \cdots & v_n \end{array}] }

とおくと、Vは直交行列となり、つぎが成り立ちます。

\displaystyle{(4)\quad \begin{array}{l} A^TAV_1=V_1\Sigma_1^2\\ A^TAV_2=0 \end{array} }

第2式の左から、V_2^Tをかけて

\displaystyle{(5)\quad V_2^TA^TAV_2=0\Rightarrow AV_2=0 }

また、U_1=AV_1\Sigma_1^{-1}とおくと、第1式からU_1^TU_1=I_{k}を得ます。そこで、U_2U= [\begin{array}{cc} U_1 & U_2 \end{array}]が直交行列となるように選ぶと

\displaystyle{(6)\quad U^TAV= \left[\begin{array}{cc} U_1^TAV_1 & U_1^TAV_2\\ U_2^TAV_1 & U_2^TAV_2 \end{array}\right] = \left[\begin{array}{cc} \Sigma_1 & 0\\ U_2^TU_1\Sigma_1 & 0 \end{array}\right] =\Sigma }

が成り立ちます。

●行列A= \left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 1 \end{array}\right]の特異値分解は

\displaystyle{(7)\quad A= \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right] }_{U} \underbrace{ \left[\begin{array}{ccc} \sqrt{2} & 0 & 0 \\ 0 & 1 & 0 \end{array}\right] }_{\Sigma} \underbrace{ \left[\begin{array}{ccc} 0 & 1 & 0 \\ \frac{1}{\sqrt{2}} & 0 & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & 0 & \frac{1}{\sqrt{2}} \end{array}\right]^T }_{V^T} }

のように与えられることを確かめます。

A^TAのサイズは3\times 3ですが、AA^Tのサイズは2\times 2であるので、AA^Tを計算すると\left[\begin{array}{cc} 1 & 0 \\ 0 & 2 \end{array}\right]となります(サイズm\times nの行列Aの特異値を手計算で求めるには、A^TAAA^Tのが同じ非零固有値をもつことから、サイズの小さいほうの固有値計算を行えばよい)。これから、AA^Tの固有値は1,2で、その正の平方根1,\sqrt{2}が特異値で、上の\Sigma_1の対角成分の特異値は大きい順に並べる約束ですから

\displaystyle{(8)\quad \underbrace{ \left[\begin{array}{cc} 1 & 0 \\ 0 & 2 \end{array}\right] }_{AA^T} \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right] }_{U} = \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right] }_{U} \underbrace{ \left[\begin{array}{cc} 2 & 0 \\ 0 & 1 \end{array}\right] }_{\Sigma_1^2} }

のように、U\Sigma_1が決まります。つぎに、Vについては、視察によって

\displaystyle{(9)\quad \underbrace{ \left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \end{array}\right] }_{A^TA} \underbrace{ \left[\begin{array}{ccc} 0 & 1 & 0 \\ x & 0 & -y \\ y & 0 & x \end{array}\right] }_{V} = \underbrace{ \left[\begin{array}{ccc} 0 & 1 & 0 \\ x & 0 & -y \\ y & 0 & x \end{array}\right] }_{V} \underbrace{ \left[\begin{array}{ccc} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{array}\right] }_{{\rm diag}\{\Sigma_1^2,0\}} }

とします。ここで、\left[\begin{array}{ccc}x \\y \end{array}\right]\left[\begin{array}{ccc}-y \\x \end{array}\right]が直交しており、x^2+y^2=1の制約があります。上式からx=yが出て、x=y=\frac{1}{\sqrt{2}}と定まります。

行列のノルム

x\in{\rm\bf R}^nからy\in{\rm\bf R}^mへの写像y=Axの「伝達特性」をどう測るかを考えます。これはスカラの場合は正比例の関係y=axですから、比例定数aに相当する量を求める話になります。

サイズm\times nの行列Aの次の特異値分解を考えます。

\displaystyle{(1)\quad \begin{array}{l} A= \underbrace{ \left[\begin{array}{cc} U_1 & U_2 \end{array}\right] }_{U(m\times m)} \underbrace{ \left[\begin{array}{cc} {\rm diag}\{\sigma_1,\cdots,\sigma_k\} & 0_{k\times (n-k)} \\ 0_{(m-k)\times k} & 0_{(m-k)\times (n-k)} \end{array}\right] }_{\Sigma= \left[\begin{array}{cc} \Sigma_1 & 0 \\ 0 & 0 \end{array}\right] \quad(\sigma_1\ge\cdots\ge\sigma_k) } \underbrace{ \left[\begin{array}{cc} V_1^T \\ V_2^T \end{array}\right] }_{V(n\times n)^T}\\ =U_1(m\times k)\Sigma_1(k\times k)V_1(n\times k)^T \end{array} }

ここで、k={\rm rank}Aで、UVは直交行列です。

\displaystyle{(2)\quad UU^T=U^TU=I_m,\quad VV^T=V^TV=I_n }

したがって、次のような3つの線形写像に分解されます。

n次元ベクトルx\in{\rm\bf R}^nのノルムとして、次の3通りが知られています。

\displaystyle{(3)\quad \left\{\begin{array}{lll} ||x||_1=|x_1|+\cdots+|x_n|&\\ ||x||_2=\sqrt{x_1^2+\cdots+x_n^2}&\Rightarrow&||x||_2^2=x^Tx\\ ||x||_\infty=\max\{|x_1|,\cdots,|x_n|\}& \end{array}\right. }

以下では、ベクトルのノルムとして、2番目の2ノルムを考えます。

このとき、次が成り立ちます。

\displaystyle{(4)\quad ||x'||_2^2=||Vx||_2^2=x^TV^TVx=x^Tx=||x||_2^2\ \Rightarrow\ \frac{||x'||_2}{||x||_2}=1 }

\displaystyle{(5)\quad \begin{array}{l} ||y'||_2^2=||\Sigma x'||_2^2=\sigma_1^2x_1'\,^2+\cdots+\sigma_k^2x_k'\,^2+0x_{n+1}'\,^2+\cdots+0x_n'\,^2\\ \le \sigma_1^2(x_1'\,^2+\cdots+x_n'\,^2)=\sigma_1^2x'\,^Tx'=\sigma_1^2||x'||_2^2 \ \Rightarrow\ \frac{||y'||_2}{||x'||_2}\le\sigma_1 \end{array} }

\displaystyle{(6)\quad ||y||_2^2=||Uy'||_2^2=y'\,^TU^TUy'=y'\,^Ty'=||y'||_2^2\ \Rightarrow\ \frac{||y||_2}{||y'||_2}=1 }

すなわち

\displaystyle{(7)\quad \frac{||x'||_2}{||x||_2}\times\frac{||y'||_2}{||x'||_2}\times\frac{||y||_2}{||y'||_2}\le\sigma_1 \ \Rightarrow\ \frac{||y||_2}{||x||_2}=\frac{||Ax||_2}{||x||_2}\le\sigma_1 }

したがって、線形写像y=Axの伝達特性は、行列Aの2ノルム

\displaystyle{(8)\quad ||A||_2=\max_{x\ne 0}\frac{||Ax||_2}{||x||_2}=\sigma_1(A) }

すなわち行列Aの最大特異値\sigma_1(A)(行列A^TAまたはAA^Tの最大固有値の正の平方根)によって表されます。

●行列のノルムについて次式が成り立ちます。

\displaystyle{(9)\quad \begin{array}{l} ||A+B||\le ||A||+||B||\\ ||AB||\le ||A|| ||B|| \end{array}  }

(8)より

\displaystyle{(10)\quad \frac{||Ax||}{||x||} \le ||A||\ \Rightarrow\ ||Ax|| \le ||A||||x|| }

に注意して

\displaystyle{(11)\quad \begin{array}{l} ||(A+B)x||=||Ax||+||Bx||\ \le (||A||+||B||)||x||\\ \Rightarrow\ ||(A+B)|| \le ||A||+||B||\\ ||ABx||\le ||A||||Bx||\ \le ||A||||B||||x||\ \Rightarrow\ ||AB|| \le ||A||||B|| \end{array} }

●一方、ベクトルの2ノルムについて次式が成り立ちます。

\displaystyle{(12)\quad \begin{array}{l} ||a+b||\le ||a||+||b||\\ |a^Tb|\le ||a|| ||b|| \end{array}  }

これらは(9)の特別な場合と考えられますが、ここでは直接導出してみます。

いま、xに関する2次方程式

(13)\quad \begin{array}{l} \displaystyle{\sum_{i=1}^n(a_ix-b_i)^2=\sum_{i=1}^n(a_i^2x^2-2a_ib_ix+b_i^2)}\\ \displaystyle{=(\sum_{i=1}^na_i^2)x^2-2(\sum_{i=1}^na_ib_i)x+(\sum_{i=1}^nb_i^2)=0} \end{array}

を考えると、この実数解は1個または0個となることから、この判別式は零または負でなければならないので

\displaystyle{(14)\quad D=\underbrace{(\sum_{i=1}^na_ib_i)^2}_{(a^Tb)^2}-\underbrace{(\sum_{i=1}^na_i^2)}_{a^Ta}\underbrace{(\sum_{i=1}^nb_i^2)}_{b^Tb}\le 0 }

より

\displaystyle{(15)\quad (a^Tb)^2 \le a^Ta b^Tb \Leftrightarrow |a^Tb|\le||a||||b|| }

すなわち(12)の第2式が得られます。また、第1式は、次式から得られます。

\displaystyle{(16)\quad \begin{array}{l} (\sqrt{a^Ta}+\sqrt{b^Tb})^2-(a+b)^T(a+b)\\ =a^Ta+2\sqrt{a^Ta}\sqrt{b^Tb}+b^Tb-(a^Ta+2a^Tb+b^Tb)\\ =2(\sqrt{a^Ta}\sqrt{b^Tb}-a^Tb) \ge 2(|a^Tb|-a^Tb) >0 \end{array}  }

●ちなみに、行列のフロベニウスノルムは

\displaystyle{(17)\quad ||A||_F^2={\rm tr}A^TA=\sum_{i=1}^m\sum_{j=1}^n a_{ij}^2 }

で定義されます。これは

\displaystyle{(18)\quad ||A||_F^2={\rm tr}V\Sigma U^TU\Sigma V^T=\sum_{i=1}^{\min\{n,m\}}\sigma_{i}^2 }

と表せるので、次式が成り立ちます。

\displaystyle{(19)\quad \underbrace{\sigma_1^2}_{||A||^2} \le \underbrace{\sum_{i=1}^{\min\{n,m\}}\sigma_{i}^2}_{||A||_F^2} \le \min\{n,m\}\underbrace{\sigma_1^2}_{||A||^2}\ \Rightarrow\ ||A|| \le ||A||_F  \le \sqrt{\min\{n,m\}}||A|| }

行列積のフロベニウスノルムについても

\displaystyle{(20)\quad \begin{array}{l} \displaystyle{||AB||_F^2=\sum_{j=1}^{n}\sum_{i=1}^{m}(\sum_{k=1}^{\ell}a_{ik}b_{kj})^2} \displaystyle{\le \sum_{j=1}^{n}\sum_{i=1}^{m} (\sum_{k=1}^{\ell}a^2_{ik}\sum_{k=1}^{\ell}b_{kj}^2)}\\ \displaystyle{=(\sum_{i=1}^{m}\sum_{k=1}^{\ell}a^2_{ik}) (\sum_{k=1}^{\ell}\sum_{j=1}^{n}b_{kj}^2)} \displaystyle{=||A||_F^2||B||_F^2} \end{array}  }

が成り立ちます。

連立1次方程式

次の線形方程式(連立1次方程式)を考えます。

\displaystyle{(1)\quad Ax=b\quad(A\in{\bf R}^{n\times m}, x\in\bf R}^m, b\in\bf R}^n) }

ここで、Aはフルランク({\rm rank}A=\min\{n,m\})とします。

1^\circ n\le mの場合(未知数の数が方程式の数より大きい場合)、(1)はunder-determined(劣決定)と呼ばれ、Aの特異値分解を代入して次のように書けます。

\displaystyle{(2)\quad \begin{array}{l} \underbrace{U\left[\begin{array}{cc} \Sigma_1 & 0_{n\times m-n} \end{array}\right] \left[\begin{array}{c} V_1^H\\ V_2^H \end{array}\right]}_{A}x =U\Sigma_1V_1^Hx=b\\ \Sigma_1={\rm diag}\{\sigma_1,\cdots,\sigma_n\} \end{array} }

(2)の解候補として

\displaystyle{(3)\quad x=V_1\Sigma_1^{-1} U^Hb+V_2c\quad(c\in{\bf R}^{n\times m-n}) }

を考えます。V_1^HV_2=0_{n\times m-n}より第1項と第2項は直交することから

\displaystyle{(4)\quad ||x||^2=||V_1\Sigma_1^{-1} U^Hb||^2+||V_2c||^2 }

(3)においてc=0として得られるx=V_1\Sigma_1^\dagger U^Hbは、||x||を最小化する最小ノルム解と呼ばれます。

2^\circ n\ge mの場合(未知数の数が方程式の数より小さい場合)、(1)はover-determined(過決定)と呼ばれ、Aの特異値分解を代入して次のように書けます。

\displaystyle{(5)\quad \begin{array}{l} \underbrace{\left[\begin{array}{cc} U_1 & U_2 \end{array}\right] \left[\begin{array}{cc} \Sigma_1 \\ 0_{n-m\times m}  \end{array}\right]V^H}_{A}x =U_1\Sigma_1V^Hx=b\\ \Sigma_1={\rm diag}\{\sigma_1,\cdots,\sigma_m\} \end{array} }

(5)の解候補として

\displaystyle{(6)\quad x=V\Sigma_1^{-1} U_1^Hb }

を考えます。b=(b-Ax)+Axにおいて、

\displaystyle{(7)\quad \begin{array}{l} b=(b-Ax)+Ax\\ =(I-U_1\Sigma_1V^HV\Sigma_1^{-1} U_1^H)b+U_1\Sigma_1V^HV\Sigma_1^{-1} U_1^Hb\\ =U_2 U_2^Hb+U_1 U_1^Hb \end{array} }

ここで、U_2^HU_1=0_{m\times n-m}より第1項と第2項は直交することから

\displaystyle{(8)\quad ||b||^2=||b-Ax||^2+||Ax||^2 }

(6)は||b-Ax||^2を最小化する最小2乗解と呼ばれます。