迭代阈值算法-Iterative Thresholding
欢迎学习交流!
[email protected]
前言
低秩稀疏理论在数字图像处理中有着非常广泛的应用,相关的求解算法也很多,本文主要介绍一下迭代阈值算法 (Iterative Thresholding,IT) 在高光谱影像数据分解中的应用。
迭代阈值算法
假设原始的高光谱数据维X∈Rr×c×b,其中r、c、b 分别表示高光谱影像的行、列和波段。而矩阵分解操作一般处理的都是二维矩阵,而高光谱影像数据本身维三维矩阵,因此在进行运算之前,我们首先需要将三维的高光谱数据转换(reshape)为二维矩阵,然后进行后续的操作。D∈RN×b,此处N=r×c,表示高光谱影像中的像元个数。D就是reshape之后的二维矩阵。
minA,E=∥A∥∗+λ∥E∥1,s.t.D=A+E(1)
RPCA(Robust Principal Component Analysis)算法求解的实质就是解决上述公式1中的凸优化问题,而迭代阈值算法解决了公式(1)中所描述的问题,具体算法如下:
minA,E=∥A∥∗+λ∥E∥1+2τ1∥A∥F2+2τ1∥E∥F2,s.t.D=A+E(2)
其中,τ是一个大的正标量,因此目标函数只是受到轻微的扰动。为了去掉等式的限制条件,在公式(2)的求解过程中引入拉格朗日乘子Y,因此,公式(2)的拉格朗日函数为:
L(A,E,Y)=∥A∥∗+λ∥E∥1+2τ1∥A∥F2+2τ1∥E∥F2+τ1<Y,D−A−E>,s.t.D=A+E(3)
然后通过迭代阈值算法迭代升级 A,E 和 Y。通过固定Y,并最小化 L(A,E,Y),来升级 A 和 E。然后在进行 Y 的升级。其中,需要介绍一下软阈值操作(收缩操作),具体如下:
Sε[x]=⎩⎪⎨⎪⎧x−ε,ifx>εx+ε,ifx<−ε0,otherwise(4)
其中,x∈R,ε>0,该操作可以扩展到向量或者矩阵(通过逐个值操作)。此时我们需要注意到,对A和E进行升级时,分别要求∥⋅∥∗和∥⋅∥1相关的式子,此时用到一个等价操作,分别用于核范数最小化问题和l1范数最小化问题的求解,具体如下:
USε[S]VT=argminX ε∥X∥∗+21∥X−W∥F2核范数求解式(用于升级A)(5)
Sε[W]=argminX ε∥X∥1+21∥X−W∥F2l1范数求解式(用于升级E)(6)
其中的 USVT 是 W 的奇异值分解操作。需要注意的是:使用上述公式 (5)-(6) 进行求解需要对公式(3)进行化简,具体这里不再赘述,感兴趣可以下载笔者分分享的RPCA和LRR算法基inexact ALM算法的具体求解文档,里面有详细的介绍。在此处只需要按照下面的IT算法的伪代码编程即可,程序中没有用到公式(5)-(6) 。
在IT算法中,具体的迭代阈值运算过程如下:

尽管IT算法非常简单且可以证明是正确的,但它需要进行大量的迭代才能收敛,并且难以选择步长δk 进行加速,因此其适用性受到限制。
参考文献:
[1] Lin, Z., Chen, M. and Ma, Y., 2010. The augmented lagrange multiplier method for exact recovery of corrupted low-rank matrices. arXiv preprint arXiv:1009.5055.