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

⛄ 运行结果

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

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

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

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

⛄ 参考文献

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