x_1, \ldots, x_Nについての連立方程式
\begin{align*}
y_1
&= a^1_1 x_1 + \cdots + a^N_1 x_N, \\
&\ \ \vdots \\
y_M
&= a^1_M x_1 + \cdots + a^N_M x_N
\end{align*}
i.e.
\begin{pmatrix}
y_1 \\
\vdots \\
y_M
\end{pmatrix}
=
\begin{pmatrix}
a_1^1 & \cdots & a_1^N \\
\vdots & \ddots & \vdots \\
a_M^1 & \cdots & a_M^N
\end{pmatrix}
\begin{pmatrix}
x_1 \\
\vdots \\
x_N
\end{pmatrix}.
を解きたいとする。y = (y_1 \cdots y_M)^t, \ A = (a_m^n)_{1\leq n \leq N, 1 \leq m \leq M}^tとすれば上式は
とかける。さて、この連立方程式は一般に解が一意に定まらない。そこで我々は、
\begin{align}
J = \|y - Ax\|^2 \ \ \ \ \mathrm{and} \ \ \ \ \|x\|^2
\end{align}
が最小となるようなxを求める。このようなxを方程式y = Axの最小二乗解という。
最小二乗解の幾何的解釈
第一の条件を満たすxは、幾何的には「y \in \mathbf{R}^MとAx \in \mathbf{R}^Mとの距離が最小となるx \in \mathbf{R}^N」と解釈できる。さらに幾何的な解釈を推し進めれば、
「y \in \mathbf{R}^Mを\mathbf{R}^Mの部分空間\mathrm{Im} A = \{Az;\ z \in \mathbf{R}^N\}に直交射影したベクトルがAxと一致するようなx \in \mathbf{R}^N」
である。
なお、この解釈は次のように計算によって直接たしかめることができる; Aの終域\mathbf{R}^Mは、\mathrm{Im} Aを用いて
\mathbf{R}^M = \mathrm{Im} A \oplus (\mathrm{Im} A)^\perp
と直和分解できる。\mathrm{Im}Aへの直交射影をPとすれば
\begin{align}
J
&= \|(1 - P)y + (Py - A x) \|^2 \\
&= \|(1 - P)y\|^2 + \|Py - A x \|^2 \\
\end{align}
であるから((1-P)y \perp Py - A xに注意)、求めるxは\|Py - A x\|^2を最小化する、すなわち
を満たすx \in \mathbf{R}^{N}である。Pと\mathrm{Im} Aの定義から、このようなxは常に存在する。
Aの特異値分解
一般に零でない行列A \in \mathrm{Mat}(M,N)に対して
Av = \sigma u,\ \ \ \ A^t u = \sigma v
となる\sigma > 0, u \in \mathbf{R}^M, v \in \mathbf{R}^{N}が存在するとき、\sigmaをu,vに対するAの特異値といい、u,vをそれぞれ\sigmaに対するAの左特異ベクトル、右特異ベクトルという。
さて、\mathrm{rank}A=R(\leq\min\{M,N\})とすると、\mathrm{Im}A, \mathrm{Im}A^tはそれぞれ\mathbf{R}^M, \mathbf{R}^{N}のR次元部分空間である。さらに、それぞれの正規直交基底\{u_r\} \subset \mathbf{R}^M, \{v_r\} \subset \mathbf{R}^{N}で、それぞれをAの左特異ベクトル、右特異ベクトルとし、非負実数\{\sigma_r\}_{r = 1}^Rを特異値とするものが存在する。すなわち、
Av_r = \sigma_r u_r, \ \ \ \ A^t u_r = \sigma_r v_r
となるものが存在する。上式の第一式から行列Aの特異値分解
\begin{align}
A = \sum_{r=1}^R \sigma_r u_r v_r^t
\end{align}
を得ることができる。なお、上式はU = (u_1 \cdots u_R), V = (v_1 \cdots v_R)とおけば
A = U \mathrm{diag}(\sigma_1, \ldots, \sigma_R) V^t
と書ける。
\mathrm{Im}Aへの直交射影P
特異値分解(6)を用いれば、非零行列に対して(Moore-Penrose型)一般逆行列A^-を
A^- = \sum_r \dfrac1\sigma_r v_r u_r^t
で定義できる。簡単な計算から
AA^- = \sum_r u_r u_r^t (= U U^t)
である。これは\mathbf{R}^Mから\mathrm{Im}Aへの直交射影Pに等しい。実際、任意の\phi \in \mathbf{R}^Mは、\mathrm{Im} Aの正規直交基底\{u_r\}を適当に拡張することで得られる\mathbf{R}^Mの正規直交基底\{u_m\}_{m = 1}^Mと適当な係数a_m\in \mathbf{R}を用いて\phi = \sum_m a_m u_mと書けるので、
A A^- \phi = \sum_r a_r u_r \in \mathrm{Im} A
であり、かつ定義から明らかに(A A^-)^2 = (A A^-)^t = A A^-が成立する。
以降
\begin{align}
P = A A^-
\end{align}
とする。
ふたたび、最小二乗解
我々は、与えられたy \in \mathbf{R}^MとA \in \mathrm{Mat}(M,N)に対して\|Py - A x\|^2を最小化するx \in \mathbf{R}^{N}を求めたいのであった。Pが\mathrm{Im} Aへの直交射影であることと、\mathrm{Im} Aの定義から明らかにPy = A xとなるxが存在する。従って式(6), (7)より
Py = \sum_r \langle u_r, y \rangle u_r = \sum_r \sigma_r \langle v_r, x \rangle u_r = A x
となり、r = 1, \ldots, Rに対して
\langle v_r, x \rangle = \dfrac{\langle u_r, y \rangle}{\sigma_r}
が成立する。\mathrm{Im} A^tの正規直交基底\{v_r\}_{r=1}^Rを適当に拡張した\{v_1, \ldots, v_R, v_{R+1}, \ldots, v_{N}\}を\mathbf{R}^{N}の正規直交基底とすれば、xのFourier展開は
\begin{align}
x
&= \sum_n \langle v_n, x \rangle v_n \\
&= \sum_{r=1}^R \dfrac{\langle u_r, y \rangle}{\sigma_r} v_r + \sum_{i = R+1}^N \langle v_i, x \rangle v_i
\end{align}
となる。いま、\| x \|^2が最小となるようにするので、上式第二項は0となるようにしておけばよい。この条件の下で上式は
\begin{align}
x
&= \sum_{r=1}^R \dfrac{\langle u_r, y \rangle}{\sigma_r} v_r \\
&= \left( \sum_r \dfrac1\sigma_r v_r u_r^t \right) y \\
&= A^- y
\end{align}
となる。これが求めるxである。
特殊な場合の最小二乗解
M > N = \mathrm{rank}Aの場合
この場合、N \times N行列A^t Aの逆行列(A^tA)^{-1}が存在する。そしてAの特異値分解をもちいれば
\begin{align*}
(A^tA)^{-1}A^t
&= \left( \sum_r \sigma_r v_r u_r^t \sum_{r'} \sigma_{r'} u_{r'} v_{r'}^t \right)^{-1} A^t \\
&= \left( \sum_r \dfrac{1}{\sigma_r^2} v_r v_r^t \right) A^t \\
&= \sum_{r} \dfrac{1}{\sigma_{r}^2} v_{r} v_{r}^t \sum_{r'} \sigma_{r'} v_{r'} u_{r'}^t \\
&= \sum_r \dfrac{1}{\sigma_r} v_r u_r^t \\
&= A^-
\end{align*}
であるから、方程式y=Axの最小二乗解xは
\begin{align}
x = (A^tA)^{-1}A^t y
\end{align}
となる。
また、\mathrm{Im} A への直交射影 P は
P = A A^- = A (A^t A)^{-1} A^t
となる。
N > M = \mathrm{rank} Aの場合
この場合、M \times M行列A A^tの逆行列(A A^t)^{-1}が存在する。そしてAの特異値分解をもちいれば
\begin{align*}
A^t (A A^t)^{-1}
&= \sum_r \sigma_r v_r u_r^t \sum_{r'} \dfrac{1}{\sigma_{r'}^2} u_{r'} u_{r'}^t \\
&= \sum_r \dfrac{1}{\sigma_r} v_r u_r^t \\
&= A^-
\end{align*}
であるから、方程式y=Axの最小二乗解xは
となる。
Discussion