ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题

ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题

原创文章!转载需注明来源:©️ Sylvan Ding’s Blog ❤️

toppic

实验目的

  • 了解 ADMM, ISTA, FISTA 算法的基本原理、收敛性和复杂度;
  • 使用上述三种算法,解决 LASSO 问题;
  • 分析三种算法的表现情况。

实验环境

MATLAB R2021a

文章目录

  • ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题
    • 实验目的
    • 实验环境
    • 实验内容
      • LASSO Problem
      • ADMM
      • ISTA
      • FISTA
    • 算法描述
      • ADMM
      • [F]ISTA
    • 实验步骤
      • ADMM [6]
      • [F]ISTA [7]
      • 绘图
    • 结果分析
    • 参考文献

实验内容

ADMM 和 [F]ISTA 的收敛性证明在 [1] 和 [2] 中给出,ADMM 和 ISTA 的全局收敛速率(global convergence rate)为 O(1/k)O(1/k)O(1/k) [Eckstein and Bertsekas, 1990; Deng and Yin, 2012; He and Yuan, 2012],然而 FISTA 的全局收敛速率为 O(1/k2)O(1/k^2)O(1/k2)​ 。但是,[2] 得出了在某些情况下,ISTA 却比 FISTA 更快的结论,并给出了具体原因。

LASSO Problem

许多机器学习和数据拟合问题都可以看成是最小二乘问题,添加正则项从而避免过拟合。在许多应用中,使用 l1l1l1-范数 作为正则项可以带来不错的泛化效果,所以我们求解含有 l1l1l1-正则项 的线性最小二乘问题,也称为 LASSO 问题 [2],其一般形式为:(P)

min⁡x∈Rn12∥Ax−b∥2+λ∥x∥1.\min \limits _{x\in \mathbb{R} ^n} \frac{1}{2} \Vert Ax-b \Vert ^2 + \lambda \Vert x \Vert _1.xRnmin21Axb2+λx1.

其中,A∈Rm×nA\in \mathbb{R} ^{m\times n}ARm×n 是一个行满秩矩阵,n>mn>mn>mbbb 是一个已知向量; λ>0\lambda >0λ>0 是一标量;l1l1l1-正则项 ∥x∥1\Vert x \Vert _1x1 会产生一稀疏解,在降低代价的同时,避免发生过拟合 [Tibshirani, 1996]。

在实验一和实验三中,分别使用了不同的正则项实现了信号的降噪,体现了 l1l1l1-正则项 的另一个优势,就是相较于 l2l2l2-正则项 来说,l1l1l1-正则项 对边界值(outliers)不敏感,这一特点有利于图像降噪中对锐利边缘(sharp edges)的处理。

在实验三中,曾将(P)视为盒状约束(box-constrained)的二次优化问题,使用梯度投影法进行求解。本文要求使用 ADMM, ISTA, FISTA 这三种算法,求解 LASSO 问题。

ADMM

ADMM 算法(Alternating Direction Method of Multipliers)[Gabay, Mercier, Glowinski, Marrocco, 1976] 将原问题的变量 xxx 分解为两个变量 xxxzzz ,在最小二乘的损失函数里使用 xxx ,在 l1l1l1-范数 的正则项里使用 zzz 。这样,外加一个等式约束,就可构造增广拉格朗日函数,进而分别求解两个变量的最优值,使得计算较为容易。

问题(P)等价于:

min⁡x12∥Ax−b∥2+λ∥z∥1s.t.x−z=0\begin{array}{l} \min \limits _x & \frac{1}{2} \Vert Ax-b \Vert ^2 + \lambda \Vert z \Vert _1 \\ \mathrm{s.t.} & x-z=0 \end{array}xmins.t.21Axb2+λz1xz=0

构造增广拉格朗日函数(augmented Lagrangian) LρL_\rhoLρ

Lρ(x,z,μ)=f(x)+g(z)+μT(x−z)+ρ2∥x−z∥2.L_\rho (x,z,\mu) = f(x)+g(z)+\mu ^T(x-z) + \frac{\rho }{2} \Vert x-z \Vert ^2.Lρ(x,z,μ)=f(x)+g(z)+μT(xz)+2ρxz2.

其中,f(x)=12∥Ax−b∥2f(x)=\frac{1}{2} \Vert Ax-b \Vert ^2f(x)=21Axb2g(z)=λ∥z∥1g(z)=\lambda \Vert z \Vert _1g(z)=λz1ρ\rhoρ 是惩罚参数。

