機械学習用の線形代数の復習。
目次
Gram-Schmidt Process
基底$\{\mathbf w_1, \cdots , \mathbf w_n\}$でスパンされた空間$W\: (n = \dim W)$について、一つ目の直交ベクトルを$\mathbf v_1$とする。
この時、$\mathbf v_1 = \mathbf w_1$
このベクトルに直交するようなベクトル$\mathbf v_2$は、$\langle \mathbf v_2 , \mathbf v_1 \rangle = 0$となる必要がある。
ここで、$\mathbf v_2 = \mathbf w_2 – c\mathbf v_1,\:\: c\in \mathbb{R}$より、
$0 = \langle \mathbf w_2 , \mathbf v_1 \rangle – c\langle \mathbf v_1 , \mathbf v_1 \rangle$
よって、
$\mathbf v_2 = \mathbf w_2 – \frac{\langle \mathbf w_2 , \mathbf v_1 \rangle}{\|\mathbf v_1\|^2}\mathbf v_1$
これを一般化すると、任意の直交ベクトル$\mathbf v_k$について、以下の式が成り立つ。
$$\mathbf v_k = \mathbf w_k-\sum_{j=1}^{k-1}\frac{\langle \mathbf w_k , \mathbf v_j \rangle}{\|\mathbf v_j\|^2}\mathbf v_j\:(k=1,,,,\dim W)$$
この時、直交ベクトル$\mathbf v_k$をそのノルム$\|\mathbf v_k\|$で割ることにより、
直交基底
$$\mathbf u_k = \frac{\mathbf v_k}{\|\mathbf v_k\|} $$
を得る。
例
以下の$W\in \mathbb{R}^4$空間において、$\mathbf a = (1,2,-1,-3)^\mathrm{T}$に直交するベクトルの集合について考える。
この時、$\mathbf a$に直交するベクトルを$\mathbf x = (x_1,x_2,x_3,x_4)^\mathrm{T}$と置くと、
$\mathbf x\cdot \mathbf a = x_1+2x_2-x_3-3x_4=0$
自由変数は$x_1$以外なので、
$\begin{align} (x_1,x_2,x_3,x_4)^\mathrm{T} &= (-2x_2+x_3+3x_4,x_2,x_3,x_4)^\mathrm{T} \\&=x_2(-2,1,0,0)^\mathrm{T} + x_3(1,0,1,0)^\mathrm{T}+x_4(3,0,0,1)^\mathrm{T}\end{align}$
よって、
$(\mathbf w_1,\mathbf w_2,\mathbf w_3) = ((-2,1,0,0)^\mathrm{T},(1,0,1,0)^\mathrm{T},(3,0,0,1)^\mathrm{T})$
