当前位置:网站首页>NMF-matlab
NMF-matlab
2022-07-02 19:42:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm your friend, Quan Jun .
matlab Practice the program ( Nonnegative matrix decomposition )
The algorithm is Lee and Seung stay 1999 Years published in nature In the magazine . See the specific paper here :http://www.seas.upenn.edu/~ddlee/Papers/nmf.pdf.
It doesn't matter if you don't understand English , You can see this introduction in Chinese :http://wenku.baidu.com/view/94c8af0bf78a6529647d5331.html.
The principle of the above two articles has been very clear , I'm introducing it according to my own understanding .
Usually, matrix decomposition is as follows svd Or any other decomposition will decompose the matrix into positive and negative matrices , And his decomposition method completely decomposes the matrix into a matrix with only positive numbers , Because in the real world, such as images , Negative numbers are meaningless , So this decomposition method that only decomposes into positive matrix is very meaningful , Otherwise, it will not be sent in nature Such a cow B In my magazine .
Here is the formula of decomposition :
here r Is the rank of the decomposition matrix ,V Is an approximation of the original matrix ,W And H Is the decomposition of two matrices .
Here is W and H The way of seeking , It's an iterative algorithm , Initial W And H It's random :
About the code , I learned from this blog :http://fxy1211.blog.163.com/blog/static/68255322007826111015905/, Thank you so much for this blogger .
Here is the code :
clear all; close all; clc; V=double(imread('lena.jpg')); imshow(mat2gray(V)); [i u]=size(V); % Calculation V Specifications r=100; % Set the rank of the decomposition matrix W=rand(i,r); % initialization WH, It's a nonnegative number H=rand(r,u); maviter=100; % Maximum number of iterations for iter=1:maviter W=W.*((V./(W*H))*H'); % Note that the three formulas here correspond to those in the text
W=W./(ones(i,1)*sum(W)); H=H.*(W'*(V./(W*H)));
end img_V=W*H; figure; imshow(mat2gray(img_V));The following is the original image and the reconstructed effect , If the number of rank sum iterations is greater , Then the reconstructed graph is closer to the original graph :
Original picture
Reconstruction graph
Because this is based on my related direction. I happened to see this algorithm in the quotation of a paper , So I got a little understanding , There must be something wrong , be it so .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/148571.html Link to the original text :https://javaforall.cn
边栏推荐
- AcWing 342. Road and route problem solving (shortest path, topological sorting)
- SQLite 3.39.0 release supports right external connection and all external connection
- Set up sentinel mode. Reids and redis leave the sentinel cluster from the node
- Getting started with typescript
- Solution: vs2017 cannot open the source file stdio h main. H header document [easy to understand]
- JS how to get integer
- R语言使用econocharts包创建微观经济或宏观经济图、indifference函数可视化无差异曲线(indifference curve)
- 450-深信服面经1
- 编写完10万行代码,我发了篇长文吐槽Rust
- KT148A语音芯片使用说明、硬件、以及协议、以及常见问题,和参考代码
猜你喜欢

定了,就是它!

SQLite 3.39.0 发布,支持右外连接和全外连接

rxjs Observable 自定义 Operator 的开发技巧

Watchful pioneer world outlook Architecture - (how does a good game come from)

ShardingSphere-JDBC5.1.2版本关于SELECT LAST_INSERT_ID()本人发现还是存在路由问题

程序猿入门攻略(十二)——数据的存储

蓝牙芯片ble是什么,以及该如何选型,后续技术发展的路径是什么

RPD出品:Superpower Squad 保姆级攻略

高并发下如何避免产生重复数据?

Refactoring: improving the design of existing code (Part 2)
随机推荐
Build a master-slave mode cluster redis
Implementation of 453 ATOI function
What is the MySQL backup suffix_ MySQL backup restore
AcWing 342. Road and route problem solving (shortest path, topological sorting)
Function high order curry realization
How to avoid duplicate data in gaobingfa?
《MongoDB入门教程》第03篇 MongoDB基本概念
How to set priorities in C language? Elaborate on C language priorities
Shardingsphere jdbc5.1.2 about select last_ INSERT_ ID () I found that there was still a routing problem
Notes on hardware design of kt148a voice chip IC
Which video recording software is better for the computer
Refactoring: improving the design of existing code (Part 2)
Mobile robot path planning: artificial potential field method [easy to understand]
MySQL
AcWing 343. Sorting problem solution (Floyd property realizes transitive closure)
《架构整洁之道》读书笔记(下)
rxjs Observable 自定义 Operator 的开发技巧
451-memcpy、memmove、memset的实现
Gmapping code analysis [easy to understand]
Codeworks round 802 (Div. 2) pure supplementary questions