论文部分内容阅读
非负矩阵分解是一种新兴的能够保持数据非负性的非监督机器学习技术。传统的非负矩阵分解算法实现非负约束主要有两种方法。第一种方法只在迭代过程中使用矩阵乘法、矩阵加法、矩阵点乘和矩阵点除这四种能够保持矩阵非负性的矩阵运算,从而整个迭代算法也是可保持非负性的。这类算法普遍存在收敛速度慢或重构误差大的问题。第二种算法允许数值计算过程中自由使用各种矩阵运算。对于出现的负元素,这类算法需要强制添加一步非负化的操作,比如将出现的负元素投影为0。投影操作会使收敛性的理论分析变得复杂,甚至导致算法的失去稳定性。针对传统非负矩阵分解算法在数值计算的每次迭代中强制非负约束而带来的种种问题,本文提出了两种全新的NMF算法:松弛约束非负矩阵分解算法和弱约束非负矩阵分解算法。松弛约束非负矩阵分解算法是一种在数值计算之后再实现非负约束的算法。该算法把非负矩阵分解问题拆分松弛问题和约束问题。在松弛阶段,不考虑非负约束,先在实数范围内求解出一组矩阵分解;在约束阶段,再通过适当的方法将这组实数分解转化为非负分解。通过这样两步来完成非负矩阵分解。对于松弛阶段,本文提出了自适应松弛约束非负矩阵分解算法,并证明了算法的收敛性。对于约束阶段,本文在给出了两个实数矩阵可非负化的判定条件;对秩为2的情况,设计了非负化算法;对秩大于2的情况,给出了近似非负化算法。弱约束非负矩阵分解算法是一种对数值求解的单次迭代没有强制的非负性要求、而是在整个求解过程中逐渐实现非负性约束的一种新型非负矩阵分解算法。通过引入非负约束强度的概念,使得非负约束得到精确量化。而且只需要添加一步弱约束步骤,就可将实数矩阵分解算法转化为非负矩阵分解算法,大大简化了非负矩阵分解的算法设计。在此基础上,本文还提出了一种变非负约束强度的弱约束非负矩阵分解算法。弱约束非负矩阵分解算法及其改进算法是针对不同秩的通用算法,而且重构误差显著小于传统算法,从而具有重大的实际应用价值。