我正在开发用于人脸识别的特征脸算法。从训练图像中减去平均值后,我现在得到具有居中图像的矩阵A.
现在我不确定matlab代码AxA'是否等同于上图中显示的整个第一行或仅仅是ΣΦnΦn'部分。
所以我要问的是,我还需要将AxA'除以M(训练集大小),还是将其作为Matlab执行矩阵乘法的一部分?
答案 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完成的,我需要单独完成。