【分布鲁棒和多目标非负矩阵分解】基于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代码、数据、文章讲解

相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
2月前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
207 13
|
2月前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
3月前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
4月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
4月前
|
算法
基于Kronig-Penney能带模型的MATLAB求解与仿真
基于Kronig-Penney能带模型的MATLAB求解与仿真,利用MATLAB的多种数学工具简化了模型分析计算过程。该模型通过一维周期势垒描述晶体中电子运动特性,揭示了能带结构的基本特征,对于半导体物理研究具有重要价值。示例代码展示了如何使用MATLAB进行模型求解和图形绘制。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
6月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
162 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
138 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码