为了讨论这一问题,我们假设我们的数据集有m个样本,具有l个维度的参数。记:
为了对X进行编码和解码,我们设f为编码器,g为解码器,C为X编码后的数据,具体来说:
其中X'为解码后的具有一定损失的数据。同时为了清晰的描述这个过程,用矩阵D来表示这一解码过程,具体来说:
为了衡量数据压缩后损失的数据有多少,可以用原始数据与编码后再解码的数据进行对比来进行量化,即:
对于每一个输入的样本数据表示为:
这里使用了L2范数来衡量变化前后数据的差异,即两个数据映射在多维空间中的距离大小。为了我们的核心目标,我们希望(4)的值越小越好,首相以单个数据即x向量输入进行讨论。
式子中argminc表示等号右侧取最小值时,c的取值为c*,同时我们对其L2范数进行了平方,这并不会影响结果。我们继续对这个式子进行展开:
对于式6而言:不影响
的取值,因此(6)等价于问题:不影响c*的取值,因此6等价于问题:
为了使这一个编码和解码的过程具有高效性且结果唯一,对于解码矩阵D,我们对矩阵D进行了限制
1:为我们定义D为正交矩阵,这样子其各个子向量线性无关,保证在编码后的数据不存在共线性问题,同时结果唯一。
2:D中的所有列向量的模为1即为单位范数,这样子原始参数在编码后的各个维度都不会在D中的列向量的方向上拉伸和压缩,而是进行投影。
即:
我们对(14)进行向量求导,当其导数为0时可以取到极值。
这里的∇c表示求对变量c求向量的微分算子,即求导
于是:
好了,我们可以得出结论1:当我们想要满足压缩后损失率最小时,会存在式(17)的关系。按照这种关系:
那么,我们基于以上的结论更进一步的讨论,对于某个的输入x有:
我们用下面这个式子来衡量对所有输入数据编码再解码后的损失,并求损失最小时D的取值。
式20带入19中,同时使用Frobenius范数代替L2范数的表达更为准确
我们可以将式20推广到所有的输入x中,这样,对于所有输入X而言:
如何理解式21变化为式22,可以看看下面:对于任意x输入即,由(1)可知
由式22继续
根据Frobenius范数的定义,对于: Tr(trace):迹
因此:
化简:
舍去与D无关的量:
对于迹而言:Tr(ABC)=Tr(ACB),因此可以写为:
最终得到:
等效于
因此,当D为最优解码矩阵时,应使
最大,即最优的
为
的最大特征值对应的特征向量。
这是因为:任何实对称矩阵 A 可被分解成,Q为特征向量矩阵,而
为对角矩阵,又因为
必为对角矩阵,其对对角线上的值为特征值与A的一致,且D的模为1,所以当且仅当D的方向与
最大特征根的方向一致,
取最大值。
其实在PCA的操作如下两句所示: