【线性代数知识梳理】-SVD分解、PCA方法

本章复习梳理了机器学习中常用的线性代数知识,并且推导了SVD分解和PCA算法。

标量、向量、矩阵的性质

标量,是一个独立的数。
向量,是一列数,如果每个元素都属于实数集$R$且该向量一共有n个元素,则该向量属于实数集$R$的n次笛卡尔集即$R^n$
矩阵,n个m维的列向量记做$A_{mn}$,方阵:n=m,单位矩阵:主对角线上的元素都为1,其他位置都为0的矩阵
矩阵的逆,满足$A^{-1}A=I_n$的矩阵$A^{-1}$称为矩阵$A$的逆矩阵,逆矩阵不一定存在,可逆矩阵一定是方阵
矩阵转置,把矩阵沿着主对角线做镜像翻转称为矩阵的转置操作,记为$A^{T}$,非方阵也可以做转置操作
对称矩阵,转置等于自身的矩阵叫做对称矩阵,即$A=A^T$
*对角矩阵
,只在主对角线上含有非零元素,其他位置上都是0的矩阵称为对角矩阵,注意:对角矩阵不一定是方阵。非方阵的对角矩阵没有逆矩阵。
正交,如果$x^ty=0$,那么向量$x$和$y$相互正交,如果两个向量的范数都为1,即$||x||$=1,则称为标准正交
正交矩阵,行向量和列向量分别是标准正交的方阵称为正交矩阵,即$A^TA=AA^T =I$,注意:向量分别是标注正交

SVD分解

先介绍特征分解:

方阵$A$的特征向量是指与$A$相乘之后相当于对此特征向量进行缩放的非零向量。
$Av = \lambda v$
$\lambda $称作特征值,$v$称作特征向量
假设矩阵$A$有n个线性无关的特征向量{$v^{(1)},…v^{(ns)}$},把这些特征向量连接成一个矩阵$V$,那么:$AV=Vdiag(\lambda)$
我们把这个式子称为$A$的特征分解
因为缩放之后的$sv$还是$A$的特征向量,因此我们把特征向量单位化之后,$V$就为正交矩阵(相互正交且单数为1的标准正交)
因此特征分解也可以表示为$A=Vdiag(\lambda)V^{-1} = Q \Lambda Q^T$
其中$Q$是$A$的特征向量组成的正交矩阵
每个实对称矩阵都可以分解成实特征向量和实特征值,但分解可能并不唯一,我们通常按照降序排列$Lambda$的元素,特征分解是唯一当且仅当特征值都是唯一的。
特征分解后所有特征值都是正数的矩阵称为正定矩阵,特征值非负数称为半正定矩阵
要证明正定矩阵,等价于$任意x,x^TAx>0$

SVD分解

如果矩阵$A$不是方阵,不能做特征分解,那么只能使用奇异值分解,与特征分解也是类似的:
$A= U D V^T$,假设$A$是一个mxn的矩阵,那么$U$是一个mxm的矩阵,$D$是一个mxn的矩阵,$V$是一个nxn的矩阵
有以下结论:$A$的左奇异向量$U$是$AA^T$的特征向量,$A$的右奇异向量$V$是$A^TA$的特征向量,$A$的非零奇异值是$A^TA$和$AA^T$特征值的平方根,注:$A^TA$和$AA^T$的特征值是相同的

最小二乘、最小范数的最小二乘

当我们有N个等式,n个未知数时,我们可以把等式表示为
$X_{Nxn}a_{nx1} = Y_{Nx1}$
当N=n且X可逆时,$a = X^{-1}Y$,
一般情况下,N!=n,因此不能直接求$X^{-1}$,可求近似解
我们定义最小二乘:$J=|Xa-Y|^2$,要求min($j$)时的$a$,对$a$求导可得:
$\frac{\mathrm{d}J}{\mathrm{d}a} = X^{T}(Xa-Y) = 0$
$X^TXa=X^TY$
当N< n时,矩阵R(X^TX)<=R(X)<=n,不可逆
N >n时,$a = (X^TX)^{-1}X^TY$,一般可逆,伪逆
为了防止过拟合,一般会加入正则项:$J = |Xa-Y|^2+\lambda|a|^2$,称为最小范数的最小二乘。
$\frac{\mathrm{d}J}{\mathrm{d}a} = X^{T}Xa-X^TY+\lambda a = 0$
$(X^TX+\lambda I)a = X^TY$
可以证明$(X^TX+\lambda I)$必可逆,此方法也称作岭回归

PCA

PCA是一种数据压缩的算法,例如n维空间上的向量,使用l(l<< n)维的向量来近似表示。
做PCA之前需要样本点中心化可以缩小误差???