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电子书和数学建模资料


相关文章
|
17天前
|
机器学习/深度学习 算法 安全
m基于Qlearning强化学习工具箱的网格地图路径规划和避障matlab仿真
MATLAB 2022a中实现了Q-Learning算法的仿真,展示了一种在动态环境中进行路线规划和避障的策略。Q-Learning是强化学习的无模型方法,通过学习动作价值函数Q(s,a)来优化智能体的行为。在路线问题中,状态表示智能体位置,动作包括移动方向。通过正负奖励机制,智能体学会避开障碍物并趋向目标。MATLAB代码创建了Q表,设置了学习率和ε-贪心策略,并训练智能体直至达到特定平均奖励阈值。
44 15
|
1月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
1月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1月前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
1月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
1月前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
1月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
1月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
1月前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)

热门文章

最新文章