斜风细雨作小寒,淡烟疏柳媚晴滩。入淮清洛渐漫漫。
雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
---- 苏轼

更多精彩内容请关注微信公众号 “优化与算法

迭代硬阈值(Iterative Hard Thresholding)算法是求解基于 ℓ0{\ell _0}ℓ0​ 范数非凸优化问题的重要方法之一,在稀疏估计和压缩感知重构等领域应用较多。IHT最初由Blumensath, Thomas等人提出,后来许多学者在IHT算法的基础上不断发展出一些改进算法,如正规化迭代硬阈值算法(Normalized Iterative Hard Thresholding, NIHT)、共轭梯度硬阈值迭代算法(Conjugate Gradient Iterative Hard Thresholding, CGIHT)、基于回溯的硬阈值迭代算法(Backtracking based Iterative Hard Thresholding)等,以及后来与贪婪算法结合产生的一些算法,如硬阈值追踪算法(Hard Thresholding Pursuit, HTP)就是结合子空间追踪算法(SP)和IHT算法的优势得到的。
笔者在此将上述这些算法原理做简要分析,并附上算法和测试代码供参考。

1. 迭代硬阈值算法

1.1 IHT算法描述

以稀疏近似问题为例,介绍IHT算法。对于以下优化问题:
min⁡x∥y−Ax∥22s.t.∥x∥0≤S(1)\mathop {\min }\limits_{\bf{x}} \left\| {{\bf{y}} - {\bf{Ax}}} \right\|_2^2{\rm{ }} ~~~~~~s.t.~~~~~{\rm{ }}{\left\| {\bf{x}} \right\|_0} \le S~~~~~~~~~~~~(1)xmin​∥y−Ax∥22​      s.t.     ∥x∥0​≤S            (1)

其中 y∈RM{\bf{y}} \in {{\bf{R}}^M}y∈RM, A∈RM×N{\bf{A}} \in {{\bf{R}}^{M \times N}}A∈RM×N,且 M<NM < NM<N, ∥x∥0{\left\| {\bf{x}} \right\|_0}∥x∥0​ 为 x\bf{x}x 的 ℓ0{\ell _0}ℓ0​ 范数,表示 x\bf{x}x 中非零元素的个数。由于 M<NM < NM<N, 显然(1)式是一个欠定问题,加上 ℓ0{\ell _0}ℓ0​ 约束,式(1)同时是个组合优化问题,无法在多项式时间复杂度内求解。

为了求解优化问题(1),Blumensath 等人提出了著名的 IHT 算法,其迭代格式为:
xk+1=Hk(xk+AT(y−Axk))(2){{\bf{x}}_{k + 1}} = {H_k}({{\bf{x}}_k} + {{\bf{A}}^{\mathop{\rm T}\nolimits} }({\bf{y}} - {\bf{A}}{{\bf{x}}_k}))~~~~~~~~~~~~~~~~(2)xk+1​=Hk​(xk​+AT(y−Axk​))                (2)

其中 HS(⋅){H_S}( \cdot )HS​(⋅) 表示取 ⋅\cdot⋅ 中最大的 SSS 个非零元素。

式(2)看起来并不复杂,直观上来看就是对(1)式用常数步长的梯度下降法来求解,其中在每次迭代中对更新的结果进行一次硬阈值操作。为什么硬阈值操作+梯度下降可以求解(1)式的 ℓ0{\ell _0}ℓ0​ 范数优化问题呢?文献[1]中作者利用Majorization-Minimization优化框架推导出了(2)式所示迭代公式,并证明了IHT算法在 ∥A∥2<1{\left\| {\bf{A}} \right\|_2} < 1∥A∥2​<1 时,算法能收敛到局部最小值。以下对IHT算法的原理做简要分析。

1.2 Majorization-Minimization优化框架

首先简单介绍一下MM优化框架,实际上MM优化框架是处理非凸优化问题中常见的一种方法,其形式简单,思想优雅。后期关于MM思想再以专题形式进行详细的总结和讨论。