不难发现,最优化 xxx 时,是一个二次优化问题,而最优化 zzz 时,是一个软阈(soft-thresholding)问题,那么,ADMM 的迭代形式为:

xk+1:=(ATA+ρI)−1(ATb+ρzk−μk)x.minimizationzk+1:=Sλ/ρ(xk+1+μk/ρ)z.minimizationμk+1:=μk+ρ(xk+1−zk+1)dualupdate\begin{array}{l} x^{k+1} &:= (A^TA+\rho I)^{-1}(A^Tb+\rho z^k-\mu ^k) & \mathrm{ x.minimization } \\ z^{k+1} &:= S_{\lambda / \rho} (x^{k+1} + \mu ^{k}/ \rho) & \mathrm{ z.minimization }\\ \mu ^{k+1} &:= \mu ^k + \rho (x^{k+1}-z^{k+1}) & \mathrm{ dual \quad update } \end{array}xk+1zk+1μk+1:=(ATA+ρI)1(ATb+ρzkμk):=Sλ/ρ(xk+1+μk/ρ):=μk+ρ(xk+1zk+1)x.minimizationz.minimizationdualupdate

其中,SτS_\tauSτ 是软阈函数(又称为Shrinkage),Sτ(g):=sign(g)⋅(∣g∣−τ)+S_\tau (g):=sign(g)\cdot (|g|-\tau)_+Sτ(g):=sign(g)(gτ)+ [3],也即 [5]

