比较NMF、PCA和VQ

2014-12-23


在下面的这篇论文里:

Lee D D, Seung H S. Learning the parts of objects by non-negative matrix factorization[J]. Nature, 1999, 401(6755): 788-791.

论文中使用了2429张人脸图像,每个图像大小是19×19=361。

以图像重建为例对比了NMF、PCA和VQ。

关于NMF:隐语义模型和NMF(非负矩阵分解)

关于PCA:使用PCA处理MNIST数据集

VQ,全称Vector Quantization,可以翻译成“矢量量化”。在下面的两个博客里给出了很好的介绍:

漫谈 Clustering (番外篇): Vector Quantization

语音信号处理之(三)矢量量化(Vector Quantization)

NMF


NMF将非负矩阵V分解为两个非负矩阵的成绩,即W×H。设V的大小是n×m,W大小是n×r,H大小是r×m。这篇论文里,目标是最大化下面的式子:

论文中给出下面的式子迭代更新W和H:

使用论文中的图像数据集,W的大小为361×2429。r设置为49,所以W的大小为361×49,H的大小为49×2429。W的每一列可以构造出一个19×19的图像,但与PCA不同的是,它们是parts-based representations。于是由W可构造49张图片。H的第i列与图片数据集中的第i个图片对应。H(j, i)代表图像i针对图像W(:, j)的权重。这些权重都是非负的。

下图展示了某个图像在NMF下的重建结果:

VQ


由于NMF中r=49,使用VQ时,将2429张人脸图像使用kmeans聚成49个簇,每个簇的所有图像求centroid,可以得到49个基本图像。重建某个人脸图像时,重建结果是该图像所属的簇的centroid对应的图像。

下图展示了某个图像(和上面的NMF使用同一个图像)在VQ下的重建结果:

PCA


使用PCA将这些图像降到49维度,可以得到49个“特征脸”,对这49个“特征脸”加权求和可以得到一张“原始的脸”(原始图像)。

下图展示了某个图像(和上面的NMF使用同一个图像)在PCA下的重建结果:

PCA与NMF的一个不同是PCA的权重有正有负。另外一点是,NMF构造的49张图像,每一张展示的是脸的部某分,每张图像是稀疏的;而PCA的每张“特征脸”都显示出了脸的轮廓。

( 完 )