非负因子分解工具箱。
nn-fac的Python项目详细描述
非负因子分解技术
用于计算一些非负因式分解的Python代码,使用层次交替最小二乘算法(HALS)的加速版本,解决非负最小二乘问题(NNLS)[1]。在
这项工作是在我的研究硕士(SIF,master.irisa.fr)在BERTIN Nancy和COHEN Jeremy的指导下,在IRISA/Inria Rennes巴拿马团队实习。在
在我的博士学位期间,我在同一个团队中得到了扩展,由BERTIN Nancy、COHEN Jeremy和BIMBOT Frederic指导。在
目录
NNLS公司
此工具箱包含NNLS解析算法,如[1]中所述开发。这段代码是基于cohenjeremy python代码改编的GILLIS Nicolas MatLab代码。在
此工具箱还包含4种因子分解方法:
NMF公司
非负矩阵分解[2]—非负矩阵X在两个非负矩阵W和H中的因式分解,其中WH接近X
通过NNLS最小化矩阵X和WH之间的Frobenius范数来解决这一问题。在
非副fac
非负张量因式分解,也称为非负旁分解。并行分解是将一个张量T分解成秩1张量之和的因子[3]。通过沿着这个和的每个模式连接向量,我们可以得到与张量的模式数一样多的因子[4]。此算法返回这些因子。在
这种因式分解是作为ALS算法计算的,如[5]所述,用NNLS求解,并使用工具箱张量地[6]。它返回非负张量T的非负因子
非负副作用2
非负张量因式分解允许因子的可变性[7]。更准确地说,这个实现的版本基于一种灵活的耦合方法[8],其中耦合是通过惩罚项来强制执行的。在
非负Tucker分解
非负Tucker分解,它包括因子中的张量T(每个模式一个)和一个核张量(通常比T小),它将所有因子线性联系起来[5]。这个算法返回这些因子和这个核心张量。在
这种因式分解是作为ALS算法计算的,如[5]所述,用NNLS求解,并使用工具箱张量地[6]。它还对核心使用渐变更新规则。在
参考文献
[1]N.Gillis和F.Glineur,“非负矩阵分解的加速乘法更新和分层ALS算法”,神经计算24(4):1085-11052012。在
[2]D.D.Lee和H.S.Seung,“通过非负矩阵分解学习对象的部分”,《自然》,第401卷,第6755号,第7881999页。在
[3]R.A Harshman等人,《PARAFAC程序的基础:解释性多模态因子分析的模型和条件》,1970年。在
[4]J.E.Cohen和N.Gillis,“基于字典的张量正则多元分解”,IEEE信号处理汇刊,66(7),1876-1889,2017年。在
[5]T.G.Kolda和B.W.Bader,“张量分解和应用”,暹罗评论,51(3),455-5002009。在
[6]J.Kossaifi,Y.Panagakis,A.Anandkumar和M.Pantic,“TensorLy:Python中的张量学习”,机器学习研究杂志(JMLR),第20卷,第26期,2019年。在
[7]R.A Harshman,“PARAFAC2:数学和技术注释”,加州大学洛杉矶分校语音工作论文22.30441972年。在
[8]J.E Cohen和R.Bro,“非负并行:一种灵活的耦合方法”,潜在变量分析和信号分离国际会议。斯普林格。2018在
- 项目
标签: