主成分分析(PCA)数学向详解

PCA的核心目标:压缩数据,但要使压缩后的数据损失尽可能小。

为了讨论这一问题,我们假设我们的数据集有m个样本,具有l个维度的参数。记:

(1)

为了对X进行编码和解码,我们设f为编码器,g为解码器,C为X编码后的数据,具体来说:

(2)

其中X'为解码后的具有一定损失的数据。同时为了清晰的描述这个过程,用矩阵D来表示这一解码过程,具体来说:

(3)

为了衡量数据压缩后损失的数据有多少,可以用原始数据与编码后再解码的数据进行对比来进行量化,即:

(4)

对于每一个输入的样本数据表示为:

(5)

这里使用了L2范数来衡量变化前后数据的差异,即两个数据映射在多维空间中的距离大小。为了我们的核心目标,我们希望(4)的值越小越好,首相以单个数据即x向量输入进行讨论。

(6)

(7)

式子中argminc表示等号右侧取最小值时,c的取值为c*,同时我们对其L2范数进行了平方,这并不会影响结果。我们继续对这个式子进行展开:

(8)

(9)

因为:为标量:从结果上来说: 

c (10)

对于式6而言:不影响的取值,因此(6)等价于问题:不影响c*的取值,因此6等价于问题:

 (11)

代入

(12)

因为

 (13)

为了使这一个编码和解码的过程具有高效性且结果唯一,对于解码矩阵D,我们对矩阵D进行了限制

1:为我们定义D为正交矩阵,这样子其各个子向量线性无关,保证在编码后的数据不存在共线性问题,同时结果唯一。

2:D中的所有列向量的模为1即为单位范数,这样子原始参数在编码后的各个维度都不会在D中的列向量的方向上拉伸和压缩,而是进行投影。

因此对于正交矩阵D和其特征值:

即:

 (14)

我们对(14)进行向量求导,当其导数为0时可以取到极值。

即: (15)

这里的∇c表示求对变量c求向量的微分算子,即求导

于是:

 (16)

 (17)

好了,我们可以得出结论1:当我们想要满足压缩后损失率最小时,会存在式(17)的关系。按照这种关系:

编码器可以f可以表示为

那么,我们基于以上的结论更进一步的讨论,对于某个的输入x有:

设:(18)

我们用下面这个式子来衡量对所有输入数据编码再解码后的损失,并求损失最小时D的取值。

 (19)

对于, 的值为标量

(20)

式20带入19中,同时使用Frobenius范数代替L2范数的表达更为准确

(21)

我们可以将式20推广到所有的输入x中,这样,对于所有输入X而言:

(22)

如何理解式21变化为式22,可以看看下面:对于任意x输入即,由(1)可知

那么:

由式22继续

根据Frobenius范数的定义,对于:主成分分析(PCA)数学向详解_第1张图片    Tr(trace):迹

因此:

化简:

舍去与D无关的量:

对于迹而言:Tr(ABC)=Tr(ACB),因此可以写为:

对于D的定义中,如式13上面内容所说,我们知道

即:

最终得到:

等效于

因此,当D为最优解码矩阵时,应使最大,即最优的的最大特征值对应的特征向量。

这是因为:任何实对称矩阵 A 可被分解成,Q为特征向量矩阵,而为对角矩阵,又因为必为对角矩阵,其对对角线上的值为特征值与A的一致,且D的模为1,所以当且仅当D的方向与最大特征根的方向一致取最大值。

其实在PCA的操作如下两句所示:

1)求的最大特征向量D

2)压缩编码器为,解压解码器为D

你可能感兴趣的:(算法,机器学习,数学建模)