--- title: Eigen Faces localeTitle: 自己的面孔 --- ## 特征面孔 ### 大纲 * 问题 * 解决方法 * 数据集 * 数学分析 * 影像重建 ### 问题 我们通常使用数据协方差矩阵的特征值和特征向量来计算我们的主成分。如果由于内存问题而无法计算协方差矩阵怎么办? ### 解决方法 我们现在使用一个技巧。我们使用多个图像,而不是使用协方差矩阵的图像尺寸。这开辟了另一个优势。现在我们拥有了所有图像的特征向量,我们所需要的只是这些m图像能够重建世界上的任何图像。 ### 定义数据集 考虑我们有大小为nx n的灰度图像。 m的数量级为100,n的数量级为10000.我们的目标是选择正确表示图像所有特征的k个分量。 我们现在创建一个矩阵X,我们在那里按行存储展平的图像(n ^ 2 x 1)。因此X的尺寸为n ^ 2 x m。 ### 数学分析 计算这个矩阵的协方差是事情变得有趣的地方。 矩阵X的协方差定义为点(X,XT),其维数为n ^ 2 xn ^ 2.对于如此大的数据集,这显然会超出内存。 现在考虑以下方程组。 dot(XT,X)V =λV其中V是特征向量,λ是相应的特征值。 预先乘以X, 点(点(X,XT),点(X,V))=λ点(X.V) 因此,我们发现协方差矩阵的特征向量只是图像矩阵和点(XT,X)的特征向量的点积。 因此,我们计算点(XT,X),其维数仅为mxm,并使用该矩阵的特征向量来构造特征向量 原始矩阵。 点(XT,X)的m个特征值(连同它们对应的特征向量)对应于点(X,XT)的m个最大特征值(以及它们对应的特征向量)。我们的要求 特征向量只是第一个k个本征向量及其相应的特征值。我们现在计算一个特征脸矩阵,这只是对它们加权的图像 特征向量。每个k图像的权重现在将是点(XT,特征脸(前k个值))。 ### 影像重建 这种方法可以帮助我们仅使用m个图像的k个特征来表示任何图像。可以使用这些权重来重建任何图像。 要获得任何图像, 图像(i)=点(特征脸(k),权重\[i,:\]。T)