(学习笔记) 非负矩阵分解 NMF

转载自: 知乎

1. 公式

非负矩阵分解 即将一个非负的大矩阵(V)分解成两个小的非负矩阵(W和H)。
W H ≈ V WH≈V WHV
Vn*m ,Wn*k ,Hk*m 矩阵 ,其中(n+m)r < 可以参考: Learning the parts of objects by non-negative matrix factorization Daniel D. Lee* & H. Sebastian Seung*†.
来自这篇论文中的效果对比如下:
(学习笔记) 非负矩阵分解 NMF_第1张图片

原始矩阵V的列向量是对矩阵W中的所有列向量的加权和,而权重系数就是矩阵H,故矩阵W被称为基矩阵,H为系数矩阵。

VQ的约束是要求H的每一列只有一个元素为1,其它为0,因此相当于将m个数据归纳成了k个代表,原数据映射过去就是取k个基当中与原向量距离最小的来重新表示。所以VQ的基都是一张张完整正常的脸,它们都是最具代表性的脸。

PCA大家用得比较多,就是求一组标准正交基,第一个基的方向取原数据方差最大的方向,然后第二个基在与第一个基正交的所有方向里再取方差最大的,这样在跟前面的基都正交的方向上一直取到k个基。所以PCA的基没有直观的物理意义,而且W和H里面的元素都是可正可负的,这就意味着还原时是用W的基加加减减得到的。

NMF因为约束了非负,所以只准把基相加,不能相减,这就意味着基与基是通过拼接组合来还原原象的。所以我们可以看到NMF的每个基实际上在表示着脸部的某个部件,这种性质在许多场景上就有了它特有的用处了。

分解方法

其是一个有界优化问题。
(学习笔记) 非负矩阵分解 NMF_第2张图片

方法一:
在这里插入图片描述按套路出牌的

方法二:
(学习笔记) 非负矩阵分解 NMF_第3张图片又叫乘法更新法,而且收敛比方法一快一些。
方法三:
参考: Projected Gradient Methods for Nonnegative Matrix Factorization.
这篇文章后来提出,方法比较全!

你可能感兴趣的:(机器学习)