(1) 式的目标函数为
F(x)=∥y−Ax∥22(3){F}({\bf{x}}) = \left\| {{\bf{y}} - {\bf{Ax}}} \right\|_2^2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~(3)F(x)=∥y−Ax∥22​                           (3)

(1) 无法得到一个闭式解,只能用迭代方法来求得一个近似解。

MM优化思想:当目标函数 F(x)F({\bf{x}})F(x) 比较难优化时,通常可以选择更容易优化的替代目标函数 G(x)G({\bf{x}})G(x),当 G(x)G({\bf{x}})G(x) 满足一定的条件时,G(x)G({\bf{x}})G(x) 的最优解能够无限逼近原目标函数 F(x)F({\bf{x}})F(x) 的最优解。这样的 G(x)G({\bf{x}})G(x) 需要满足3个条件:

  1. 容易优化
  2. 对所有 x\bf{x}x,G(x)≥F(xk)G({\bf{x}}) \ge F({\bf{x_{k}}})G(x)≥F(xk​)
  3. Gk(xk)=F(xk){G_k}({{\bf{x}}_k}) = F({{\bf{x}}_k})Gk​(xk​)=F(xk​)

在满足 ∥A∥2<1{\left\| {\bf{A}} \right\|_2} < 1∥A∥2​<1 条件时,目标函数 (4) 可用如下替代目标函数来代替:
G(x,z)=∥y−Ax∥22−∥Ax−Az∥22+∥x−z∥22(4)G({\bf{x}},{\bf{z}}) = \left\| {{\bf{y}} - {\bf{Ax}}} \right\|_2^2 - \left\| {{\bf{Ax}} - {\bf{Az}}} \right\|_2^2 + \left\| {{\bf{x}} - {\bf{z}}} \right\|_2^2~~~~~~~(4)G(x,z)=∥y−Ax∥22​−∥Ax−Az∥22​+∥x−z∥22​       (4)

从 (4) 式可以看出,替代目标函数 G(x,z)G({\bf{x}},{\bf{z}})G(x,z) 是满足MM优化框架中所列条件的。

对式 (4) 展开并化简:

上式的最后三项是与 x\bf{x}x 无关的项,对优化结果没有影响,那么使 (5) 式最小化等价于下式最小化:
G′(x,z)=∑i[xi2−2xi(zi+AiTy−AiTAz)](5)G'({\bf{x}},{\bf{z}}) = \sum\limits_i {\left[ {{\bf{x}}_i^2 - 2{{\bf{x}}_i}\left( {{{\bf{z}}_i} + {\bf{A}}_i^{\mathop{\rm T}\nolimits} {\bf{y}} - {\bf{A}}_i^{\mathop{\rm T}\nolimits} {\bf{Az}}} \right)} \right]} ~~~~~~~~~~~~~~~~~~~~(5)G′(x,z)=i∑​[xi2​−2xi​(zi​+AiT​y−AiT​Az)]                    (5)

对 (5) 式进行配方,可以得到:

令 x∗=zi+AiT(y−Az){{\bf{x}}^*} = {{\bf{z}}_i} + {\bf{A}}_i^{\mathop{\rm T}\nolimits} \left( {{\bf{y}} - {\bf{Az}}} \right)x∗=zi​+AiT​(y−Az),得:
∑i[xi2−(zi+AiTy−AiTAz)]=∑i{[xi−x∗]2−(x∗)2}\sum\limits_i {\left[ {{\bf{x}}_i^2 - \left( {{{\bf{z}}_i} + {\bf{A}}_i^{\mathop{\rm T}\nolimits} {\bf{y}} - {\bf{A}}_i^{\mathop{\rm T}\nolimits} {\bf{Az}}} \right)} \right]} = \sum\limits_i {\left\{ {{{\left[ {{{\bf{x}}_i} - {{\bf{x}}^*}} \right]}^2} - {{\left( {{{\bf{x}}^*}} \right)}^2}} \right\}} i∑​[xi2​−(zi​+AiT​y−AiT​Az)]=i∑​{[xi​−x∗]2−(x∗)2}

