SPOQ:平滑、稀疏的ℓp-over-ℓq比率正则化工具箱附matlab代码

简介: SPOQ:平滑、稀疏的ℓp-over-ℓq比率正则化工具箱附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

欠定或不适定的反问题需要额外的信息,以便使用易于处理的优化算法获得合理的解决方案。稀疏性在这方面产生了启发式方法,在信号恢复、图像恢复或机器学习中有许多应用。由于 ℓ0 计数度量几乎难以处理,因此许多统计或学习方法都投资于可计算的代理,例如 ℓ1 范数。然而,后者没有表现出稀疏数据的尺度不变性的理想特性。扩展最初为盲反卷积引入的 SOOT Euclidean/Taxicab ℓ1-over-ℓ2 范数比,我们提出了 SPOQ,这是一系列平滑(近似)尺度不变惩罚函数。它由 ℓp-over-ℓq 准范数/范数比率的 Lipschitz 可微代理组成,其中 p∈]0,2[ 且 q≥2。该替代项嵌入到一种新颖的最大化-最小化信赖域方法中,推广了可变度量前向-后向算法。对于自然稀疏的质谱信号,我们表明 SPOQ 在几个性能指标上明显优于 ℓ0、ℓ1、Cauchy、Welsch、SCAD 和 Cel0 惩罚。还提供了 SPOQ 超参数调整指南,建议简单的数据驱动选择。

⛄ 部分代码

function Display_SPOQ_Penalty_2D;

clear all

close all

clc


x = (-1:0.005:1)';

y = (-1:0.005:1)';

[X,Y] = meshgrid(x,y);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------- l0 count measure  -------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Xl0 = ones(size(X));

Yl0 = ones(size(Y));

Xl0(X == 0 ) = 0;

Yl0(Y == 0 ) = 0;

Zl0 = Xl0 + Yl0;

Zl0 = Zl0/max(Zl0(:));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------- l0.75/l2 smoothed quasi/norm ratio  -------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

p = 0.75;

q = 2;

alpha = 7e-7;

beta = 3e-3;

eta = 0.1;

Zlplq =  lplqnorm(X,alpha,beta,eta,p,q) + lplqnorm(Y,alpha,beta,eta,p,q);

Zlplq = Zlplq./max(Zlplq(:));

ZlplqSPOQ = log(Zlplq);

ZlplqSPOQ = (ZlplqSPOQ-min(ZlplqSPOQ(:)))/(max(ZlplqSPOQ(:))-min(ZlplqSPOQ(:)));


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------- Figure  -------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(1,2,1);

surf(X,Y,Zl0, 'EdgeColor','none')

grid on;axis tight

h1 = title('$\ell_0$ count measure');


subplot(1,2,2);

surf(X,Y,Zlplq, 'EdgeColor','none')

grid on;axis tight

h2 = title('Smoothed $\ell_{3/4}$-over-$\ell_2$ quasinorm ratio');


set([h1,h2],'Interpreter','latex');

colormap jet


end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------- Functions  -------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%>>>> lplq

function [lq] = lqnorm(X,Y,q)

   lq = ((X.^2 + Y.^2 ).^(1/q));

end


function [lp] = lpnorm(X,Y,p)

   lp = (abs(X).^p+abs(Y).^p);

end


function [normxx] = lplqnorm(x,alpha,beta,eta,p,q)

   normx = zeros(size(x));

   for i=1:size(x,1)

       for j=1:size(x,2)

           lp = ((x(i,j)^2 + alpha^2)^(p/2) - alpha^p)^(1/p);

           lpalpha = (lp^p + beta^p)^(1/p);

           lq = (eta^q + abs(x(i,j))^q )^(1/q);

           normx(i,j) = lpalpha/lq;

       end

   end

   normxx=normx;

end


function [y] = Ind3(x,w)

   if x <= w

       y = 1;

   else

       y = 0;

   end

end  

⛄ 运行结果

⛄ 参考文献

[1] Cherni A ,  Chouzenoux E ,  Duval L , et al. SPOQ $\\ell_p$-Over-$\\ell_q$ Regularization for Sparse Signal Recovery applied to Mass Spectrometry[J].  2020.

Afef Cherni, Emilie Chouzenoux, Laurent Duval, Jean-Christophe Pesquet, “SPOQ ℓp-over-ℓq Regularization for Sparse Signal Recovery Applied to Mass Spectrometry.” IEEE Transactions on Signal Processing, vol. 68, Institute of Electrical and Electronics Engineers (IEEE), 2020, pp. 6070–84, doi:10.1109/tsp.2020.3025731.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1月前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
3月前
|
监控 算法 数据安全/隐私保护
基于视觉工具箱和背景差法的行人检测,行走轨迹跟踪,人员行走习惯统计matlab仿真
该算法基于Matlab 2022a,利用视觉工具箱和背景差法实现行人检测与轨迹跟踪,通过构建背景模型(如GMM),对比当前帧与模型差异,识别运动物体并统计行走习惯,包括轨迹、速度及停留时间等特征。演示三维图中幅度越大代表更常走的路线。完整代码含中文注释及操作视频。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
224 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
141 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
算法 数据挖掘 vr&ar
基于ESTAR指数平滑转换自回归模型的CPI数据统计分析matlab仿真
该程序基于ESTAR指数平滑转换自回归模型,对CPI数据进行统计分析与MATLAB仿真,主要利用M-ESTAR模型计算WNL值、P值、Q值及12阶ARCH值。ESTAR模型结合指数平滑与状态转换自回归,适用于处理经济数据中的非线性趋势变化。在MATLAB 2022a版本中运行并通过ADF检验验证模型的平稳性,适用于复杂的高阶自回归模型。
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
110 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
7月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)