【分布鲁棒和多目标非负矩阵分解】基于DR-NMF的对NMF问题噪声模型的识别鲁棒性研究(Matlab代码实现)

简介: 【分布鲁棒和多目标非负矩阵分解】基于DR-NMF的对NMF问题噪声模型的识别鲁棒性研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


📚2 运行结果


🎉3 参考文献


🌈4 Matlab代码、数据、文章讲解


💥1 概述

文献来源:


eedbe4c1dea1420e80c4832da6d8968b.png


摘要:非负矩阵分解 (NMF) 是一种线性降维 分析非负数据的技术。NMF 的一个关键方面是选择 依赖于噪声模型(或 噪声)假设数据。在许多应用中,噪声模型是未知的 而且难以估计。在本文中,我们定义了一个多目标NMF (MO-NMF) 问题,其中多个目标在同一 NMF 中组合 型。我们建议使用拉格朗日对偶性来明智地优化一组 在加权和法框架内使用的加权,即 我们最小化单个目标函数,它是 all 的加权和 目标函数。我们设计了一种基于乘法的简单算法 更新以最小化此加权总和。我们展示了如何使用它来查找 分布稳健的 NMF (DR-NMF) 解决方案,即 最小化所有目标中的最大误差,使用双重方法解决 通过受弗兰克-沃尔夫算法启发的启发式方法。我们说明 这种方法对合成、文档和音频数据集的有效性。这 结果表明,DR-NMF对噪声模型的识别具有鲁棒性 NMF问题。


原文摘要:


Abstract: Nonnegative matrix factorization (NMF) is a linear dimensionality reduction technique for analyzing nonnegative data. A key aspect of NMF is the choice of the objective function that depends on the noise model (or statistics of the noise) assumed on the data. In many applications, the noise model is unknown and difficult to estimate. In this paper, we define a multi-objective NMF (MO-NMF) problem, where several objectives are combined within the same NMF model. We propose to use Lagrange duality to judiciously optimize for a set of weights to be used within the framework of the weighted-sum approach, that is, we minimize a single objective function which is a weighted sum of the all objective functions. We design a simple algorithm based on multiplicative updates to minimize this weighted sum. We show how this can be used to find distributionally robust NMF (DR-NMF) solutions, that is, solutions that minimize the largest error among all objectives, using a dual approach solved via a heuristic inspired from the Frank-Wolfe algorithm. We illustrate the effectiveness of this approach on synthetic, document and audio data sets. The results show that DR-NMF is robust to our incognizance of the noise model of the NMF problem.


783d4c5bebf84592972330e08e9fb63f.png

5425ffde79374913842caaf3216b11de.png

13042c2619e047de952842de45a298e4.png


📚2 运行结果


% DR-NMF 
options.scalings = [1/solall{1}(1,end); 1/solall{end}(2,end)]; 
x = x*options.scalings(1); 
y = y*options.scalings(2); 
options.distribrobust = 1; 
options.lambda = [0.5;0.5]; 
fprintf('Computing the solution of DR-NMF. \n'); 
[Wr,Hr,er,lam] = multiNMFbeta(X,r,options);
% Plot Pareto Front 
set(0, 'DefaultAxesFontSize', 12);
set(0, 'DefaultLineLineWidth', 2);
figure; 
plot(x,y,'o--'); hold on; 
plot(er(1,end),er(2,end),'kx','MarkerSize',12);
maxxy = min(max(x), max(y)); 
plot([1 maxxy],[1 maxxy],'k--'); 
xlabel('First objective'); 
ylabel('Second objective'); 
legend('Pareto Front', 'DR-NMF', 'x = y'); 
title(sprintf('Pareto frontier for a randomly generated matrix: \n IS-NMF vs. KL-NMF, and DR-NMF'));

068800fb6b5a4d84bf9a1d3250cf7eef.png11434239577b49e0bbe1e0987d9d9088.png951f6fccc63d42098a1b53d64dfa8dbe.png

load('piano_Mary.mat'); 
[m,n] = size(V); 
r = 4; 
% Initialization & parameters
options.W = rand(m,r); 
options.H = rand(r,n); 
options.beta = [0;1]; 
options.distribrobust = 0; 
options.maxiter = 100; 
% IS-NMF
options.lambda = [1; 0]; 
fprintf('Computing the solution of NMF with Itakuro-Saito (IS-NMF) divergence: \n'); 
[Wis,His,eis] = multiNMFbeta(V,r,options); 
% KL-NMF
options.lambda = [0; 1]; 
fprintf('Computing the solution of with Kullback-Leibler (KL-NMF) divergence: \n'); 
[Wkl,Hkl,ekl] = multiNMFbeta(V,r,options); 
% DR-NMF 
% This is crucial: you need to specify the scaling of the objective
% functions; cf. the paper. 
options.scalings = [1/eis(1,end); 1/ekl(2,end)]; 
options.distribrobust = 1; 
fprintf('Computing the solution of distributionally robust NMF (DR-NMF): \n'); 
[Wdr,Hdr,edr,lam] = multiNMFbeta(V,r,options);
% Display errors
display('Values of scaled objective functions:'); 
fprintf('IS error for IS-NMF = %2.2f, KL error for IS-NMF = %2.2f\n', 1,eis(2,end)/ekl(2,end)); 
fprintf('IS error for KL-NMF = %2.2f, KL error for KL-NMF = %2.2f\n', ekl(1,end)/eis(1,end),1); 
fprintf('IS error for DR-NMF = %2.2f, KL error for DR-NMF = %2.2f\n', edr(1,end),edr(2,end)); 
fprintf('******************************************************************************\n')
% Plot errors 
% Display
set(0, 'DefaultAxesFontSize', 9);
set(0, 'DefaultLineLineWidth', 2);
figure; 
plot(  (eis.*repmat(options.scalings,1,size(eis,2)))' ); hold on; 
plot(  (ekl.*repmat(options.scalings,1,size(ekl,2)))','-.'); 
plot(  edr' ,'o--'); 
legend('IS error for IS-NMF', 'KL error for IS-NMF', ... 
        'IS error for KL-NMF', 'KL error for KL-NMF', ... 
        'IS error for DR-NMF', 'KL error for DR-NMF');
axis([0 100 0.95 10]);
xlabel('Iterations'); 
title(sprintf('Comparison of IS-NMF, KL-NMF and DR-NMF \n  for rank-4 NMF of the audio dataset \n `Mary had a little lamb''')); 
saveas(gcf, '../results/fig_Mary.png')

768a5f974244463f8ac3e05efe743c48.png74633f134c5641d7a00b36fbcd44305f.png


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。



🌈4 Matlab代码、数据、文章讲解

相关文章
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
223 3
|
3月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
221 5
|
3月前
|
机器学习/深度学习 算法 调度
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
168 3
|
3月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
176 0
|
2月前
|
机器学习/深度学习 供应链 算法
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
119 0
|
2月前
|
存储 人工智能 移动开发
利用 Hough 变换处理量测得到的含杂波的二维坐标,解决多目标航迹起始问题(Matlab代码实现)
利用 Hough 变换处理量测得到的含杂波的二维坐标,解决多目标航迹起始问题(Matlab代码实现)
|
2月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
161 0
|
3月前
|
存储 算法 安全
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
|
3月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
232 1
|
3月前
|
机器学习/深度学习 运维 算法
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
242 4

热门文章

最新文章