NMF简介以及它与PCA的区别
发布网友
发布时间:2022-12-25 19:07
我来回答
共1个回答
热心网友
时间:2023-10-18 17:27
本文简单介绍非负矩阵分解 —— 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处理中,将特征降维为600个,降维后的每个人脸都包含了600个特征(所以我们看到降维后的人脸有种“伏地魔”的感觉 (--.--||)),这是因为降维处理相当于删去了部分细节特征,导致一部分信息丢失,在图片中最直观的体现就是变模糊。
而在NMF的处理中,这1000个特征相当于是被分离了。数据矩阵X被拆分成基础向量B(basis vectors)与权重W(weights)的乘积:
X ≈ B × W
其中,权重W理解为特征的权重,如鼻子、耳朵、嘴巴等等。也就是说:
X ≈ B × w1 + B × w2 + …… + B × w1000
相当于,一张人脸是由鼻子、耳朵等这些独立的特征叠加出来的。
总的来说,PCA处理的人脸没有区分具体哪个特征对应哪些部位,而是统一地把所有的特征体现在一张照片上;NMF是一种“可加”的思想,不同的特征对应不同的脸部细节,将这些细节叠加形成一张脸。
https://www.*.com/watch?v=AN6QOmWPD60&t=253s