✅作者简介:热爱科研的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.