我有兴趣了解如何实现 NMF 进行面部识别。我知道 NMF 的工作原理是采用 V,这是一个面部图像矩阵(n 分辨率 xm 人),并分解 V = WH,我们得到 r 个基向量。我假设这一步是使用训练集完成的。但我不知道如何从这里开始。
使用 PCA,在从训练集构建特征脸后,我们将测试图像投影到人脸空间,然后通过比较测试图像和训练图像之间的权重系数对图像进行分类。但是NMF呢?我是否使用基向量?我该怎么处理它们?
我有兴趣了解如何实现 NMF 进行面部识别。我知道 NMF 的工作原理是采用 V,这是一个面部图像矩阵(n 分辨率 xm 人),并分解 V = WH,我们得到 r 个基向量。我假设这一步是使用训练集完成的。但我不知道如何从这里开始。
使用 PCA,在从训练集构建特征脸后,我们将测试图像投影到人脸空间,然后通过比较测试图像和训练图像之间的权重系数对图像进行分类。但是NMF呢?我是否使用基向量?我该怎么处理它们?
NMF 不是分类器——它是一种转换(或者,更具体地说,是一种分解)。我们有, 其中(取决于你的观点)每一列对应于一些“原始图像”,每一行对应于相应行的金额由每个图像组成。
我可能建议的一种方法(这不是唯一的方法)是获取您的低维数据并在此基础上使用其他一些分类方法。从这个角度来看,不需要基向量; 你只用. 所以这就像将 NMF 视为一些开箱即用分类器之前的预处理降维步骤。这里的一个优势是您的分解等级通常远低于您的原始维度,这可以(除其他外)减少必要的训练时间。
NMF 和 PCA 非常相似,因此两者都将矩阵 M 分解为 WH。但是,使用 NMF,您有 M、W 和 H 都是非负的约束。在 PCA 中,您可以将 W 和 H 视为系数和特征脸,然后继续使用这些系数进行面部识别。在 NMF 中,W 和 H 是系数和面部轮廓(即面部的一部分)。然后,您继续以与使用 PCA 相同的方式使用这些系数进行面部识别。