即当 xi=x∗{{{\bf{x}}_i} = {{\bf{x}}^*}}xi​=x∗ 时, G′(x,z)G'({\bf{x}},{\bf{z}})G′(x,z) 取得最小值,且最小值等于 ∑i−(x∗)2\sum\limits_i - {\left( {{{\bf{x}}^*}} \right)^2}i∑​−(x∗)2 。

结合式 (1) 中的 ℓ0{\ell _0}ℓ0​ 范数约束项,最小化 G′(x,z)G'({\bf{x}},{\bf{z}})G′(x,z) 变成如何使得在 x\bf{x}x 中非零元素个数小于 SSS 的情况下,最小化 ∑i−(x∗)2\sum\limits_i - {\left( {{{\bf{x}}^*}} \right)^2}i∑​−(x∗)2。很容易想到,只需要保留 x\bf{x}x 中前 SSS 个最大项即可,这可以通过硬阈值函数来进行操作。

1.3 硬阈值函数

硬阈值函数如下所示:

其中 TTT 为 abs[xk+AT(y−Axk)]abs\left[ {{{\bf{x}}_k} + {{\bf{A}}^{\mathop{\rm T}\nolimits} }({\bf{y}} - {\bf{A}}{{\bf{x}}_k})} \right]abs[xk​+AT(y−Axk​)] 按从大到小排列第 SSS 个值的大小。

硬阈值函数如下图所示,这跟前面介绍的软阈值函数类似。

1.4 IHT算法程序

function [hat_x] = cs_iht(y,A,K,itermax,error)
% Email: zhangyanfeng527@gmail.com
% Reference: Blumensath T, Davies M E. Iterative hard thresholding for compressed sensing[J].
% Applied & Computational Harmonic Analysis, 2009, 27(3):265-274.
% y: measurement (observe) vector
% A: measurement (sensing) matrix
% k: sparsity level% 注意,IHT算法需要norm(A)<1,否则结果很不稳定,甚至不收敛。u = 1 ; % 默认步长等于1,也可以自己选择
x0 = zeros(size(A,2),1) ;         % initialization with the size of original
for times = 1 : itermaxx_increase = A' * (y - A * x0);hat_x = x0 + u * x_increase ; [~,pos] = sort(abs(hat_x),'descend');   hat_x(pos(K + 1 : end)) = 0 ;   % thresholding, keeping the larges s elements if norm(y - A * hat_x) < error || norm(x0-hat_x)/norm(hat_x) < errorbreak ;elsex0 = hat_x ;          % updateend
end

2. NIHT算法

由于IHT算法需要满足 ∥A∥2<1{\left\| {\bf{A}} \right\|_2} < 1∥A∥2​<1,因此算法对 ${\left| {\bf{A}} \right|_2} $ 的缩放很敏感,当不满足此条件时,迭代过程会严重动荡甚至不收敛。此外,IHT算法固定步长为1,无法更好的利用自适应步长加速算法的收敛,而通过调节步长来实现算法收敛加速显然不现实。

基于以上原因,Blumensath, Thomas 等人接下来又提出了正规化硬阈值迭代算法,NIHT算法的优势是利用李普希兹连续条件来规范化步长,使算法不受矩阵 A\bf{A}A 缩放的影响。同时采用一维线搜索,推导出自适应步长公式,使迭代次数大幅减少。这种方式以少量可不计的计算量增加换来了算法收敛速度的大幅提升。

NIHT算法具体的原理在此不细述,感兴趣的朋友可以参考文献[2],此处供上原文中的算法伪代码:

NIHT算法程序如下:

