\qquad现有一个求稀疏编码的问题:
minz0s.t. x=Dz \min \parallel z \parallel_0 \quad s.t. \ x=Dz
\qquad其中DRn×mD\in \mathbb{R}^{n\times m}, zRmz\in \mathbb{R}^{m}xRnx\in \mathbb{R}^{n} 的 sparse code.
\qquad 解决上式是一个复杂度随 m 以指数级增长的组合问题,最常见的解决方法是将 l0l_0 范数替换为 l1l_1范数.即目标函数变为:
argminD,z12xDz22+λz1 arg\min_{D,z} \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1
\qquad假设 D 已给定,即:
argminz12xDz22+λz1 arg\min_{z} \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1

\qquad对于凸二范数 f1= 12xDz22f_1=\ \frac{1}{2}\parallel x-Dz \parallel_2^2,叫做reconstruction 项,它的函数是这样的
稀疏编码的经典解法——ISTA算法的推导
\qquad对于凸一范数 f2=λz1f_2=\lambda\parallel z \parallel_1,叫做sparsity penalty 项,它的函数是这样的,故其导数为符号函数。
稀疏编码的经典解法——ISTA算法的推导
\qquad现在我们来求解这个目标函数,即得到使 ff 值最小时的zz.将函数变形为:
f=f1+f2= 12xDz22+λz1=12(xDz)T(xDz)+λz1 \begin{aligned} f&=f_1+f_2\\ &=\ \frac{1}{2}\parallel x-Dz \parallel_2^2 + \lambda \parallel z \parallel_1\\ &=\frac{1}{2}(x-Dz)^T(x-Dz)+\lambda\parallel z \parallel_1\\ \end{aligned}
\qquad故可以梯度下降法来求 z. 对ffxx 的偏导:
fz=f1z+f2z=DT(Dzx)+λsign(z) \begin{aligned} \frac{\partial f}{\partial z}&=\frac{\partial f_1}{\partial z}+\frac{\partial f_2}{\partial z}\\ &=D^T(Dz-x)+\lambda sign(z) \end{aligned}
\qquad 对于reconstruction 项
zk+1=zkαDT(Dzx)z^{k+1}=z^k-\alpha D^T(Dz-x)
\qquad 对于penalty 项zk+1=zkαλsign(z)z^{k+1}=z^k-\alpha\lambda sign(z)
\qquad问题来了,符号函数 sign(z)sign(z) 在 0 处是不可微的
\qquad解决办法:如果 l1norml_1 norm 的梯度因为 zz 而改变符号,则将其设为 0 ,即
if:sign(z)sign(zαλsign(z))thenz=0else:z=zαλsign(z) if:\quad sign(z)\neq sign(z-\alpha \lambda sign(z)) \quad then \quad z=0\\ else: \quad z=z-\alpha \lambda sign(z)

\qquad上面的两项的处理过程概括起来就是 ISTA算法

1.初始化 z(0)=0z^{(0)}=0
2.当 z(k)z^{(k)} 未收敛

zk=zkαDT(Dzx)z^{k}=z^{k}-\alpha D^T(Dz-x)
zk+1=shrink(zk,αλ)z^{k+1}=shrink(z^k,\alpha \lambda)

shrink:\qquad shrink:用来查看函数值是否:不变 / 变0
\qquad总结上述步骤:
zk+1=Sαλ(zk+αDT(xDz))zk+1=SλL(zk+1LDT(xDz))(α=1L) \begin{aligned} z^{k+1}&=S_{\alpha \lambda}(z^{k}+\alpha D^T(x-Dz))\\ z^{k+1}&=S_{\frac{\lambda}{L}}(z^{k}+\frac{1}{L} D^T(x-Dz)) \quad(\alpha=\frac{1}{L}) \end{aligned}
\qquad只有当 Lσmax(DTD)L \geq \sigma_{max}(D^TD) 时,才能保证收敛性σmax(A)\sigma_{max}(A) 表示 AA 的最大特征值,soft thresholding function Sθ(x)S_{\theta}(x) 定义为:
Sθ(x)=sign(x)max(xθ,0)S_{\theta}(x)=sign(x) \cdot max(|x|-\theta,0)
稀疏编码的经典解法——ISTA算法的推导

相关文章:

  • 2021-08-19
  • 2022-01-03
  • 2021-11-11
  • 2021-08-18
  • 2021-06-02
  • 2022-01-10
  • 2022-01-08
  • 2022-03-08
猜你喜欢
  • 2021-05-23
  • 2021-08-09
  • 2022-12-23
  • 2021-05-31
  • 2022-12-23
  • 2021-12-20
相关资源
相似解决方案