非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种用于将一个非负矩阵分解成两个较小的非负矩阵乘积的数学方法,它在信号处理、计算机视觉、机器学习等领域有广泛应用。

NMF的目标是找到两个非负矩阵U和V,使得它们的乘积UV尽可能接近原矩阵X,同时U和V的维数小于X的维数,以达到数据降维的目的。

非负矩阵分解的基本公式

给定一个非负的数据矩阵 什么是非负矩阵分解?_最小化,其中每一列代表一个数据点每一行代表一个特征维度。NMF的任务是寻找两个非负矩阵 什么是非负矩阵分解?_迭代_02什么是非负矩阵分解?_迭代_03,使得:

什么是非负矩阵分解?_矩阵_04

这里,什么是非负矩阵分解?_迭代_05什么是非负矩阵分解?_最小化_06 被称为基矩阵(Basic Matrix),什么是非负矩阵分解?_矩阵分解_07 被称为编码矩阵(Encoding Matrix)。

编码矩阵 什么是非负矩阵分解?_矩阵分解_07每一列表示对应原始数据点在基矩阵U下的低维表示

NMF通过最小化重构误差来逼近原始矩阵,常见的损失函数为均方误差

什么是非负矩阵分解?_矩阵_09

其中

  • (X) 是非负数据矩阵。
  • (U) 和 (V) 分别是基矩阵编码矩阵
  • 什么是非负矩阵分解?_矩阵分解_10 表示矩阵的Frobenius范数。约束条件是U和V的所有元素都大于等于0。
  • 什么是非负矩阵分解?_迭代_11重构误差项
非负矩阵分解的优化

目标函数 J_NMF 相对于 什么是非负矩阵分解?_最小化_06什么是非负矩阵分解?_矩阵分解_07 同时是非凸的,但当其中一个固定时它是凸的。因此,通常使用迭代乘子更新规则来优化U和V:

什么是非负矩阵分解?_迭代_14

什么是非负矩阵分解?_迭代_15

其中:

  • 什么是非负矩阵分解?_线性代数_16 表示在第 什么是非负矩阵分解?_线性代数_17 次迭代时矩阵 什么是非负矩阵分解?_矩阵分解_18
  • 什么是非负矩阵分解?_矩阵分解_19 表示在第 什么是非负矩阵分解?_线性代数_17 次迭代时矩阵 什么是非负矩阵分解?_矩阵分解_18
  • 什么是非负矩阵分解?_线性代数_22 是基于 什么是非负矩阵分解?_线性代数_16什么是非负矩阵分解?_矩阵分解_24 的值更新得到的下一步迭代步的矩阵 什么是非负矩阵分解?_矩阵分解_18
  • 什么是非负矩阵分解?_矩阵分解_24 表示在第 什么是非负矩阵分解?_线性代数_17 次迭代时矩阵 什么是非负矩阵分解?_最小化_28
  • 什么是非负矩阵分解?_迭代_29 表示在第 什么是非负矩阵分解?_线性代数_17 次迭代时矩阵 什么是非负矩阵分解?_最小化_28
  • 什么是非负矩阵分解?_线性代数_32 是基于 什么是非负矩阵分解?_线性代数_16什么是非负矩阵分解?_矩阵分解_24 的值更新得到的下一步迭代步的矩阵 什么是非负矩阵分解?_最小化_28 的值
    这里的符号“⊙”表示Hadamard积,即元素按位置相乘
举例说明

假设有一个非负的数据矩阵X,大小为3x5,表示三个特征维度下的五个数据点:

什么是非负矩阵分解?_矩阵_36

我们的目标是找到两个非负矩阵U和V使得UV可以近似X,假设k=2。通过NMF算法,我们可能得到:

什么是非负矩阵分解?_矩阵分解_37

然后UV的结果为:

什么是非负矩阵分解?_线性代数_38

这个结果会尽量接近X。通过调整U和V,我们能够找到一个较好的低维表示,同时保留原始数据的特征。这种低维表示有助于数据可视化、降维和后续的机器学习任务