NMF非负矩阵分解

著名的科学杂志《Nature》于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果。该文提出了一种新的矩阵分解思想――非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。该论文的发表迅速引起了各个领域中的科学研究人员的重视:一方面,科学研究中的很多大规模数据的分析方法需要通过矩阵形式进行有效处理,而NMF思想则为人类处理大规模数据提供了一种新的途径;另一方面,NMF分解算法相较于传统的一些算法而言,具有实现上的简便性、分解形式和分解结果上的可解释性,以及占用存储空间少等诸多优点。
  信息时代使得人类面临分析或处理各种大规模数据信息的要求,如卫星传回的大量图像、机器人接受到的实时视频流、数据库中的大规模文本、Web上的海量信息等。处理这类信息时,矩阵是人们最常用的数学表达方式,比如一幅图像就恰好与一个矩阵对应,矩阵中的每个位置存放着图像中一个像素的空间位置和色彩信息。由于实际问题中这样的矩阵很庞大,其中存放的信息分布往往不均匀,因此直接处理这样的矩阵效率低下,这对很多实际问题而言就失去了实用意义。为高效处理这些通过矩阵存放的数据,一个关键的必要步骤便是对矩阵进行分解操作。通过矩阵分解,一方面将描述问题的矩阵的维数进行削减,另一方面也可以对大量的数据进行压缩和概括。

  在科学文献中,讨论利用矩阵分解来解决实际问题的分析方法很多,如PCA(主成分分析)、ICA(独立成分分析)、SVD(奇异值分解)、VQ(矢量量化)等。在所有这些方法中,原始的大矩阵V被近似分解为低秩的V=WH形式。这些方法的共同特点是,因子W和H中的元素可为正或负,即使输入的初始矩阵元素是全正的,传统的秩削减算法也不能保证原始数据的非负性。在数学上,从计算的观点看,分解结果中存在负值是正确的,但负值元素在实际问题中往往是没有意义的。例如图像数据中不可能有负值的像素点;在文档统计中,负值也是无法解释的。因此,探索矩阵的非负分解方法一直是很有意义的研究问题,正是如此,Lee和Seung两位科学家的NMF方法才得到人们的如此关注。
  NMF是一种新的矩阵分解算法,它克服了传统矩阵分解的很多问题,通过寻找上下文有意义的解决方法,提供解释数据的更深看法。NMF通过寻找低秩,非负分解那些都为非负值的矩阵。这在现实的应用中有很多例子,如数字图像中的像素一般为非负数,文本分析中的单词统计也总是非负数,股票价格也总是正数等等。NMF的基本思想可以简单描述为:对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵U和一个非负矩阵V,使得满足,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。由于分解前后的矩阵中仅包含非负的元素,因此,原矩阵A中的一列向量可以解释为对左矩阵U中所有列向量(称为基向量)的加权和,而权重系数为右矩阵V中对应列向量中的元素。这种基于基向量组合的表示形式具有很直观的语义解释,它反映了人类思维中“局部构成整体”的概念。研究指出,非负矩阵分解是个NP问题,可以划为优化问题用迭代方法交替求解U和V。NMF算法提供了基于简单迭代的求解U,V的方法,求解方法具有收敛速度快、左右非负矩阵存储空间小的特点,它能将高维的数据矩阵降维处理,适合处理大规模数据。利用NMF进行文本、图像大规模数据的分析方法,较传统的处理算法速度更快、更便捷。NMF思想的提出迅速得到了很多人的重视,并有很多将这种思想应用到实际中成功解决具体实际问题的例子。

转载于:https://www.cnblogs.com/bfshm/p/8358379.html

