等效matlab代码到数学公式(特征脸算法的协方差矩阵)

时间:2016-02-20 17:21:09

标签: algorithm matlab matrix covariance

enter image description here

我正在开发用于人脸识别的特征脸算法。从训练图像中减去平均值后,我现在得到具有居中图像的矩阵A.

现在我不确定matlab代码AxA'是否等同于上图中显示的整个第一行或仅仅是ΣΦnΦn'部分。

所以我要问的是,我还需要将AxA'除以M(训练集大小),还是将其作为Matlab执行矩阵乘法的一部分?

2 个答案:

答案 0 :(得分:1)

它实际上取决于本文和/或Matlab中使用的符号。从严格的数学观点来看,两者必须是平等的。

一般来说,如果你减去了平均值,下一步是评估协方差矩阵(在Matlab中查看cov()),然后从这样的矩阵中提取特征值和特征向量。

答案 1 :(得分:0)

事实证明,只有ΣΦnΦn'部分等同于AxA',因此需要除以M。我找到了在纸上做总和的方法,我尝试了一个简单的2x2矩阵(https://math.stackexchange.com/questions/621036/how-sum-work-vectors-and-matrices)。

对于矩阵Q = [1 2; 3 4]转置Q'= [1 3; 2 4]。在纸上ΣQnQn'= [5 11; 11 25]和Matlab QxQ'= [5 11; 11 25]。这表明公式的1 / M部分不是由Matlab完成的,我需要单独完成。