TwIST算法


软阈值(Soft Thresholding)函数

参考资料:

软阈值函数一般写作:

对于优化问题:

的解为:$soft(B,\frac{\lambda}{2}) $

因此同理,对于优化问题$\arg\min_x\frac1 2|X-B|_2^2+\lambda|X|_1$,可以等价为优化问题$\arg\min_x|X-B|_2^2+2\lambda|X|_1$,因此解为:$soft(B,\lambda)$

python可以这么实现soft函数:

1
2
def soft(x,T):
return np.sgn(x) * np.maximum(0, np.fabs(x)-T)

Majorization-Minimization 优化框架

当目标函数$J(x)$比较难优化的时候,我们可以寻找另外一个更易优化的函数$G(x)$,当$G(x)$满足一定条件时,它的最优解能够无限逼近$J(X)$的最优解。

$G(x)$应该满足3个条件:

  1. 容易优化
  2. $G_k(x)\ge J(x_k)\ \ for\ \ all \ \ x$
  3. $G_k(x_k)=J(x_k)$

迭代软阈值(Iterative Soft Thresholding, IST)

对于基追踪降噪问题(Basis Pursuit De-Noising, BPDN):

对于目标函数 $f(x) = \frac 1 2 |y-\Phi x|_2^2 + \lambda|x|_1$,并不容易优化,更具MM框架,将其替代为目标函数:$u(x,z) = \frac 1 2 |y-\Phi x|_2^2 + \lambda|x|_1 - \frac 1 2 |\Phi x-\Phi z|_2^2 + \frac 1 2 |x-z|_2^2$

其中,由 $|\Phi|_2<1$,得到: $u(x,z)\ge f(x),u(z,z) = f(z)$

化简该函数,可以得到:

其中,K与x无关,于是原问题等价于优化:

其中,$x^* = z+\Phi^T(y-\Phi z)$

显然,这个问题的解就是软阈值函数 $soft(x^*,\lambda)$


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!