摘要:非负矩阵分解对于多元数据是有用的降维方法。分析两种不同的多元算法对于NMF。他们只是在在更新规则中乘法因子的有轻微的不同。一个算法显示去最小传统最小二乘损失,另一种是最小泛化的KL散度。这两算法的收敛可以使用一个辅助函数来证明收敛,类似于证明EM算法收敛时的辅助函数。算法也可被认为重新调节的梯度下降,其中重新调节因子选择最优来保证收敛。
1 简介:
非监督学习算法例如主成分分析和向量量子化可以被认为是分解数据矩阵,服从不同的约束。取决于约束的使用,结果向量可显示不同代表性的属性。主成分分析只加了一个弱的正交约束,得到一个分布式表达,使用删除(cancellations???)来生成多种变形。另一方面,向量量子化使用一个硬winner-take-all约束,导致将数据集手动聚类到一个独有原型。我们显示非负性是一个很好的约束对于矩阵分解,其可以学习数据的一部分表达。学习的非负基向量被用到分散的,也稀疏的结合中来生成重构中的表达。
2 非负矩阵分解
给定一个非负矩阵V, 找到两个非负矩阵因子W 和H,满足
V≈WH
(1)
给定多元n维数据向量集合,组成成 n×m 的矩阵V 其中m表示是样本个数。这个矩阵近似的被分解成 n×r 矩阵W 和 r×m 矩阵H。经常的r被选定比n或m都要小,以至于W和H比原始V要小。
等式一近似的重要性:它可以由列向量重新写成 v≈Wh 其中v和h是V和H中对应的列。换句话说每个向量v使用W的列向量的线性结合来近似,通过h的成分来加权。因此W可以被视为包含对于在V中的数据的最优线性近似的基向量。当相关很少的基向量被用来表达很多数据时,好的近似只能当基向量发现数据中的隐藏结构来实现。
现在我们讨论两种算法对于NMF 基于迭代更新W和H。因为这些算法很简单就能实现并且能保证他们的收敛属性,我们发现在实践应用中也很有用。其他算法可能有用但是很难实现并且可能没有泛化到不同的损失函数。
在我们算法中每轮迭代,W或者H的新值通过乘以当前值和一些取决于等式的近似的质量的因子。我们证明近似的质量单调提升使用这些乘法更新规则的应用。在实践中,这意味着更新规则的重复迭代保证了收敛到一个局部最优的矩阵分解。
3 cost函数
为了去找一个近似的分解 V≈WH ,我们首先需要定义损失函数,来量化近似的质量。一个损失函数使用一些两非负矩阵A和B的距离度量函数来构建。一个有用的度量是基于欧氏距离的平方差
||A−B||2=∑ij(Aij−Bij)2
(2)
下界为0,当A = B时。
另一种有用的度量
D(A||B)=∑ij(AijlogAijBij−Aij+Bij)
(3)
像欧式距离,它的下届为0,当A=B时。但它不能称为距离,因为它不是对称的。所以我们称为AB之间的散度。当 ∑ijAij=∑ijBij=1 时降到KL散度,或者相关熵,以便于A和B可被认为标准化的概率分布。
我们考虑两个可交替的NMF函数作为优化问题:问题1:最小 ||V−WH||2 关于W和H,服从于约束 W,H≥0 .
问题2:最小D(V||WH)关于W和H,服从于约束 W,H≥0 .
尽管函数 ||V−WH||2 和 D(V||WH) 只对W或者H凸问题,对于两个变量不是同时凸的。因此这不现实去期待算法去解问题1和问题2关于找一个全局解。然而,有很多数值优化的技术能应用到找局部最小值。
梯度下降可能是最简单的技术去实现,但收敛很慢。其他方法例如共轭梯度能更快收敛,至少在局部最小的附近,但更复杂去实现。梯度的收敛也有一些缺点,对于step size选取敏感,对大型应用不方便。
4 乘法更新规则
我们发现下列乘法更新规则是对于速度和实现难易程度的妥协来解决问题1和2。
理论1 欧式距离 |V−WH| 在下列更新规则中是下降的:
Hαμ←Hαμ(WTV)αμ(WTWH)αμ
Wiα←Wiα(VHT)iα(WHHT)iα
当且仅当W和H是在静态点的距离时,欧式距离在这些更新中不变。
理论2:散度D(V||WH)在下列更新规则中下降:
Hαμ←Hαμ∑iWiαViα/(WH)iμ∑kWkα
Wiα←∑μHαμViμ/(WH)iμ∑vHαv
当且仅当W和H是在静态点的散度时,散度对于更新保持不变。
证明这个等式:目标函数 J=||V−WH||2
分别对W和H求导:
∂J∂W=−(V−WH)HT=−VHT+WHHT
∂J∂H=−WT(V−WH)=−WTV+WTWH
使用梯度更新:
Wiu=Wiu−ηiu∂J∂Wiu
取 ηiu=Wiu(WHHT)iu , 则
Wiu=Wiu+Wiu(WHHT)iu(VHT−WHHT)=Wiu(VHT)iu(WHHT)iu
同理,取 ηαμ=Hαμ(WTWH)αμ