矩阵分解

SVD分解

对任何一个矩阵\(A_{m,n}\)

\[A_{m,n}=U_{m,m}\Sigma_{m,n} V^T_{n,n}\]

其中\(U_{m,m},V_{n,n}\)是正交矩阵,\(\Sigma_{m,n}\)是对角矩阵,对角矩阵中对角线的值称为A的奇异值,U中每一列是A的左奇异向量,V中每一列是A的右奇异向量。

\[A^TA = V(\Sigma^T\Sigma)V^T\]

\[AA^T = U(\Sigma\Sigma^T)U^T\]

可以看到U,V分别是\(AA^T\)\(A^TA\)的特征向量,\(\sigma^2\)\(AA^T\)\(A^TA\)的特征值

QR分解

实数矩阵A可以分解为:

\[A_{m,n}=Q_{m,m}R_{m,n}\]

其中Q是正交矩阵,R是上三角矩阵。

用矩阵分解求Linear least squares(LLS)

SVD分解最稳定,但耗时最长。正规方程求解用了LDLT分解,最不稳定,但耗时最少。QR分解介于两者之间。

SVD分解

LLS问题可以定位为求解:

\[\min_x\|Ax-b\|^2_2\]

\[\|Ax-b\|_2^2=\|U^T(AVVTx-b)\|^2_2=\|\Sigma V^Tx-U^Tb\|_2^2 \]

\(V^Tx=Z\)

\[=\sum^r_{i=1}(\sigma_iz_i-u_i^Tb)^2+\sum^m_{i=r+1}(u_i^Tb)^2\]

则解为:

\[z_i=\frac{u_i^Tb}{\sigma_i}, i = 1, 2,...,r\]

\[z_i = arbitrary, i = r+1,...,n\]

\[x=VZ\]

QR分解

A可以分解为:

\[A = Q\left[\begin{matrix} R \\ 0 \end{matrix}\right]\]

则有:

\[Q^T(Ax-b) = Q^T(Q\left[\begin{matrix} R \\ 0 \end{matrix}\right]x-b)=\left[\begin{matrix} Rx-(Q^Tb)_n \\ (Q^Tb)_{m-n} \end{matrix}\right]=\left[\begin{matrix} u \\ v \end{matrix}\right]\]

优化的函数为:

\[\|Ax-b\|^2_2=(Ax-b)^T(Ax-b)=(Ax-b)^TQQ^T(Ax-b)=u^Tu+v^Tv\]

由于v与x无关,令u=0,得到

\[\hat{x}=R^{-1}(Q^Tb)_n\]

正规方程

\[f(x) = \|Ax-b\|^2_2 = (Ax-b)^T(Ax-b) = x^TA^TAx-x^TA^Tb-b^TAx+b^Tb\]

矩阵求导有以下三个等式:

\[ \nabla ( x^ {T} A^ {T} b)= A^ {T} b, \nabla ( b^ {T} Ax)= A^ {T} b, \nabla ( x^ {T} A^ {T} Ax)= 2A^ {T} Ax \]

\[\nabla f(x)= 2 A^TAx - 2A^Tb\]

\(\nabla f(x)=0\)\(A^TAx=A^Tb\)

导数为0处一定是局部最小值吗?为什么不是最大值或者是鞍点?进一步分析二阶导的性质。 由于\(\nabla^2f(x)=2A^TA\)半正定,因此一定是极小值。


矩阵分解
https://sisyphus-99.github.io/2023/10/15/矩阵分解/
Author
sisyphus
Posted on
October 15, 2023
Licensed under