[Sτ(g)]j={gj−τg>τ0−τ≤g≤τgj+τg<−τ,j=1,2,…,n\left [S_\tau (g) \right ]_j= \left\{\begin{matrix} g_j-\tau & g> \tau \\ 0 & -\tau \le g \le \tau \\ g_j+\tau & g<-\tau \end{matrix}\right. , \quad j=1,2,\dots ,n[Sτ(g)]j=gjτ0gj+τg>ττgτg<τ,j=1,2,,n

实际上,ADMM 算法往往在一系列迭代后,能获得较为精确的解,但是所需要的迭代次数是大量的 [5]。

ρ\rhoρ 的选取会在极大程度上影响 ADMM 的收敛性。若 ρ\rhoρ 太大,则对于优化 f+gf+gf+g 的能力会下降;反之,则会削弱约束条件 x=zx=zx=z. Boyd et al. (2010) 给出了选 ρ\rhoρ 的策略,效果不错,但不能保证一定收敛。

ISTA

现在流行的一种解决问题(P)的方法是 ISTA(iterative shrinkage-thresholding algorithms)[Daubechies et al, 2004],该方法在每次迭代时会计算矩阵和向量的乘积,随后是收缩步骤(shrinkage/soft-threshold)。

对于连续可微函数 f:Rn→Rf:\mathbb{R} ^n \to \mathbb{R}f:RnR 的无约束优化问题 min⁡{f(x):x∈Rn}\min \{ f(x): x\in \mathbb{R} ^n \}min{f(x):xRn} ,解决此类问题的一种简单的方法是使用梯度算法,通过 xk=xk−1−tk∇f(xk−1)x_k=x_{k-1}-t_k\nabla f(x_{k-1})xk=xk1tkf(xk1) 生成序列 {xk}\{ x_k \}{xk}. 这种梯度迭代法可以被视为一种线性函数 fff 在点 xk−1x_{k-1}xk1 处的近端正则化(proximal regularization)[Martinet, Bernard ,1970],即

xk=arg⁡min⁡x{f(xk−1)+⟨x−xk−1,∇f(xk−1)⟩+12tk∥x−xk−1∥2}.x_k=\arg \min \limits _x \left \{ f(x_{k-1} ) + \left \langle x-x_{k-1},\nabla f(x_{k-1}) \right \rangle + \frac{1}{2t_k} \Vert x-x_{k-1} \Vert ^2 \right \}.xk=argxmin{f(xk1)+xxk1,f(xk1)+2tk1xxk12}.

其中,⟨x,y⟩=xTy\left \langle x,y \right \rangle =x^Tyx,y=xTy 表示两向量的内积。将这种梯度思想运用到非光滑的含 l1l1l1-正则项 的优化问题(P)上,那么可以得到迭代策略:

xk=arg⁡min⁡x{f(xk−1)+⟨x−xk−1,∇f(xk−1)⟩+12tk∥x−xk−1∥2+λ∥x∥1}.x_k=\arg \min \limits _x \left \{ f(x_{k-1} ) + \left \langle x-x_{k-1},\nabla f(x_{k-1}) \right \rangle + \frac{1}{2t_k} \Vert x-x_{k-1} \Vert ^2 + \lambda \Vert x \Vert _1 \right \}.xk=argxmin{f(xk1)+xxk1,f(xk1)+2tk1xxk12+λx1}.

合并同类项,忽略常数项后,我们能得到如下形式:

xk=arg⁡min⁡x{12tk∥x−(xk−1−tk∇f(xk−1))∥2+λ∥x∥1}.x_k = \arg \min \limits _x \left \{ \frac{1}{2t_k} \Vert x-(x_{k-1}-t_k\nabla f(x_{k-1})) \Vert ^2 + \lambda \Vert x \Vert _1 \right \}.xk=argxmin{2tk1x(xk1tkf(xk1))2+λx1}.

这是一种特殊情况,因为 l1l1l1-范数 是可以分离的,所以计算 xkx_kxk 简化为解决一维的优化问题,即

xk=τλtk(xk−1−tk∇f(xk−1)).x_{k}=\tau _{\lambda t_k} (x_{k-1} -t_k\nabla f(x_{k-1})).xk=τλtk(xk1tkf(xk1)).

针对(P)问题时,ISTA 的迭代形式为:(PistaP_{ista}Pista

xk+1=τλtk+1(xk−tk+1AT(Axk−b)).x_{k+1}=\tau _{\lambda t_{k+1}} (x_k -t_{k+1}A^T(Ax_k-b)).xk+1=τλtk+1(xktk+1AT(Axkb)).

其中,tk+1t_{k+1}tk+1 为步长,步长 tk∈(0,1/∥ATA∥)t_k\in (0,1/\Vert A^TA \Vert )tk(0,1/ATA) 确保了 xkx_kxk 可以收敛到 x∗x^*xτα\tau _{\alpha}τα 为收缩算子(shrinkage operator),和 shrinkage function 无异。[1] 中证明了下降和收敛性。

这一算法的思想可以追溯到 proximal forwardbackward iterative scheme。最近,一种由 proximal forward-backward algorithms 产生 {xk}\{ x_k \}{xk} 序列的算法也作出了贡献 [1]。

对于(PistaP_{ista}Pista),步长 ttt 的确定有两种方法,分别是定步长法和回溯法(backtracking)。在使用定步长法时,我们需要设定 tˉ=1/L(f)\bar{t}=1/L(f)tˉ=1/L(f)L(f)L(f)L(f)∇f\nabla ff 的 Lipschitz 常数。对于(P),L(f)=2λmax⁡(ATA)L(f)=2\lambda _{\max} (A^TA)L(f)=2λmax(ATA) ,这就导致对于大规模问题(AAA 维数过大),求解 L(f)L(f)L(f) 往往是困难的,而且,很多时候,L(f)L(f)L(f) 不可求。所以,我们使用回溯法求解合适的步长。(R)

虽然 ISTA 是一种非常简单的方法,但是它的收敛速度较慢。最近的研究表明,对于一些特定的 AAA ,ISTA 生成的 {xk}\{ x_k \}{xk} 序列有着同样慢速的渐进收敛速率,这很糟糕 [Bredies and D. Lorenz, 2008]。

FISTA

那么,现在需要找到一种形式上和 ISTA 一样简单,在速度上却优于 ISTA 的算法。Beck A, Teboulle M 在 2009 年提出 FISTA [1],FISTA 和 ISTA 主要的不同就在于,收缩算子 τ\tauτ 没有用在 xk−1x_{k-1}xk1 上,而是用在 yky_kyk 上,yky_kyk 以线性方式结合了前两次的迭代结果 xk−1x_{k-1}xk1xk−2x_{k-2}xk2 ,即

xk=τλ/Lk(yk−1LkAT(Ayk−b))x_{k}=\tau _{\lambda /L_{k}} (y_k -\frac{1}{L_k}A^T(Ay_k-b))xk=τλ/Lk(ykLk1AT(Aykb))

yk+1=xk+(tk−1tk+1)(xk−xk−1).y_{k+1}=x_k+\left ( \frac{t_k-1}{t_{k+1}} \right )(x_k - x_{k-1}).yk+1=xk+(tk+1tk1)(xkxk1).

此外,tkt_ktk 的迭代策略为:

tk+1=1+1+4tk22.t_{k+1}=\frac{1+\sqrt{1+4t^2_k}}{2}.tk+1=21+1+4tk2.

注意,这里 tk+1t_{k+1}tk+1 并非步长,而是 yk+1y_{k+1}yk+1 线性结合前两次迭代结果的系数。此时的步长为 LLLLLL 恰好和之前的步长互为倒数。和上述原因(R)相同,我们也使用回溯法求解合适的步长。

算法描述

ADMM

ADMM Algorithm for LASSO problem based on [4-5]

% Solves the following problem via ADMM:
% minimize 1/2*|| Ax - b ||_2^2 + \lambda || x ||_1% INPUT
%=======================================
% A
% b
% rho ....... augmented Lagrangian parameter
% lambda .... coefficient of l1-norm
% iter ...... iteration number
% OUTPUT
%=======================================
% x_s ....... sequences {xk} generated by ADMM
  1. 初始化 x0,z0,μ0=0x_0,z_0,\mu _0 = \mathrm{0}x0,z0,μ0=0 [6]
  2. 更新变量(k≥0k \ge 0k0):

xk+1:=(ATA+ρI)−1(ATb+ρzk−μk)x.minimizationzk+1:=Sλ/ρ(xk+1+μk/ρ)z.minimizationμk+1:=μk+ρ(xk+1−zk+1)dualupdate\begin{array}{l} x^{k+1} &:= (A^TA+\rho I)^{-1}(A^Tb+\rho z^k-\mu ^k) & \mathrm{ x.minimization } \\ z^{k+1} &:= S_{\lambda / \rho} (x^{k+1} + \mu ^{k}/ \rho) & \mathrm{ z.minimization }\\ \mu ^{k+1} &:= \mu ^k + \rho (x^{k+1}-z^{k+1}) & \mathrm{ dual \quad update } \end{array}xk+1zk+1μk+1:=(ATA+ρI)1(ATb+ρzkμk):=Sλ/ρ(xk+1+μk/ρ):=μk+ρ(xk+1zk+1)x.minimizationz.minimizationdualupdate

[F]ISTA

[F]ISTA with backtracking for LASSO problem based on [1]

% Solves the following problem via [F]ISTA:
% minimize 1/2*|| Ax - b ||_2^2 + \lambda || x ||_1% INPUT
%=======================================
% A
% b
% x0......... initial point
% L0 ........ initial choice of stepsize
% eta ....... the constant in which the stepsize is multiplied
% lambda .... coefficient of l1-norm
% iter ...... iteration number
% opt ....... 0 for ISTA or 1 for FISTA
% eps ....... stop criterion
% OUTPUT
%=======================================
% x_s ....... sequences {xk} generated by [F]ISTA
  1. L0>0,η>1,x0∈RnL_0>0 ,\eta>1,x_0 \in \mathbb{R} ^nL0>0,η>1,x0Rn, 设置 y1=x0,t1=1y_1=x_0,t_1=1y1=x0,t1=1 ;

  2. k≥1k \ge 1k1 步,寻找最小非负整数 iki_kik , 使得对于 Lˉ=ηikLk−1\bar{L}=\eta ^{i_k}L_{k-1}Lˉ=ηikLk1, 有
    F(pLˉ(yk))≤QLˉ(pLˉ(yk),yk).F(p_{\bar{L}}(y_k))\le Q_{\bar{L}} (p_{\bar{L}}(y_k), y_k).F(pLˉ(yk))QLˉ(pLˉ(yk),yk). [1]

    其中,

    F(x)≡f(x)+g(x),F(x) \equiv f(x)+g(x),F(x)f(x)+g(x),

    ∇f(y)=AT(Ay−b),\nabla f(y) = A^T(Ay-b) ,f(y)=AT(Ayb),

    pLˉ(yk)=τλ/Lˉ(yk−1LˉAT(Ayk−b)),p_{\bar{L}} (y_k) = \tau _{\lambda /\bar{L}} (y_k -\frac{1}{\bar{L}}A^T(Ay_k-b)) ,pLˉ(yk)=τλ/Lˉ(ykLˉ1AT(Aykb)),

    QLˉ(x,y):=f(y)+⟨x−y,∇f(y)⟩+Lˉ2∥x−y∥2+g(x).Q_{\bar{L}}(x,y):=f(y)+\left \langle x-y,\nabla f(y) \right \rangle + \frac{\bar{L}}{2} \Vert x-y \Vert ^2 + g(x) .QLˉ(x,y):=f(y)+xy,f(y)+2Lˉxy2+g(x).

  3. 设置 Lk=ηikLk−1L_k=\eta ^{i_k} L_{k-1}Lk=ηikLk1 ,更新如下变量:[2]

    xk=pLk(yk),x_{k}= p_{L_k} (y_k),xk=pLk(yk),

    tk+1=1+1+4tk22,t_{k+1}=\frac{1+\sqrt{1+4t^2_k}}{2},tk+1=21+1+4tk2,

    δk=0forISTA,ortk−1tk+1forFISTA,\delta _k=0 \ \mathrm{for \ ISTA},\ or\ \frac{t_k-1}{t_{k+1}}\ \mathrm{for \ FISTA},δk=0 for ISTA, or tk+1tk1 for FISTA,

    yk+1=xk+δk(xk−xk−1).y_{k+1} = x_{k} + \delta _k (x_k-x_{k-1}) .yk+1=xk+δk(xkxk1).

注:Remark 3.2 [1] 给出了 LkL_kLk 的取值范围:

L0≤Lk≤ηL(f).L_0\le L_k \le \eta L(f) .L0LkηL(f).

实验步骤

设定 m=1500,n=5000,p=0.02m=1500,n=5000,p=0.02m=1500,n=5000,p=0.02ppp 是真值 uuu 的稀疏度(sparsity density),A∈Rm×nA\in \mathbb{R} ^{m\times n}ARm×n. b = A*u + sqrt(0.001)*randn(m,1);bbb 上添加了随机噪声,初值 x0=0x_0=0x0=0λ=0.15\lambda=0.15λ=0.15 . 误差的估计使用 E(x^)=∥x^−u∥1E(\hat{x}) = \Vert \hat{x}-u \Vert _1E(x^)=x^u1x^\hat{x}x^ 是预测值。

clc;clearrandn('seed', 0);
rand('seed',0);m = 1500;       % number of examples
n = 5000;       % number of features
p = 100/n;      % sparsity densityu = sprandn(n,1,p);
A = randn(m,n);
A = A*spdiags(1./sqrt(sum(A.^2))',0,n,n); % normalize columns
b = A*u + sqrt(0.001)*randn(m,1);iter = 70;
lambda = 0.15;
x0 = zeros(5000,1);E = @(x) sum(abs(x-u)); % compute error

ADMM [6]

设置 ρ=0.7\rho = 0.7ρ=0.7 .

%% ADMM DEMO
rho = 0.7;
x_admm = admm_lasso(A,b,rho,lambda,iter);
conv_admm = E(x_admm);
function x_s = admm_lasso(A,b,rho,lambda,iter)
% Solves the following problem via ADMM:
% minimize 1/2*|| Ax - b ||_2^2 + \lambda || x ||_1% INPUT
%=======================================
% A
% b
% rho ....... augmented Lagrangian parameter
% lambda .... coefficient of l1-norm
% iter ...... iteration number
% OUTPUT
%=======================================
% x_s ....... sequences {xk} generated by ADMM%% shrinkage operator
S = @(tau, g) max(0, g - tau) + min(0, g + tau);x_s = [];
[~,n] = size(A);
I = eye(n);
x = zeros(n,1);
z_old = zeros(n,1);
u_old = zeros(n,1);
%% MAIN LOOP
for ii = 1:iter% record x_sx_s = [x_s, x];% minimize x,z,ux = (A'*A+rho*I) \ (A'*b+rho*z_old-u_old);z_new = S(lambda/rho, x+u_old/rho);u_new = u_old + rho*(x-z_new);% check stop criteria% e = norm(x_new-x_old,1)/numel(x_new);% if e < eps% break% end% updatez_old = z_new;u_old = u_new;
end

[F]ISTA [7]

设置 L0=1.05,η=1.01L_0=1.05,\eta=1.01L0=1.05,η=1.01 .

%% [F]ISTA DEMO
L0 = 1.05;
eta = 1.01;
x_ista = fista_backtracking_lasso(A,b,x0,L0,eta,lambda,iter,0,0);
conv_ista = E(x_ista);
x_fista = fista_backtracking_lasso(A,b,x0,L0,eta,lambda,iter,1,0);
conv_fista = E(x_fista);
function x_s = fista_backtracking_lasso(A,b,x0,L0,eta,lambda,iter,opt, eps)
% Solves the following problem via [F]ISTA:
% minimize 1/2*|| Ax - b ||_2^2 + \lambda || x ||_1% INPUT
%=======================================
% A
% b
% x0......... initial point
% L0 ........ initial choice of stepsize
% eta ....... the constant in which the stepsize is multiplied
% lambda .... coefficient of l1-norm
% iter ...... iteration number
% opt ....... 0 for ISTA or 1 for FISTA
% eps ....... stop criterion
% OUTPUT
%=======================================
% x_s ....... sequences {xk} generated by [F]ISTA%% f = 1/2*|| Ax - b ||_2^2
f = @(x) 0.5 * norm(A*x-b)^2;%% g = \lambda || x ||_1
g = @(x) lambda * norm(x,1);%% the gradient of f
grad = @(x) A'*(A*x-b);%% computer F
F = @(x) 0.5*(norm(A*x-b))^2 + lambda*norm(x,1);%% shrinkage operator
S = @(tau, g) max(0, g - tau) + min(0, g + tau);%% projection
P = @(L, y) S(lambda/L, y - (1/L)*grad(y));%% computer Q
Q = @(L, x, y) f(y) + (x-y)'*grad(y) + 0.5*L*norm(x-y) + g(x);x_s = [];
x_old = x0;
y_old = x0;
L_new = L0;
t_old = 1;
%% MAIN LOOP
for ii = 1:iter% find i_kj = 1;while trueL_bar = eta^j * L_new;if F(P(L_bar, y_old)) <= Q(L_bar, P(L_bar, y_old), y_old)L_new = L_new * eta^j;breakelsej = j + 1;endendx_new = P(L_new, y_old);t_new = 0.5 * (1+sqrt(1+4*t_old^2));del = opt * (t_old-1)/(t_new);y_new = x_new + del*(x_new-x_old);% record x_sx_s = [x_s, x_new];% check stop criteria% e = norm(x_new-x_old,1)/numel(x_new);% if e < eps% break% end% updatex_old = x_new;t_old = t_new;y_old = y_new;
end

注:这里将 ISTA 和 FISTA 算法合并成一个,可以使用 opt 参数进行选择。在函数中,加了停止条件 check stop criteria,为方便测试,这里不使用,故注释掉。

绘图

%% draw
plot(conv_admm,'LineWidth',1,...'DisplayName','ADMM','Color','black')
hold on
plot(conv_ista,'--','LineWidth',1,...'DisplayName','ISTA','Color','blue')
plot(conv_fista,'-.','LineWidth',1,...'DisplayName','FISTA','Color','red')
hold off
ylim([0 270])
xlabel('iteration k')
ylabel('$E(\bar{x})$','Interpreter','latex')
legend('Location','northeast')
title('Convergence behavior in terms of error of iterates of ADMM, ISTA, FISTA.',...'$m=1500,n=5000,p=0.02,x_0=0,\lambda=0.15,\rho = 0.7,L_0=1.05,\eta=1.01$',...'Interpreter','latex')

结果分析

result1

在此实验中,ADMM 算法的收敛速率最快,FISTA 的收敛速度和 ADMM 相当,ISTA 最慢。在 ADMM 中,设置 ρ=0.7\rho = 0.7ρ=0.7ρ\rhoρ 较小 ,虽然获得了不错的收敛速率,但可能在一定程度上削弱了约束条件 x=zx=zx=z. 此外,ADMM 在第二次迭代时(所有方法都存在这个问题,暂时不清楚原因),E(xˉ)E(\bar{x})E(xˉ) 波动幅度较大。此外,FISTA 的收敛速率明显优于 ISTA,在 20 次迭代左右时,基本达到的最优值。

在实验时,ADMM 的求解速度明显慢于 ISTA 和 FISTA,时间主要消耗在计算 xk+1x_{k+1}xk+1 时的求逆操作上。

原创文章!转载需注明来源:©️ Sylvan Ding’s Blog ❤️

参考文献

  1. Beck A, Teboulle M. A fast iterative shrinkage-thresholding algorithm for linear inverse problems[J]. SIAM journal on imaging sciences, 2009, 2(1): 183-202.
  2. Tao S, Boley D, Zhang S. Convergence of common proximal methods for l1-regularized least squares[C]//Twenty-Fourth International Joint Conference on Artificial Intelligence. 2015.
  3. Selesnick I. A derivation of the soft-thresholding function[J]. Polytechnic Institute of New York University, 2009.
  4. S. Boyd. Alternating Direction Method of Multipliers. Available online at https://web.stanford.edu/class/ee364b/lectures/admm_slides.pdf.
  5. Ryan Tibshirani. Alternating Direction Method of Multipliers. Available online at https://stat.cmu.edu/~ryantibs/convexopt/lectures/admm.pdf.
  6. You are allowed to develop your solvers by adopting the ADMM codes available from the following Stanford University websites: https://web.stanford.edu/~boyd/papers/admm/lasso/lasso.html.
  7. Tiep Vu. fista_backtracking.m. Available online at https://github.com/tiepvupsu/FISTA.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring详解(八)------事务管理

目录 1、事务介绍2、事务的四个特性&#xff08;ACID&#xff09;3、Spring 事务管理的核心接口4、 PlatformTransactionManager 事务管理器5、TransactionStatus 事务状态6、TransactionDefinition 基本事务属性的定义7、Spring 编程式事务和声明式事务的区别 8、不用事务…

A股光刻胶飙涨背后:仅一家可供应高端光刻胶

来源&#xff1a;芯师爷部分素材来源&#xff1a;前瞻产业研究院、华泰证券5月27日&#xff0c;半导体光刻胶概念股开盘即走强&#xff0c;截至收盘&#xff0c;A股光刻胶板块涨幅达6.48%。其中晶瑞股份、广信材料直线拉升大涨20%封涨停&#xff0c;容大感光大涨13.28%&#xf…

二〇二二注定是踔厉奋发、笃行不怠的一年

2021年&#xff0c;我在生活上、学习上、工作上都有着太多太多遗憾&#xff0c;很多想做的事、计划好的事并没有得到落实。但正如张宇老师所说&#xff0c;人生本来就是一段段幸福夹杂着不可避免的遗憾组成的&#xff0c;所取得的成绩远远大于遗憾&#xff0c;毕竟前途似海&…

为什么机器学习算法难以优化?一文详解算法优化内部机制

来源&#xff1a; 机器之心作者&#xff1a;JONAS DEGRAVE、IRA KORSHUNOVA编辑&#xff1a;小舟选自&#xff1a;engraved.blog损失线性组合是正确的选择吗&#xff1f;这篇文章或许能够给你答案。在机器学习中&#xff0c;损失的线性组合无处不在。虽然它们带有一些陷阱&…

论文作者串通抱团、威胁审稿人,ACM Fellow炮轰「同行评审」作弊

来源&#xff1a;机器之心编辑&#xff1a;陈萍、杜伟布朗大学计算机科学系教授、机器学习研究者、2018 年 ACM Fellow 迈克尔 利特曼&#xff08;Michael L. Littman&#xff09;在 ACM 通讯上发文斥责「部分学者正在威胁计算机科学研究的诚实性」。他在文章中指出了同行评审…

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程实践报告

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程 ⭐️ 本报告的代码部分和程序设计参考了 计算机18-1班张宇哲&#xff08;学号181002406&#xff09;同学 在Gitee仓库发布的AI-Attendance&#xff0c;本文档基于软件工程的具体流程&#xff0c;从软件工程的角度细化的张同学…

浅谈贝叶斯统计

来源&#xff1a;京师统计团总支学生会编辑&#xff1a; ∑Gemini浅谈贝叶斯统计贝叶斯统计是英国学者托马斯贝叶斯在《论有关机遇问题的求解》中提出一种归纳推理的理论&#xff0c;后被一些统计学者发展为一种系统的统计推断方法&#xff0c;称为贝叶斯方法。本文旨在通过实际…

浅析虚拟语气 (Subjunctive mood)

浅析虚拟语气 (Subjunctive mood) 本文旨在通过一种时序逻辑上的联系&#xff0c;帮助读者更好的记忆和运用虚拟语气。文中提及的概念不一定正确&#xff0c;但一定程度上能辅助记忆&#xff0c;最终达到熟练运用的目的。&#xff08;有些语法不用刨根问底&#xff0c;都是约定…

数论重大突破:120年后,希尔伯特的第12个数学难题借助计算机获得解决

来源&#xff1a;机器之心编辑&#xff1a;nhyilin德国数学家大卫 希尔伯特&#xff08;David Hilbert&#xff09;是二十世纪最伟大的数学家之一&#xff0c;被后人称为「数学世界的亚历山大」。他对数学领域做出了广泛和重大的贡献&#xff0c;研究领域涉及代数不变式、代数…

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列&#xff5c;实验、代码、分析、总结 每个进程各自有不同的用户地址空间&#xff0c;任何一个进程的全局变量在另一个进程中都看不到&#xff0c;所以进程之间要交换数据必须通过内核&#xff0c;在内核中开辟…

美国人测评马斯克的星链服务: 现实太骨感,梦想已破灭

来源&#xff1a; 风闻社区、3D实验室最近看到外国人测评马斯克的starlink服务&#xff0c;满篇吐槽&#xff0c;无数缺陷&#xff0c;而且都是原理上无法克服的那种缺陷&#xff0c;跟大家分享一下。首先星链服务不是你想像的那种一卡在手&#xff0c;天下我有的服务。用它之前…

编译过程中的链接地址对最终编译镜像文件的影响

MDK和交叉编译工具编译时都会指定程序的下载的地址&#xff08;其实就是告诉程序它将在那个地址上开始执行&#xff09;&#xff0c;这有什么意义吗&#xff1f; 其实这么设计有原因的&#xff0c;因为这里涉及到全局变量和全局函数指针的地址问题&#xff0c;加入当你在编译时…

三维空间中曲线绕任意轴旋转所得的旋转曲面求法

三维空间中曲线绕任意轴旋转所得的旋转曲面求法 对2023汤家凤考研高等数学讲义225页2.三维空间直线旋转曲面的解释和推广 ©️ sylvanding

彩图完美解释:麦克斯韦方程组

来源&#xff1a;微波射频网麦克斯韦方程组麦克斯韦方程组&#xff08;英语&#xff1a;Maxwells equations&#xff09;是英国物理学家麦克斯韦在19世纪建立的描述电磁场的基本方程组。它含有四个方程&#xff0c;不仅分别描述了电场和磁场的行为&#xff0c;描述了它们之间的…

基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道

作者&#xff1a;尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理&#xff08;一&#xff09;&#xff1a;严格模式流量泳道中&#xff0c;我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求&#xff0c;只需…

中国世界工厂地位为什么不会动摇

来源&#xff1a;工信头条文&#xff1a;赵一之在贸易保护主义和疫情的双重影响下&#xff0c;中国作为世界工厂是否会面临大规模制造业外迁&#xff0c;是时常引起关注的问题。复杂产品的供应链彼此环环相扣&#xff0c;缺失任何一环&#xff0c;都会影响到整个行业。疫情指出…

一文彻底解决YOLOv5训练找不到标签问题

YOLOv5 训练找不到标签, No labels found in /path/train.cache 问题的解决方法(亲测可用) ❤️ 网上绝大部分教程所述解决方法都不靠谱&#xff0c;也没有分析问题发生的原因&#xff0c;本文彻底解决了YOLOv5训练时找不到标签&#xff0c;出现 No labels found in /path/trai…

yolov5踩坑记录:标签错位(PIL读取图片方向异常)

PIL踩坑记录&#xff1a;读取图片方向异常&#xff08;yolov5标签错位&#xff09; 奇怪的现象 今天用 YOLOv5 做项目时&#xff0c;对数据集的标记出现了奇怪的现象&#xff0c;在下述测试用例中可明显看到&#xff0c;标记框偏离了物体&#xff0c;故发文阐述原因和解决方法…

理解与理论:人工智能基础问题的悲观与乐观

来源&#xff1a;筑土为坛梅剑华&#xff0c;男&#xff0c;1980年生&#xff0c;湖北秭归人&#xff0c;山西大学哲学社会学院教授&#xff0c;博士生导师&#xff0c;先后赴美国罗格斯大学、匹兹堡大学、奥地利萨尔茨堡大学等访学&#xff0c;研究方向是语言哲学与心灵哲学、…

设计模式系列 - 原型模式

所谓原型模式是指为创建重复对象提供一种新的可能。 介绍 当面对系统资源紧缺的情况下&#xff0c;如果我们在重新创建一个新的完全一样的对象从某种意义上来讲是资源的浪费&#xff0c;因为在新对象的创建过程中&#xff0c;是会有系统资源的消耗&#xff0c;而为了尽可能的节…