半非负矩阵分解(Semi-NMF 或 Semi-Nonnegative Matrix Factorization)是一种矩阵分解方法
,它是非负矩阵分解(NMF)的扩展。
NMF要求分解出的所有矩阵元素都是非负的
,而Semi-NMF只对分解矩阵之一(通常是编码矩阵V
)施加非负约束
,而对另一矩阵(通常是基矩阵U
)和原始数据矩阵X没有非负性的限制
。这使得Semi-NMF能够处理
含有负值的数据集,而不仅仅是非负数据集。
半非负矩阵分解的公式
给定一个数据矩阵 ,Semi-NMF的目标是找到一个基矩阵
和一个非负编码矩阵
,使得 能够逼近 ,其中 。
标准的Semi-NMF的目标函数可以表示为:
其中, 表示Frobenius范数,表示 的所有元素非负。
半非负矩阵分解的优化
为了优化上述目标函数,可以采用迭代更新规则,其中(U)和(V)交替更新
。当(V)固定时,(U)可以通过求解最小二乘问题
来更新,反之亦然。更新规则可以类似于NMF中的更新规则,但在Semi-NMF中仅保持(V)的非负性。
示例
假设我们有以下数据矩阵(X):
我们想要对其进行半非负矩阵分解
,假设(k=2)。我们初始化(U)和(V)(这里(V)需要初始化为非负值
),然后根据Semi-NMF的更新规则迭代更新(U)和(V),直到收敛或达到最大迭代次数
。
最终,我们得到(U)和(V),它们的乘积
例如,我们可能得到如下(U)和(V):
注意(V)中的所有元素都是非负的
,而(U)可以包含负数
。然后
结论
半非负矩阵分解是一种强大的工具,它扩展了NMF的能力,使之能够处理更广泛的数据类型
,包括含有负值的数据
。
通过只对编码矩阵施加非负约束,Semi-NMF在保持NMF的基于部分(parts-based)表示的优点的同时,增加了其应用范围。