低秩矩阵分解算法——迭代阈值算法

迭代阈值算法-Iterative Thresholding

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

前言

低秩稀疏理论在数字图像处理中有着非常广泛的应用,相关的求解算法也很多,本文主要介绍一下迭代阈值算法 (Iterative Thresholding,IT) 在高光谱影像数据分解中的应用。

迭代阈值算法

假设原始的高光谱数据维 X ∈ R r × c × b X \in \mathbb{R}^{r\times c\times b} XRr×c×b,其中 r r r c c c b b b 分别表示高光谱影像的行、列和波段。而矩阵分解操作一般处理的都是二维矩阵,而高光谱影像数据本身维三维矩阵,因此在进行运算之前,我们首先需要将三维的高光谱数据转换(reshape)为二维矩阵,然后进行后续的操作。 D ∈ R N × b D \in \mathbb{R}^{N\times b} DRN×b,此处 N = r × c N=r \times c N=r×c,表示高光谱影像中的像元个数。 D D D就是reshape之后的二维矩阵。
m i n A , E = ∥ A ∥ ∗ + λ ∥ E ∥ 1 , s . t . D = A + E (1) min_{A,E}= \|A\|_*+\lambda \|E\|_1, \quad s.t. D=A+E \tag{1} minA,E=A+λE1,s.t.D=A+E(1)
RPCA(Robust Principal Component Analysis)算法求解的实质就是解决上述公式1中的凸优化问题,而迭代阈值算法解决了公式(1)中所描述的问题,具体算法如下:
m i n A , E = ∥ A ∥ ∗ + λ ∥ E ∥ 1 + 1 2 τ ∥ A ∥ F 2 + 1 2 τ ∥ E ∥ F 2 , s . t . D = A + E (2) min_{A,E}= \|A\|_*+\lambda \|E\|_1+\frac{1}{2\tau}\|A\|_F^2+\frac{1}{2\tau}\|E\|_F^2, \quad s.t. D=A+E \tag{2} minA,E=A+λE1+2τ1AF2+2τ1EF2,s.t.D=A+E(2)
其中, τ \tau τ是一个大的正标量,因此目标函数只是受到轻微的扰动。为了去掉等式的限制条件,在公式(2)的求解过程中引入拉格朗日乘子 Y Y Y,因此,公式(2)的拉格朗日函数为:
L ( A , E , Y ) = ∥ A ∥ ∗ + λ ∥ E ∥ 1 + 1 2 τ ∥ A ∥ F 2 + 1 2 τ ∥ E ∥ F 2 + 1 τ < Y , D − A − E > , s . t . D = A + E (3) L(A,E,Y)= \|A\|_*+\lambda \|E\|_1+\frac{1}{2\tau}\|A\|_F^2+\frac{1}{2\tau}\|E\|_F^2\\+\frac{1}{\tau}<Y,D-A-E> , \quad s.t. D=A+E \tag{3} L(A,E,Y)=A+λE1+2τ1AF2+2τ1EF2+τ1<Y,DAE>,s.t.D=A+E(3)
然后通过迭代阈值算法迭代升级 A A A E E E Y Y Y。通过固定 Y Y Y,并最小化 L ( A , E , Y ) L(A,E,Y) L(A,E,Y),来升级 A A A E E E。然后在进行 Y Y Y 的升级。其中,需要介绍一下软阈值操作(收缩操作),具体如下:
S ε [ x ] = { x − ε , i f x > ε x + ε , i f x < − ε 0 , o t h e r w i s e (4) S_\varepsilon[x]=\left\{ \begin{aligned} &x - \varepsilon, \quad if \quad x > \varepsilon \\ &x + \varepsilon, \quad if \quad x<- \varepsilon \\ &0, \quad otherwise \end{aligned} \right. \tag{4} Sε[x]=xε,ifx>εx+ε,ifx<ε0,otherwise(4)
其中, x ∈ R x \in \mathbb{R} xR ε > 0 \varepsilon>0 ε>0,该操作可以扩展到向量或者矩阵(通过逐个值操作)。此时我们需要注意到,对A和E进行升级时,分别要求 ∥ ⋅ ∥ ∗ \|\centerdot\|_* ∥ ⋅ ∥ 1 \|\centerdot\|_1 1相关的式子,此时用到一个等价操作,分别用于核范数最小化问题和 l 1 l_1 l1范数最小化问题的求解,具体如下:
U S ε [ S ] V T = a r g m i n X   ε ∥ X ∥ ∗ + 1 2 ∥ X − W ∥ F 2 核 范 数 求 解 式 ( 用 于 升 级 A ) (5) US_\varepsilon[S]V^T=argmin_{X} \ \varepsilon\|X\|_{*}+\frac{1}{2}\|X-W\|_{F}^2 \qquad 核范数求解式(用于升级A) \tag{5} USε[S]VT=argminX εX+21XWF2A(5)
S ε [ W ] = a r g m i n X   ε ∥ X ∥ 1 + 1 2 ∥ X − W ∥ F 2 l 1 范 数 求 解 式 ( 用 于 升 级 E ) (6) S_\varepsilon[W]=argmin_{X} \ \varepsilon\|X\|_{1}+\frac{1}{2}\|X-W\|_{F}^2 \qquad l_1范数求解式(用于升级E) \tag{6} Sε[W]=argminX εX1+21XWF2l1E(6)
其中的 U S V T USV^T USVT W W W 的奇异值分解操作。需要注意的是:使用上述公式 (5)-(6) 进行求解需要对公式(3)进行化简,具体这里不再赘述,感兴趣可以下载笔者分分享的RPCA和LRR算法基inexact ALM算法的具体求解文档,里面有详细的介绍:RPCA和LRR具体求解推导文档 。在此处只需要按照下面的IT算法的伪代码编程即可,程序中没有用到公式(5)-(6) 。

在IT算法中,具体的迭代阈值运算过程如下:
在这里插入图片描述
尽管IT算法非常简单且可以证明是正确的,但它需要进行大量的迭代才能收敛,并且难以选择步长 δ k \delta_k δ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.

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
矩阵恢复算法是一类用于从部分观测数据中恢复完整矩阵算法矩阵恢复在许多领域中都有广泛的应用,如图像处理、视频压缩、信号处理等。 综述这一领域的算法非常庞大,我将为你简要介绍几种常见的矩阵恢复算法: 1. 矩阵补全算法(Matrix Completion):基于矩阵补全的算法通过最小化矩阵或核范数来恢复矩阵。其中,核范数被广泛应用于补全矩阵的目标函数中,例如基于核范数的矩阵补全(RPCA)算法。 2. 基于凸优化的方法:凸优化方法利用了矩阵恢复问题的凸性质,通过最小化一个带有约束的目标函数来恢复矩阵。例如,使用核范数作为凸优化目标函数的代理,然后通过求解核近似或核替代问题来实现矩阵恢复。 3. 迭代阈值算法迭代阈值算法是一类基于迭代优化的方法,通过交替最小化的策略,迭代地更新矩阵或核范数。典型的算法有奇异值软阈值算法(SVT)、交替方向乘子法(ADM)等。 4. 基于稀疏表示的方法:基于稀疏表示的方法假设矩阵可以通过少量列向量的线性组合来表示,进而通过求解稀疏表示问题来恢复矩阵。例如,利用稀疏表示和字典学习的矩阵恢复(LRMR)算法。 需要注意的是,不同的矩阵恢复算法在性能和复杂度上可能存在差异,适用于不同场景。因此,在具体应用中,需要根据问题的特征选择适合的算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值