理论分析IRLS迭代加权最小二乘法(根据Gorodnitsky and Rao)

       最近在拜读Michael Elad的《Sparse and Redundant Representations》,里面关于IRLS的讲解比较透彻(根据Gorodnitsky and Rao的理论),从理论到算法的过程,和大家分享一下。知识水平有限,望各位指出错误,不吝赐教。

一. 阅读以下内容需具备的知识基础

1. SVD分解

       可以参考:https://www.cnblogs.com/xiaohuahua108/p/6137783.html?utm_source=itdadao&utm_medium=referral(此链接未经原作者允许,请见谅。若原作者看到此引用认为不妥,请告知,笔者将第一时间处理)。

2. 伪逆

       可以参考::https://blog.csdn.net/you1314520me/article/details/78857759。(此链接未经原作者允许,请见谅。若原作者看到此引用认为不妥,请告知,笔者将第一时间处理)。

二. IRLS是什么?

        IRLS是Iterative-Reweighed-Least-Squares是缩写,由Gorodnitsky and Rao提出,是FOcal Underdetermined System
Solver (FOCUSS) algorithm家族中的方法之一,主要作用顾名思义是解决欠定系统问题,也就是众所周知的P0问题。该方法属于凸松弛(Convex Relaxation)技术,其核心思想是通过将L0-norm松弛化(relaxation),把高度不连续的问题松弛化为连续的甚至是光滑逼近(smooth approximation)。

三. IRLS详解

       一种L0-norm松弛化的技术即是IRLS,该方法将l_{p}-norm (p\in (0,1])代替为加权l_{2}-norm。首先,构造对角矩阵X_{k-1}=diag(\left |x_{k-1} \right |^{q})。在这里x_{k-1}是前一次迭代产生的近似解,将该解(列向量)的所有元素取绝对值的q次方,依次作为对角线元素,其余非对角线元素均为0,构造出X_{k-1},例如:

X_{k-1}=\begin{vmatrix} \left |x_{11} \right |^{q}& 0 &0 \\ 0& \left |x_{22} \right |^{q} &0 \\ 0&0 & \left |x_{33} \right |^{q}} \end{vmatrix}

      假如X_{k-1}主对角元素有0值,则X_{k-1}的逆不存在,则利用伪逆来代替,表示为X_{k-1}^{+}。为啥提到伪逆呢,因为要给X_{k-1}对角元素加上-q次方。对角方阵的伪逆,实际上是各个主对角元素分之一,例如:

X_{k-1}^{+}=\begin{vmatrix} \left |x_{11} \right |^{-q}& 0 &0 \\ 0& \left |x_{22} \right |^{-q} &0 \\ 0&0 & \left |x_{33} \right |^{-q}} \end{vmatrix}

      在此,引入\left \|\mathbf{X}_{k-1}^{+}\mathbf{x} \right \|_{2}^{2}(符号使用不太规范,从这里开始都规范起来。。)。这时有

\left \|\mathbf{X}_{k-1}^{+}\mathbf{x} \right \|_{2}^{2}=\left \|\mathbf{x} \right \|_{2-2q}^{2-2q}

     这里其实是范数运算和矩阵运算,不理解的话可以自己演算一下。可以看到,等式右侧是解的(2-2q)范数。特殊的,当q=1时,则\left \|\mathbf{x} \right \|_{2-2q}^{2-2q}=\left \|\mathbf{x} \right \|_{0}^{0}。也就是说,可以利用\left \|\mathbf{X}_{k-1}^{+}\mathbf{x} \right \|_{2}^{2}这个2范数来模拟(imitates)0范数。这个过程就是IRLS的核心思想。当然,剩下的过程也很重要。回到问题的最初,\mathbf{Ax}=\mathbf{b},我们要求\mathbf{x}是最稀疏的,也就是\left \|\mathbf{x} \right \|_{0}^{0}最小,数学表示如下:

\underset{\mathbf{x}}{min} \left \|\mathbf{x} \right \|_{0}^{0} s.t. \mathbf{Ax}=\mathbf{b} \Rightarrow \underset{\mathbf{x}}{min} \left \|\mathbf{X}_{k-1}^{+}\mathbf{x} \right \|_{2}^{2} s.t. \mathbf{Ax}=\mathbf{b}

       引入拉格朗日乘子,求最优解 :

     则有

       因为X_{k-1}^{+}只有对角线元素非零(当然对角线也可能有0元素),(X_{k-1}^{+})^{-1}可能不存在,但是取其伪逆,相当于是将非零对角线元素取-1次幂,那么又变为了\mathbf{X}_{k-1},因此才有上式。

       此时另外一个问题出现了,此时的解中还含有未知量,需要将其消去。此时,可以将上式得到的解\mathbf{x}_{k}代入到约束条件\mathbf{Ax}=\mathbf{b}

       得到了的表达式,将其代入到中,得到\mathbf{x}_{k}的最终表达式

       此处使用伪逆代替,以防止不可逆。关于如何求伪逆,文章第一章推荐的博客有详细讲解,求伪逆需要用到SVD,因而也推荐了SVD详细讲解。

四. IRLS解P_{p}问题的策略

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值