MahNMF Manhattan Non-negative Matrix Factorization code % Manhattan Non-negative Matrix Factorization. % ManhNMF: Matlab Code for Efficient Robust Manhattan NMF Solver % Reference % [1] N. Guan, D. Tao, Z. Luo, and J. Shawe-taylor, "MahNMF: Manhattan % Non-negative Matrix Factorization," arXiv:1207.3438v1, 2012. % [2] N. Guan, D. Tao, Z. Luo, and J. Shawe-taylor, "MahNMF: Manhattan % Non-negative Matrix Factorization," Submitted to Journal of Machine Learning Research, 2013. % The model is X \approx W^TH, where X, W, and H are defined as follows: % X (m x n): data matrix including n samples in m-dimensional space; % W (r x m): basis matrix including r bases in m-dimensional space; % H (r x n): coefficients matrix includeing n encodings in r-dimensional space. % Written by Naiyang Guan (ny.guan@gmail.com) % Copyright 2012-2014 by Naiyang Guan and Dacheng Tao % Modified at Jan. 28 2013 % <Inputs> % X : Input data matrix (m x n) % r : Target low-rank % % (Below are optional arguments: can be set by providing name-value pairs) % MAX_ITER : Maximum number of iterations. Default is 1,000. % MIN_ITER : Minimum number of iterations. Default is 10. % MAX_TIME : Maximum amount of time in seconds. Default is 100,000. % W_INIT : (m x r) initial value for W. % H_INIT : (r x n) initial value for H. % LAM_INIT : initial value of smoothness parameter. Default is 1. % MDL_TYPE : Model type (Default is 'PLAIN'), % 'PLAIN' - MahNMF (min{||X-W^T*H||_1,s.t.,W >= 0 and H >= 0}.), % 'BXC' - Box Constrained MahNMF (min{||X-W^T*H||_1,s.t.,1 >= W >= 0 and 1 >= H >= 0}.), % 'MNR' - Manifold Regularized MahNMF % (min{||X-W^T*H||_1+.5*beta*TR(H*Lp*H^T),s.t.,W >= 0 and H >= 0}.), % 'GSP' - Group Sparse MahNMF % (min{||X-W^T*H||_1+.5*beta*\sum_{g\in G}||W^[g]||_{1,p},s.t.,W >= 0 and H >= 0}.), % 'SYM' - Symmetric MahNMF (min{||X-H*H^T||_1,s.t., H >= 0}.). % ALG_TYPE : Algorithm type (Default is 'AGD'), % 'AGD' - Accelerated Gradient Descent, % 'RRI' - Rank-one Residue Iteration. % BETA : Tradeoff parameter over regularization term. Default is 1e-3. % SIM_MTX : Similarity matrix constructed by 'constructW'. % GPP_MTX : Group pattern for boundary of all groups. % TOL_INNR : Stopping tolerance of inner iterations. Default is 1e-2. % TOL_OUTR : Stopping tolerance of outer iterations. Default is 1e-3. % If you want to obtain a more accurate solution, decrease TOL_INNR or TOL_OUTR and increase MAX_ITER at the same time. % VB_OUTR : 0 (default) - No debugging information is collected. % 1 (debugging purpose) - History of computation is returned by 'HIS' variable. % 2 (debugging purpose) - History of computation is additionally printed on screen. % VB_INNR : 0 (default) - No debugging information is collected. % 1 (debugging purpose) - History of computation is returned by 'HIS' variable. % 2 (debugging purpose) - History of computation is additionally printed on screen. % <Outputs> % W : Obtained basis matrix (r x m). % H : Obtained coefficients matrix (r x n). % iter : Number of iterations. % elapse : CPU time in seconds. % HIS : (debugging purpose) History of computation, % niter - total iteration number spent for Nesterov's optimal % gradient method, % cpus - CPU seconds at iteration rounds, % objf - objective function values at iteration rounds, % dlta - stopping criteria of block coordinate descent. % % <Usage Examples> % >>X=rand(1000,500); % >>ManhNMF(X,10); % >>ManhNMF(X,20,'verbose',1); % >>ManhNMF(X,30,'verbose',2,'w_init',rand(r,m)); % >>ManhNMF(X,5,'verbose',2,'tol_outr',1e-5); % Note: other files 'GetStopCriterion.m', 'ApproxFunC.m', and 'wmedianf.mexw32' should be included under the same % directory as this code.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值