1、概念:非负矩阵分解(NMF)是一种可以有效处理多变量数据的方法,是面对高维海量非负数据的一种特征提取和降维的方法,它不仅能达到维数约简,还能得到非负的数值结果,有很好的解释性。随着NMF算法的发展,为了更好地适应实际问题,各种改进的NMF算法层出不穷。但究其思想均是将目标矩阵 V 近似分解为两个非负矩阵W与H的乘积,即V ≈ WH。
2、常用的两种代价函数:为了找到V ≈ WH的近似解,我们首先需要定义一个代价函数,用以量化近似的程度。可以使用两个非负矩阵 A 和 B 的距离来构造此代价函数。(1)一种使用距离度量的方法为:计算 A 和 B 之间的欧几里得距离的平方值:
此公式下界为 0,仅当 A=B 时距离消失。
(2)另一种称为KL 散度或者相对熵: 与欧几里得距离相同,它的下界也为 0,且在 A=B 时距离消失。但它不能被称为“距离”,因为这个式子在 A 与 B 中并不对称,因此我们将其称为 A 对于 B 的“散度” 。
根据上面两种代价函数,可以将NMF问题化为下面两种最优化问题:
(1)在约束条件 条件下,以W,H作为参数,最小化
(2)在约束条件 条件下,以W,H作为参数,最小化
3、解决上述两个优化问题有梯度下降法(GU)、乘性迭代方法(MU)及交替非负最小二乘法(ANLS)等,下面使用乘性迭代方法更新每次迭代的W和H。
(1)欧式距离更新规则
(2)散度更新规则
4、总结:总的来说,针对NMF算法(大多都是基于欧式距离和KL散度的基础上提出新的NMF算法)
(1)首先是定义一个代价目标函数用来量化原矩阵与构造的新矩阵近似的程度,常见的用欧式距离作为目标函数。
(2)接着根据(1)中的代价目标函数可以将NMF问题转为新的优化问题。
(3)针对新的(2)中的优化问题采用不同的迭代更新规则进行解决,计算每次迭代的低秩矩阵W和H,常用乘性迭代法。
(4)证明所提出的目标函数的收敛性即可。
以上只是个人见解,如有错误,欢迎指正。