NMF简介及其与PCA的区别

NMF简介及其与PCA的区别

本文简单介绍非负矩阵分解 —— Non-negative Matrix Factorization (NMF)以及它与Principal Component Analysis (PCA)

在学习机器学习基础和计算机视觉时,PCA的通俗解释及例子在网上很容易就能找到,但NMF的却寥寥无几。于是想写一篇关于NMF的简短的文章,便于跟我当初一样在初学时对于NMF的理解不是很清楚的朋友。

有错误的地方还望批评指正。

简介

NMF是指通过将非负的数据矩阵,分解成两个小的矩阵的乘积,从而减少运算量。

X ≈ B×W

这里还需要注意的是,B和W矩阵并不是唯一的。

其中,X是数据集矩阵,是一个n×p的矩阵,每一列表示一个特征,共有p个特征;X是一个n×k的矩阵,理解为k个基;W是k×p的矩阵,每列均为数据集X投影到B上得到的向量。

对比&区别

以人脸处理这个实例来说,假设每张照片的人脸共有1000个特征:

PCA

在PCA处理中,将特征降维为600个,降维后的每个人脸都包含了600个特征(所以我们看到降维后的人脸有种“伏地魔”的感觉 (–.--||)),这是因为降维处理相当于删去了部分细节特征,导致一部分信息丢失,在图片中最直观的体现就是变模糊。

NMF

而在NMF的处理中,这1000个特征相当于是被分离了。数据矩阵X被拆分成基础向量B(basis vectors)与权重W(weights)的乘积:

X ≈ B × W
其中,权重W理解为特征的权重,如鼻子、耳朵、嘴巴等等。也就是说:
X ≈ B × w1 + B × w2 + …… + B × w1000

相当于,一张人脸是由鼻子、耳朵等这些独立的特征叠加出来的。

总的来说,PCA处理的人脸没有区分具体哪个特征对应哪些部位,而是统一地把所有的特征体现在一张照片上;NMF是一种“可加”的思想,不同的特征对应不同的脸部细节,将这些细节叠加形成一张脸。

Reference
https://www.youtube.com/watch?v=AN6QOmWPD60&t=253s

发布了4 篇原创文章 · 获赞 1 · 访问量 159

猜你喜欢

转载自blog.csdn.net/SophisticatedWolf/article/details/104104308