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

Equivalent matlab code to maths formula (covariance matrix for eigenfaces algorithm)

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

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

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

实际上取决于本文在Matlab中使用的符号and/or。从严格的数学角度来看,两者一定是相等的。

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

事实证明,只有 ΣΦ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做的,需要我单独做。