一、
主成分(PCA)概念:将数据点投影到有特征性的方向上,每个数据点在向量上的投影就是主成分。
主成分用途:降维、法向量的估计、分类
二、
PCA的数学概念和物理意义
两个向量内积(投影) 列的线性组合 旋转、维度缩放、旋转(圆-椭圆)
1.SVD
2.Spectral theorem 谱定理(特征值)
3.Rayleigh quotients 瑞利熵
(分母是模)
① SVD物理意义理解:A最多能拉长或缩短x多少倍(旋转不会改变大小)
② 瑞利熵的证明:
第一行用谱定理
三、
PCA运作
主成分输入:一堆高维的点
主成分输出:一堆最主要的向量,最有代表性的高维的向量(高维点投影到某个方向上,方差要最大)
1.方差找最大的Z1
2.去掉属于Z1的成分,然后找剩下的主成分
3.过程可以重复很多遍找到我们想要的主向量
4.PCA具体步骤
步1:一堆点平均值设为0,减去平均值,关心的是方向所以中心点在哪里不重要。
步2:每个数据点Xi 点投影到Z上就是阿尔法这么多
步3:PCA是要找到方差(已经减掉了平均值),PCA的目的就是找到在某个方向上的最大值
发现跟瑞利熵很像(把XXT看成矩阵),故直接套用瑞利熵和谱定理:
为什么H=而不是,是因为用SVD再次做了分解:
可看到谱定理和SVD非常相关,为啥用SVD,因为可以继续求Z2
步1.把属于Z1的成分去掉,把每个数据点投影到Z1,再用数据点减掉,可以变成矩阵形式。
步2.重新用SVD和的形式,Ur旋转矩阵每一列都互相垂直可以消掉进一步简化。再把i从1变成2形式变出来了。
现在的矩阵是刨去了Z1主成分的矩阵,故新矩阵的第一列,原矩阵的第二列Ur
放弃过程可以重复很多遍,直到找到我们想要。
5.PCA步骤总结:有一堆点
①减掉数据点的中心② 做这个矩阵的SVD,找到Ur(第一个主向量第一列,第二个主向量第二列以此类推)
物理角度看PCA:基底的置换,一堆高维数据点,怎么去找出一组基底是最具代表性的方向,第二组就垂直第一个基底的另一个基底
四、
主成分用途:
1.降维(最大程度保存原始信息)
①降维N-L(Encoder)在N维,PCA找出L个主向量小于N,得到L个Z{Z1,Z2,Z3,Z4...},将Xi投影到每个Z上,得到Xi在每个主向量投影后的成分,所以一个N维点可以用L维a系数来代替。
②升维L-N(Decoder)(会损失数据)
a是x在z上的投影,重新加起来就是了,会损失数据(除非L=N),但因为主成分精心挑选,损的不算多。
Eigenfaces 类似。图片/人脸识别 (与哪个系数最相近)比深度学习好在需要的图片数量很小