PCA主成分分析

作者: 初七123 | 来源:发表于2017-10-29 16:20 被阅读19次

假设在 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) 是一个标量,考虑到标量的转置和自身相等,将其转置后放到前面作为系数。

F - Frobenius范数,即矩阵内所有元素的平方和

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

A*为转置,trace 即 Tr

可得

去除 d 无关的项

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

继续使用该性质

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

参考

《Deep Learning Book》
UFLDL教程

相关文章

网友评论

    本文标题:PCA主成分分析

    本文链接:https://www.haomeiwen.com/subject/tneypxtx.html