摘要:

随着计算机和信息技术的发展,矩阵分解成为处理大规模数据的一种有效手段.例如,在数值计算中,利用矩阵分解可将规模较大的复杂问题转化为小规模的简单子问题来求解;在应用统计领域,通过矩阵分解得到原数据的低秩逼近,从而可发现数据的内在结构特征;同样在机器学习和模式识别的应用中,矩阵的低秩逼近可以大大降低数据特征的维数,节省存储和计算资源.然而传统的矩阵分解虽然功能强大,但在处理大规模非负数据时还存在如下缺点:1)不能保证分解结果的非负性,而负元素在实际问题中无意义:2)对数据的表示是基于整体的而不是基于部分的.因此这些经典的矩阵分解算法在处理大规模非负数据时受到一定的限制. 而基于"乘性"迭代规则的非负矩阵分解(NMF)则可以克服这些缺点.NMF是利用非负约束得到数据近似表示的一种多变量分析方法,即任给定一个非负矩阵V,寻找两个非负低秩矩阵W和H,使得V≈WH,其中W称为基矩阵,日称为系数矩阵(或编码矩阵).由于NMF具有实现简单,分解速度快,分解的结果具有实际物理意义等优点,被认为是对大规模非负数据进行处理的一种有效途径,已经引起了许多科学家和研究人员的广泛关注.此外近年来利用NMF处理一些大规模数据已取得较好的成果,因此研究NMF具有重要的实际意义. 研究表明,NMF是一个约束优化问题,涉及目标函数的选取,迭代规则的推导和收敛性分析等.本文通过构造适当的目标函数,提出了两种NMF算法,并证明了其收敛性.实验表明,这两种算法可行且有效.本文的结构安排如下: 第一部分绪论.综述了NMF算法的发展,研究意义和现状及其在现实生活中的应用,并给出了由Lee和Seung提出的NMF算法理论. 第二部分首先介绍了Bergman距离函数及其适用于NMF算法的一些特殊性质.在此基础上构造了BNMF算法的目标函数,并推导了迭代规则,进而提出了一种基于Bergman距离函数的非负矩阵分解算法(BNMF),并证明了算法的收敛性.最后为了验证算法的有效性,将其应用于ORL人脸图像的分解.实验结果表明,这种算法的效果较好,解的精度较高. 第三部分将NMF看作含加性噪声的线性混合体模型,从统计学的角度构造了适用于非负矩阵分解的目标函数,推导了迭代规则,从而提出了一种基于指数分布的非负矩阵分解算法(ENMF),分析了其收敛性,并将此算法用于UMIST人脸图像分解中.实验结果表明,在适当的条件下ENMF算法可行且有效.

展开

非负矩阵分解算法C语言,非负矩阵分解的两种算法相关推荐

  1. C语言判断素数的两种方法

    C语言判断素数的两种方法 素数又称质数.所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除. 思路1):因此判断一个整数m是否是素数, ...

  2. 【❗划重点!C语言函数参数传递只有两种方式(值传递,地址传递),不支持“引用传递”!❗】

    引子 上篇文章<C语言函数传参の结构体数组篇>提到了C语言的函数参数传递方式,百度了一一一大圈,有说两种的,也有说三种的,简直把我搞晕了,"值传递和地址传递"是毫无疑问 ...

  3. NILM(非侵入式电力负荷监测)学习笔记 —— 使用NILMTK Toolkit,REDD数据集,CO和FHMM两种算法

    (本文最后,提供整个工程下载) 准备工作 本篇的内容都是基于我前两篇的环境,和数据集进行的. NILM(非侵入式电力负荷监测)学习笔记 -- 准备工作(一)配置环境NILMTK Toolkit NIL ...

  4. 打卡第二十四天(问题:计算阶乘,打印九九乘法表,计算最大公约数的两种算法)

    1.计算阶乘 这里给出递归和递推两种计算阶乘的程序. #include<stdio.h> //递归法计算阶乘 long factorial(int n) {if(n==0||n==1)re ...

  5. “斐波那契数列”的两种算法

    "斐波那契数列"的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如: 1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与 ...

  6. ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能

    ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 estimator = PC ...

  7. ML之RFDT:利用RF(RFR)、DT(DTR)两种算法实现对boston(波士顿房价)数据集进行训练并预测

    ML之RF&DT:利用RF(RFR).DT(DTR)两种算法实现对boston(波士顿房价)数据集进行训练并预测 目录 输出结果 实现代码 输出结果 1.两种算法的预测结果 2.回归树的可视化 ...

  8. 在.Net framework下遍历XML文挡树的两种算法

    在阅读ASP.NET_XML深入编程技术 (PDF格式)一书的时候,发现遍历树的两种算法:深度优先和广度优先遍历文挡树,前一种需要使用递归,后者则不需要,本人大学时期数据结构学的不好,每每涉及到树,总 ...

  9. Fletcher-Reevers Conjugate Descent和Steepest Descent两种算法中伪代码的区别

    本文主要用来比较两个算法到底差别在哪里 step Fletcher-Reevers Conjugate Descent Steepest Descent 1st1st1st 选择初始点x(1)选择初始 ...

最新文章

  1. .net 开源组件推荐 之 StackExchange
  2. cygwin和mingw编译软件的疑问
  3. Chrome 提标 您的浏览器限制了第三方Cookie...解决方法
  4. excel怎么设置密码保护?Excel文件添加密码保护教程
  5. CCNA之ccna-路由器的telnet试验
  6. LSA(链路状态通告)类型
  7. Kali 装机之后的各种操作
  8. 数据结构基础:算法的基础知识笔记
  9. 【VB.NET】基于Visual Studio编写VB.NET程序的常见问题的解答
  10. java final date_Java 8新特性之Date/Time(八恶人-4)
  11. 华大基因:新型冠状病毒检测试剂盒日均产能已达8万人份
  12. python--字符串为空
  13. 句法分析(syntactic parsing)在NLP领域的应用是怎样的?
  14. CSS变量(自定义属性)实践指南
  15. ora01017 linux,Oracle linux 7.5安装oracle 12c dg一直提示ORA-01017
  16. ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新
  17. 微信小程序中层叠轮播图(仿微信朋友圈swiper样式)
  18. 贾扬清:云原生是数据智能的必然
  19. Montgomery reduction——多精度模乘法运算算法
  20. 腾讯研究院院长司晓:互联网大脑的人文侧面

热门文章

  1. mybatis-plus批量操作代码分析
  2. Office界面的发展历程(多图)
  3. 水墨-在线 Markdown 编辑器
  4. 在大数据下,微信眼中的你是什么身份?
  5. 部署环境从docker swarm迁移到k8s后kie-server的发布方式变化
  6. java集合-遍历arraylist-for循环-从指定下标开始遍历-for的用法
  7. 如何克服Leetcode做题的困境
  8. 软件体系结构的期末复习
  9. Latex 设置行距
  10. JAVASCRIPT---css定位布局(建议收藏)