function [x_p] = cs_niht(y,A,K,itermax,error,par_c)
% Email: zhangyanfeng527@gmail.com
% Reference: Blumensath T, Davies M E. Normalized Iterative Hard Thresholding: Guaranteed Stability and Performance[J].
% IEEE Journal of Selected Topics in Signal Processing, 2010, 4(2):298-309.
% y: measurement (observe) vector
% A: measurement (sensing) matrix
% k: sparsity level
% itermax: max iteration
% error: error threshold
% par_c: 0 < par_c < 1% NIHT算法的好处是使用自适应的步长,不再像IHT那样要求norm(A)<1了x0 = zeros(size(A,2),1);         % initialization with the size of original
g0 = A' * y ;
u = norm(g0) / norm(A * g0) ;
x1 = x0 + u * g0 ;
[~,pos1] = sort(abs(x1),'descend') ;
x1(pos1(K + 1:end)) = 0 ;
gamma0 = find(x1) ;
for times = 1 : itermax  g1 = A' * (y - A * x1) ; % calculate gradientu = norm(g1(gamma0)) / norm(A(:,gamma0) * g1(gamma0)) ;  % calculate step sizex_p = x1 + u * g1 ;[~,pos1] = sort(abs(x_p),'descend') ;x_p(pos1(K + 1 : end)) = 0 ;gamma1 = find(x_p) ;   % support setW = ( norm ( x_p - x1 ) )^2 / ( norm(A * (x_p - x1)) )^2 ;if isequal(gamma0,gamma1) == 1elseif isequal(gamma0,gamma1) == 0% normalized step sizeif u <= 1 * W elseif u > 1 * W while(u > 1 * W ) u = par_c * u ;endx_p = x1 + u * g1 ;[~,pos1] = sort(abs(x_p),'descend') ;x_p(pos1(K + 1 : end)) = 0 ;gamma1 = find(x_p) ;endendif  norm(y - A * x_p) < errorbreak;elsex1 = x_p ;          % updategamma0 = gamma1 ;end
end

3. CGIHT算法

尽管NIHT算法在IHT算法的基础上改进了不少地方,但是总的来说,IHT算法和NIHT算法都是基于梯度的算法,只利用了梯度域的信息,而梯度下降法本身收敛速度受限。为了进一步提高IHT算法的收敛速度,Blanchard, Jeffrey D等人提出使用共轭梯度来代替IHT算法中的梯度,并证明了CGIHT算法的收敛速度比IHT算法快。具体可以描述为,IHT算法和NIHT算法是基于梯度的算法,其收敛速度与
K−1K+1{{K - 1} \over {K + 1}}K+1K−1​

有关,而CGIHT算法使用共轭梯度,其收敛速度与
K−1K+1{{\sqrt K - 1} \over {\sqrt K + 1}}K​+1K​−1​

有关。其中 KKK 是矩阵 ATA{{{\bf{A}}^{\mathop{\rm T}\nolimits} }{\bf{A}}}ATA 的条件数。很显然后者小于前者,因此其收敛速度更快。

CGIHT算法的原理比较简单,这里不再详细介绍,下面是原文中CGIHT算法的伪代码:

CGIHT算法程序如下:

