Singular Value Decomposition(SVD)
Eigen Vector Decomposing
特征值与特征向量的定义和关系可由下面等式给出
\[Ax = x\lambda\]扩展成 n 个特征向量和特征值,有
\[A \begin{pmatrix} x_1 & x_2 & \cdots & x_n \end{pmatrix} = \begin{pmatrix} x_1 & x_2 & \cdots & x_n \end{pmatrix} \begin{pmatrix} \lambda_1 \\ & \lambda_2 \\ && \ddots \\ &&& \lambda_n \end{pmatrix}\]简写为
\[AP= P\Lambda\] \[A= P \Lambda P^{-1}\]这意味着什么呢?可以从这几个角度理解:
- $A$ 与 $\Lambda$ 相似。两个矩阵相似,代表着同一个线性变换,在不同基下的表示。 $P$ 表示的是坐标系变换,$\Lambda$ 表示的是线性变换:
- A 这个线性变换被分解为三步(假设 P 正交):先旋转,后拉伸,再旋转回去
\[\begin{pmatrix} v^T & 0_{1\times n} & \cdots & 0_{1\times n}\\ 0_{1\times n} & v^T & \cdots & 0_{1\times n}\\ \cdots && \ddots\\ 0_{1\times n} & 0_{1\times n} & \cdots & v^T\\ \end{pmatrix}_{n\times n^2} \begin{pmatrix} a_{11} \\ a_{12} \\ \dots \\ a_{1n}\\ \cdots\\ a_{nn} \end{pmatrix}_{n \times n} = w\]PS:已知 $v \mapsto w,\ v,w \in \mathbb{R}^n$,需要 n 个这样的映射才能唯一确定一个线性映射或矩阵
SVD
full matrices:
\[A_{mn} = U_{mm}\Sigma_{mn}(V_{nn})^T\]not full matrices: retain max r eigen values and vectors
\[A_{mn} \approx U_{mr}\Sigma_{rr}(V_{nr})^T, r \leq min(m,n)\]应用
图片压缩或降维
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
I = mpimg.imread("E:\\Data\\Pictures\\Screenshots\\屏幕截图(1).png");
u, s, vh = np.linalg.svd(I[:,:,0],full_matrices=False)
smat = np.diag(s)
print(smat.shape)
k = 5
I_compress = np.dot(u[:,0:k],np.dot(smat[0:k,0:k],vh[0:k,:]))
plt.subplot(2,1,1)
plt.imshow(I[:,:,0])
plt.subplot(2,1,2)
plt.imshow(I_compress)
plt.show()
求超定齐次方程 $Ax = 0$ 的最小二乘解
\[A_{mn}x = 0\] \[m>n,rank(A) = n\]这个方程没有非零解(因为列向量空间维数是 m,但不相关的列向量只有 n 个,无法线性组合得到零向量),因此求最小二乘解,也就是让 $\lvert Ax \rvert ^2 = x^TA^TAx$ 最小的 x。
\[\begin{align} x^* = \underset{x}{\mathrm{arg\ min}}\ x^TA^TAx \\ s.t.\ x^Tx = 1 \end{align}\]- 如果 $x$ 是 $A^TA$ 的特征向量,在此前提下选择最小特征值对应的 x,则 $x^TA^TAx = \lambda$ 是最小的
- $x$ 不是 $A^TA$ 的特征向量
等号成立的条件为,当 $\lambda_{min}$ 或 $\lambda_{max}$ 对应的 $a_i = 1$,其余的 $a_i = 0$。
情况 1 其实只是情况 2 的特例。$a_i$ 充当挑选 $V$ 中列向量(即 $A^TA$ 的特征向量)的角色。
所以最小二乘解 $x^*$ 等于, $A^TA$ 的最小特征值对应的特征向量,也即 $A$ 最小奇异值对应的右奇异向量因此可以通过对 A 进行 SVD 分解求得 $Ax = 0$ 的最小二乘解。
而最小二乘的求解在多视角几何中均有应用,如路标的三角化、PnP等,因为这些问题最后会得到一个超定齐次方程。