PCA主成分分析
2017-10-29 本文已影响19人
初七123
假设在 R(n) 的空间中我们有m个点 {x(1), x(2), ..., x(m)}。我们希望用更少的储存空间去保存这些数据,但是希望压缩损失的精度尽可能小。有一个种方法是减少每个点的维度,这样我们就能少存储一些坐标(降维),PAC就是这样一种数据降维的算法。
算法步骤

原理推导
设 g(c)=Dc,其中 c 为编码后的数据,D 为解码矩阵,g(c) 为原始数据。并且规定 D 的具有单位范数约束和正交性。
我们要实现降维精度损失的最小化即求

因为上式第一项不依赖于 c 所以

又因为我们规定 D 的正交性和单位范数约束,上式

通过求导数为0的点得到最小值

假设已知解码矩阵D,便可以得到最优编码函数

PCA的重构操作可以定义为

接下来我们要挑选编码矩阵 D。假设数据 x 经过 f(x) 压缩,即要求通过 g(c) 重构后的损失最小。所以有:

为了简化推导,我们考虑 l 等于 1 的情况,此时 D 是一个列单位向量 d。代入 r(x) 可以得到

注意 dT x(i) 是一个标量,考虑到标量的转置和自身相等,将其转置后放到前面作为系数。


暂不考虑约束 dT d = 1,由迹运算 Tr(A) = sum(A[i, i])(即矩阵对角元素之和)的性质

可得

去除 d 无关的项

由迹运算性质,循环改变矩阵顺序不影响计算结果

继续使用该性质

此时我们考虑约束条件得到



参考
《Deep Learning Book》
UFLDL教程