function [x_p] = cs_cgiht(y,A,s,itermax,error)
% Emial: zhangyanfeng527@gmail.com
% Reference: Blanchard J D, Tanner J, Wei K. CGIHT: conjugate gradient iterative hard thresholding
% for compressed sensing and matrix completion[J].
% Information & Inference A Journal of the Ima, 2015(4).
% y: measurement (observe) vector
% A: measurement (sensing) matrix
% s: sparsity level
% itermax: max iteration
% error: error thresholdx_0 = .2 * ones(size(A,2),1);         % initialization with the size of original
g0 = A' * ( y - A * x_0) ;
[~,pos0] = sort(abs(g0),'descend') ;
g0(pos0(s+1:end)) = 0 ;
d0 = g0 ;
u = (norm(g0) / norm(A * d0))^2 ;
x_1 = x_0 + u * d0 ;
[~,pos1] = sort(abs(x_1),'descend');
x_1(pos1(s + 1 : end)) = 0 ;
gamma1 = find(x_1) ;%% restart CGIHT algorithm
% tao = gamma1 ;
% for times = 1 : itermax
%     g1 =  A' * ( y - A * x_1) ;
%     if isequal(gamma0,tao) == 1
%         u = (g1(gamma1)' * g1(gamma1)) / (g1(gamma1)' * A(:,gamma1)' * A(:,gamma1) * g1(gamma1)) ;
%         x_p = x_1 + u * g1 ;
%     else
%         belta = (norm(g1) / (norm(g0)))^2;
%     d1 = g1 + belta * d0 ;
%     u = (d1(gamma1)' * g1(gamma1)) / (d1(gamma1)' * A(:,gamma1)' * A(:,gamma1) * d1(gamma1)) ;
%     x_p = x_1 + u * d1 ;
%     end
%     [~,index] = sort(abs(x_p),'descend');
%     x_p(index(s + 1 : end)) = 0 ;
%     if norm(x_p - x_1)/norm(x_p)< error || norm(y - A * x_p)<error
%         break;
%     else
%         gamma0 = gamma1 ;
%         gamma1 = index ;
%         x_1 = x_p ;
%     end
% end%% CGIHT algorithm
for times = 1 : itermax     g1 =  A' * ( y - A * x_1) ;belta = (norm(g1) / (norm(g0)))^2 ;d1 = g1 + belta * d0 ;u = (d1(gamma1)' * g1(gamma1)) / (d1(gamma1)' * A(:,gamma1)' * A(:,gamma1) * d1(gamma1)) ;x_p = x_1 + u * d1 ;[~,index] = sort(abs(x_p),'descend') ;x_p(index(s + 1 : end)) = 0 ;if norm(x_p - x_1)/norm(x_p)< error || norm(y - A * x_p)<errorbreak;elsex_1 = x_p ;g0 = g1 ;d0 = d1 ;end
end
end

4. HTP 算法

硬阈值追踪算法(Hard Thresholding Pursuit HTP)是由SIMON FOUCART提出来的,该算法结合了子空间追踪算法(Subspace Pursuit SP)算法和IHT算法的优势,一方面具备更强的理论保证,另一方面也表现出良好的实证效果。

与IHT算法不同的是,HTP算法在每次迭代中采用了SP算法中用最小二乘更新稀疏系数的方法,最小二乘是一种无偏估计方法,这使得更新结果更加精确,从而可以减少迭代次数。

与SP算法不同的是,SP算法在每次迭代中是采用测量矩阵与残差的内积(即AT(y−Ax){{{\bf{A}}^T}({\bf{y}} - {\bf{Ax}})}AT(y−Ax))的大小来挑选最大的 SSS 个支撑位置,而HTP算法则是像IHT算法一样采用 x+AT(y−Ax){{\bf{x}}{\rm{ + }}{{\bf{A}}^T}({\bf{y}} - {\bf{Ax}})}x+AT(y−Ax) 来挑选支撑,后者无疑比前者包含更多的信息,因此相对于SP算法,HTP算法能更快的找到支撑位置,从而减少迭代次数。

总的说来,HTP算法是结合了IHT算法和SP算法的优势,因此其表现也更好。HTP算法原理较为简单,在此不详细介绍,对SP算法的介绍在后续贪婪类算法中一并总结。

下面是HTP算法的伪代码:

HTP算法的程序如下:

function [hat_x] = cs_htp(y,A,K,itermax,error)
% Emial: zhangyanfeng527@gmail.com
% Reference: Foucart S. HARD THRESHOLDING PURSUIT: AN ALGORITHM FOR COMPRESSIVE SENSING[J].
% Siam Journal on Numerical Analysis, 2011, 49(6):2543-2563.
% y: measurement (observe) vector
% A: measurement (sensing) matrix
% k: sparsity levelx0 = .2 * ones(size(A,2),1) ;         % initialization with the size of original
u = 1 ; % stpesize=1
for times = 1 : itermax x_increase = A' * (y - A * x0);hat_x = x0 + u * x_increase ; [~,pos] = sort(abs(hat_x),'descend');  gamma = pos(1:K) ;z = A(:,gamma) \ y ;hat_x = zeros(size(A,2),1) ;hat_x(gamma) = z ;if norm(y - A * hat_x) < error || norm(hat_x-x0)/norm(hat_x) < errorbreak;elsex0 = hat_x ;         end
end
end

5. 仿真

以下对上述四种算法进行重构效果比较,测试程序如下:

%% CS reconstruction test
% Emial: zhangyanfeng527@gmail.comclear
clc
close allM = 64 ; %观测值个数
N = 256 ; %信号x的长度
K = 10 ; %信号x的稀疏度
Index_K = randperm(N) ;
x = zeros(N,1) ;
x(Index_K(1:K)) = 5 * randn(K,1); % x为K稀疏的,且位置是随机的
Psi = eye(N); % x本身是稀疏的,定义稀疏矩阵为单位阵x=Psi*theta
Phi = randn(M,N); %测量矩阵为高斯矩阵
Phi = orth(Phi')';
A = Phi * Psi; %传感矩阵
% sigma = 0.005;
% e = sigma*randn(M,1);
% y = Phi * x + e;%得到观测向量y
y = Phi * x ; %得到观测向量y
%% 恢复重构信号x
tic
theta = cs_iht(y,A,K);
x_r = Psi * theta;% x=Psi * theta
toc
%% 绘图
figure;
plot(x_r,'k.-');%绘出x的恢复信号
hold on;
plot(x,'r');%绘出原信号x
hold off;
legend('Recovery','Original')
fprintf('\n恢复残差:');
norm(x_r-x)%恢复残差

上述测试脚本只提供了简单的实验设置,对算法重构成功率、算法迭代次数与误差的关系(收敛速度)、重构时间、鲁棒性等测试可以自由发挥。

参考文献

[1] Blumensath, Thomas, and Mike E. Davies. “Iterative hard thresholding for compressed sensing.” Applied and computational harmonic analysis 27.3 (2009): 265-274.
[2] Blumensath, Thomas, and Mike E. Davies. “Normalized iterative hard thresholding: Guaranteed stability and performance.” IEEE Journal of selected topics in signal processing 4.2 (2010): 298-309.
[3] Blanchard, Jeffrey D., Jared Tanner, and Ke Wei. “CGIHT: conjugate gradient iterative hard thresholding for compressed sensing and matrix completion.” Information and Inference: A Journal of the IMA 4.4 (2015): 289-327.
[4] Foucart, Simon. “Hard thresholding pursuit: an algorithm for compressive sensing.” SIAM Journal on Numerical Analysis 49.6 (2011): 2543-2563.

往期文章链接:
最大比率发射(Maximum Ratio Transmission, MRT)

线性降维:主成分分析PCA原理分析与仿真验证

5G+AI:有哪些新的研究方向和新范式?

简述3D点云配准算法

5G为人工智能与工业互联网赋能|79页高清PPT

智能算法|以动物命名的算法

一份超全面的机器学习公共数据集

矩阵填充|奇异值阈值算法

可重构/大规模智能反射表面reconfigurable/large intelligent surface综述

迭代硬阈值类算法总结||IHT/NIHT/CGIHT/HTP

软阈值迭代算法(ISTA)和快速软阈值迭代算法(FISTA)

伍德伯里矩阵恒等式(Woodbury matrix identity)

压缩感知:一种新型亚采样技术

更多精彩内容请关注微信公众号 “优化与算法

迭代硬阈值类算法总结||IHT/NIHT/CGIHT/HTP相关推荐

  1. 压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT)

    转载自:https://blog.csdn.net/wyw921027/article/details/52102211 题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresh ...

  2. 压缩感知重构算法之迭代硬阈值(IHT)

    题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT) 本篇来介绍IHT重构算法.一般在压缩感知参考文献中,提到IHT时一般引用的都是文献[1],但IHT ...

  3. 迭代硬阈值(IHT)

    题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT) 本篇来介绍IHT重构算法.一般在压缩感知参考文献中,提到IHT时一般引用的都是文献[1],但IHT ...

  4. 迭代硬阈值算法IHT:Iterative Hard-Thresholding

    迭代硬阈值算法IHT:Iterative Hard-Thresholding 前言 硬阈值函数 迭代硬阈值算法 参考 前言 最近在学习压缩感知的重构算法,重构算法整体来看分为三大类: ①贪婪迭代类算法 ...

  5. 迭代硬阈值(IHT)算法解决CS优化目标函数

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 题目:迭代硬阈值(IHT)的补充说明 本篇是对压缩感知重构算法之迭代硬阈值(IHT)的一个补充 ...

  6. 迭代硬阈值(IHT)的补充说明

    题目:迭代硬阈值(IHT)的补充说明 本篇是对压缩感知重构算法之迭代硬阈值(IHT)的一个补充. 学完IHT后,近期陆续学习了硬阈值(hard Thresholding)函数和Majorization ...

  7. IHT迭代硬阈值在压缩感知重建中的应用

    IHT迭代硬阈值在压缩感知重建中的应用 IHT算子程序 IHT函数 主程序 测试结果 IHT算子程序 function [a3] =IHT_Opeator(a,s) %UNTITLED 此处显示有关此 ...

  8. 压缩感知重构算法之迭代软阈值(IST)

    题目:压缩感知重构算法之迭代软阈值(IST) 看懂本篇需要有以下两篇作为基础: (1)软阈值(Soft Thresholding)函数解读 (2)Majorization-Minimization优化 ...

  9. 稀疏编码: LASSO,近端梯度优化(PGD),迭代软阈值算法(ISTA),L-Lipschitz条件,软阈值

    在用到稀疏编码时,难免会提到以下概念: (1)LASSO(Least Absolute Shrinkage and Selection Operatior): 最小绝对收缩选择算子.这个名词听名字比较 ...

