简单直观地理解非负矩阵分解NMF

我对NMF的理解是一个反反复复的过程,时懂时不懂,因此在这里简单记录下我目前清醒的认知。

简单直观地理解非负矩阵分解NMF_第1张图片
NMF图示

NMF的基本思想可以简单描述为:对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵U和一个非负矩阵V,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。

分解前后可理解为:原始矩阵的列向量是对左矩阵
中所有列向量的加权和,而权重系数就是右矩阵对应列向量的元素,故称为基矩阵,为系数矩阵。一般情况下(矩阵的列数)的选择要比小,满足,这时用系数矩阵代替原始矩阵,就可以实现对原始矩阵进行降维,得到数据特征的降维矩阵,从而减少存储空间,减少计算机资源。

原矩阵V中的一列向量可以解释为对左矩阵W中所有列向量(称为基向量)的加权和,而权重系数为右矩阵H中对应列向量中的元素。这种基于基向量组合的表示形式具有很直观的语义解释,它反映了人类思维中“局部构成整体”的概念。

比如原矩阵V第2行第4列的红色三角形是由矩阵W的第2行与矩阵H的第4列相乘的结果!

这也就不难理解维基百科中的介绍:

Matrix multiplication can be implemented as computing the column vectors of V as linear combinations of the column vectors in W using coefficients supplied by columns of H.

虽然NMF是一个很厉害的算法,但其实质是加权和,我们可以在原理上等效为基本的线性方程:

y构成了原矩阵中的元素,a系列值是权重,x系列变量是特征。矩阵乘法中特征用列向量表示,权重系数用行向量表示,所以成了图中所看到的样子。

你可能感兴趣的:(简单直观地理解非负矩阵分解NMF)