NMF-matlab

NMF-matlabmatlab练习程序(非负矩阵分解)  这个算法是Lee和Seung在1999年发表在nature杂志上的。具体论文看这里:http://www.seas.upenn.edu/~ddlee/Papers/nmf.pdf。  看不懂英文没关系,可以看这个中文的介绍:http://wenku.baidu.com/view/94c8af0bf78a6529647d5331.html。

大家好,又见面了,我是你们的朋友全栈君。

matlab练习程序(非负矩阵分解)

  这个算法是Lee和Seung在1999年发表在nature杂志上的。具体论文看这里:http://www.seas.upenn.edu/~ddlee/Papers/nmf.pdf

  看不懂英文没关系,可以看这个中文的介绍:http://wenku.baidu.com/view/94c8af0bf78a6529647d5331.html

  原理上面两篇文章已经很清楚了,我在按自己的理解介绍一下吧。

  通常矩阵分解如svd或其他什么的分解都会把矩阵分解为有正有负的矩阵,而他的这种分解方法就把矩阵完全分解成只有正数的矩阵,因为现实世界中如图像,负数是没什么意义的,所以这种只分解为正数矩阵的分解方法就很有意义了,要不也不会发在nature这样牛B的杂志上。

  这里是分解的公式:

NMF-matlab

  这里r是分解矩阵的秩,V是原矩阵的一个近似,W与H就是分解而成的两个矩阵。

  下面是W和H的求法,是一个迭代算法,初始的W与H是随机的就行了:

  NMF-matlab

  关于代码,我借鉴了这个博客的:http://fxy1211.blog.163.com/blog/static/68255322007826111015905/,真是太感谢这位博主了。

  下面是代码:

复制代码
clear all; close all; clc; V=double(imread('lena.jpg')); imshow(mat2gray(V)); [i u]=size(V); %计算V的规格 r=100; %设置分解矩阵的秩 W=rand(i,r); %初始化WH,为非负数 H=rand(r,u); maviter=100; %最大迭代次数 for iter=1:maviter W=W.*((V./(W*H))*H'); %注意这里的三个公式和文中的是对应的
    W=W./(ones(i,1)*sum(W)); H=H.*(W'*(V./(W*H)));
end img_V=W*H; figure; imshow(mat2gray(img_V));
复制代码

  下面是原图和重构后的效果,如果秩和迭代次数越大,那么重构后的图越接近原图:

NMF-matlab原图

NMF-matlab重构图

因为这个是看自己相关方向论文偶然在一篇论文的引用中看到了这个算法,所以就稍微了解了一下,肯定有不妥的地方,就这样吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148571.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cms漏洞扫描_大数据因果溯源分析

    cms漏洞扫描_大数据因果溯源分析CMS系统漏洞分析溯源(第5题)解题思路:登陆页面>>>扫描后台地址>>>登陆地址>>>查看是否可以绕过>>>不可以的话>>>百度管理系统源码>>>分析源码>>>查看登陆页面>>>找到相关php文件>>>admin_name>>>浏览器添加cookie>>>直接访问带有漏洞php文件的页面>>&

    2022年9月27日
    5
  • MVC-Chart_WebGrid 显示漂亮chart「建议收藏」

    MVC-Chart_WebGrid 显示漂亮chart「建议收藏」原文:http://www.tuicool.com/articles/maQrYnDemo_Chart_WebGridTwo Part:(1) design a table for test, create a view or procedure and input some records for test.(2) use the view or procedur

    2022年9月1日
    5
  • pycharm下载插件_小新系列哪个性价比高

    pycharm下载插件_小新系列哪个性价比高Pcharm好用插件推荐!!!

    2022年8月26日
    6
  • 在Eclipse添加Android兼容包( v4、v7 appcompat )

    在Eclipse添加Android兼容包( v4、v7 appcompat )

    2021年8月28日
    58
  • 电子元器件品牌排行榜前十名

    电子元器件品牌排行榜前十名ameya360电子元器件采购网汇总了一些常见电子元器件常用品牌,大家在元器件选型时可以参考。电阻:Yageo国巨、Uniohm厚声、Walsin华新科、Fenghua风华、Ralec旺诠、KOA兴亚、Panasonic松下、AVX、Rohm罗姆、Samsung三星、TDK、TMTEC泰铭、Kyocera京瓷、PHYCOM飞元。电容:Yageo国巨、Samsung三星、Eyang宇阳、Murata村田、Taiyo太诱、Fenghua风华、Kyocera京瓷、HEC禾伸堂、Kemet基美、IS

    2022年6月30日
    44
  • 5g的控制信道编码方式_5gnr上行支持的信道编码

    5g的控制信道编码方式_5gnr上行支持的信道编码第1章物理层架构1.1物理层内部功能协议栈1.2物理层编码与处理过程(1)信道编码(2)调制解调(3)层映射(4)扩频预编码(仅仅用于上行,可选)(5)多天线技术的预编码(6)资源映射(7)OFDM变换本文主要探讨NR的信道编码技术第2章NR的物理层信道编码技术概述物理层信道编码不是单一的编码,而是有一组编码组成。以发送为例,阐述物理层信道编码的过程以及其中涉及到的主要,接收过程与之相反。(1)TrBloc……

    2025年7月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号