最新文章

  1. 网站DDOS***防护实战老男孩经验心得分享
  2. vs2017通过snippet代码片断进行标准化注释
  3. 大屏拍照游戏神器来袭,OPPO R11 Plus今日首销
  4. 铁岭市奔腾计算机学校地址,辽宁省铁岭市奔腾计算机职业高级中学2020年高三数学理上学期期末试题.docx...
  5. HTML基础学习(二)—CSS
  6. freeswitch添加tls加密
  7. board crt_容器编排系统K8s之Dashboard部署
  8. QueryDSL学习记录(持续更新)
  9. 【Advanced控制理论】Robust Control鲁棒控制(附Simulink程序)
  10. Windows数字签名 数字签名(代码签名)流程
  11. 【设计】资料合集(1-121)副业学习会
  12. 【报告分享】2021小红书品牌投放产品介绍-小红书(附下载)
  13. ensp 交换机与路由器ospf_—华为数通eNSP模拟实验15:交换机对接路由器
  14. 比炒币还香的在线作图工具draw.io
  15. 基于笔画序列的中文字向量模型设计与研究
  16. RocketMQ 关于 No route info of this topic 问题
  17. iOS 判断是否安装了微信、QQ客户端
  18. kivy控件之size_hint,pos_hint详述
  19. 深度linux系统任务栏毛玻璃,操作系统中常见的「毛玻璃」效果是怎么设计出来的?...
  20. 2020年“磐云杯”网络空间安全技能竞赛全国拉赛

热门文章

  1. jq 动态配置meta的keywords,description
  2. C语言中字符串结束符'\0'
  3. 万物互联时代的边缘计算安全需求与挑战
  4. 图表控件--MSChart(2)
  5. 鼎捷T100——利用自定义查询维护作业(azzi310)开发建立xg报表
  6. 计算机视觉物体识别的过程,计算机视觉之从OpenCV到物体识别(二)
  7. python分析红楼梦中人物形象_红楼梦中的人物的具体情节分析其中某一个人物形象(大约800字左右)急求,...
  8. VGG预训练模型网络结构详解——以VGG16为例
  9. 采用matlab编制含电气热的综合能源优化程序,采用yalmip和cplex求解,通过二阶锥模型实现相关约束限制
  10. SVG可伸缩矢量图形绘制钟表