什么是半非负矩阵分解?

半非负矩阵分解(Semi-NMF 或 Semi-Nonnegative Matrix Factorization)是一种矩阵分解方法,它是非负矩阵分解(NMF)的扩展。
NMF要求分解出的所有矩阵元素都是非负的,而Semi-NMF只对分解矩阵之一(通常是编码矩阵V施加非负约束,而对另一矩阵(通常是基矩阵U)和原始数据矩阵X没有非负性的限制。这使得Semi-NMF能够处理含有负值的数据集,而不仅仅是非负数据集。

半非负矩阵分解的公式

给定一个数据矩阵 X ∈ R m × n X \in \mathbb{R}^{m \times n} XRm×n,Semi-NMF的目标是找到一个基矩阵 U ∈ R m × k U \in \mathbb{R}^{m \times k} URm×k 和一个非负编码矩阵 V ∈ R + k × n V \in \mathbb{R}^{k \times n}_+ VR+k×n,使得 U V ⊤ UV^\top UV 能够逼近 X X X,其中 k < min ⁡ ( m , n ) k < \min(m,n) k<min(m,n)

标准的Semi-NMF的目标函数可以表示为:

min ⁡ U , V ∣ ∣ X − U V ⊤ ∣ ∣ F 2 \min_{U,V} ||X - UV^\top||_F^2 U,Vmin∣∣XUVF2

其中, ∣ ∣ ⋅ ∣ ∣ F ||\cdot||_F ∣∣F 表示Frobenius范数, V ∈ R + k × n V \in \mathbb{R}^{k \times n}_+ VR+k×n表示 V V V所有元素非负。

半非负矩阵分解的优化

为了优化上述目标函数,可以采用迭代更新规则,其中(U)和(V)交替更新。当(V)固定时,(U)可以通过求解最小二乘问题来更新,反之亦然。更新规则可以类似于NMF中的更新规则,但在Semi-NMF中仅保持(V)的非负性。

示例

假设我们有以下数据矩阵(X):

X = [ 1 2 3 − 1 0 1 2 4 6 ] X = \begin{bmatrix} 1 & 2 & 3 \\ -1 & 0 & 1 \\ 2 & 4 & 6 \end{bmatrix} X= 112204316

我们想要对其进行半非负矩阵分解,假设(k=2)。我们初始化(U)和(V)(这里(V)需要初始化为非负值),然后根据Semi-NMF的更新规则迭代更新(U)和(V),直到收敛或达到最大迭代次数

最终,我们得到(U)和(V),它们的乘积 U V ⊤ UV^\top UV 应该尽可能地接近原始矩阵(X)。

例如,我们可能得到如下(U)和(V):

U = [ 1 0 − 1 1 2 2 ] , V = [ 1 2 3 0 1 1 ] U = \begin{bmatrix} 1 & 0 \\ -1 & 1 \\ 2 & 2 \end{bmatrix}, \quad V = \begin{bmatrix} 1 & 2 & 3 \\ 0 & 1 & 1 \end{bmatrix} U= 112012 ,V=[102131]

注意(V)中的所有元素都是非负的,而(U)可以包含负数。然后 U V ⊤ UV^\top UV 的结果将试图近似原始矩阵(X)。

结论

半非负矩阵分解是一种强大的工具,它扩展了NMF的能力,使之能够处理更广泛的数据类型包括含有负值的数据

通过只对编码矩阵施加非负约束,Semi-NMF在保持NMF的基于部分(parts-based)表示的优点的同时,增加了其应用范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不易撞的网名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值