system: [SYSTEM]

user: 4. 基于分式惩罚函数的块稀疏信号重构FP B -DC算法 前面介绍块稀疏信号恢复的方法可以建立在 l 2 / l 1 范数上，但是由于数据之间还存在很大的冗余性没有去除这一问题，就会降低我们需要精确重构的测量次数。而FP 0 优化问题能够很好的代替不连续函数 ‖ x ‖ 0 ，并且得到无约束FP 0 优化问题的最优解是局部最优解这一结论。因此，我们考虑将分式惩罚函数及块稀疏性进行结合，将问题(3)式进行优化，本文将研究基于分式惩罚函数的块稀疏信号重构，即FP B 优化问题。我们利用块分式函数 ∑ i = 1 m a ‖ x [ i ] ‖ 2 a ‖ x [ i ] ‖ 2 + 1 代替 l 2 / l 1 范数 ‖ x ‖ 2 ， 1 ，将 l 2 / l 1 范数优化问题转化为(FPB) 优化问题，对信号的稀疏性进行正则化约束。最终，对DC算法(差分凸函数算法)进行改进，提出新的算法即FP B -DC算法，并且采用ADMM算法解决其凸 l 2 ， 1 正则化子问题。 考虑以下无约束FP B 优化问题 min { P a B ( x ) + 1 2 λ ‖ B x − y ‖ 2 2 } (7) 其中 P a B ( x ) = ∑ i = 1 m a ‖ x [ i ] ‖ 2 a ‖ x [ i ] ‖ 2 + 1 。 4.1. DC算法 DC算法 [ 19 ] (差分凸优化算法)充分利用了凸分析方法可以将非凸优化问题转化为凸优化问题，而且该算法的特点是收敛速度快；在此之前先介绍一下DC函数。 DC函数定义如下： 若D是 R N 的一个凸子集，对于实值函数 F ( x ) ： D → R ，如果存在两个下半连 续凸函数 V ( x ) ， L ( x ) ： D → R ，并且满足 F ( x ) = V ( x ) − L ( x ) ，则称函数 F ( x ) 在D上是DC的。若 D = R N ，就称 F ( x ) 为DC函数。 V ( x ) ， L ( x ) 叫做DC直流分解，是关于 F ( x ) 的分量。无约束DC规划问题如以下表达式 min { F ( x ) = V ( x ) − L ( x ) : x ∈ R N } (8) 利用函数 L ( x ) 在当前迭代点 x k 处的仿映射来近似代替函数L，即 L k ( x ) ≥ L ( x k ) + 〈 x − x k ， z k 〉 ，     z k ∈ ∂ L ( x k ) DC算法中包含两个数列 { x k } ， { z k } ， { z k } 是 L ( x ) 在 x k 处的次梯度，有以下迭代计算： { z k ∈ ∂ L ( x k ) ， x k + 1 = arg min x ∈ R N V ( x ) − ( L ( x k ) + 〈 x − x k ， z k 〉 ) ， x k + 1 为 V ( x ) − ( L ( x k ) + 〈 x − x k ， z k 〉 ) 的最小解，证明如下： L ( x ) ≥ L ( x k ) + 〈 z k ， x − x k 〉 ，     ∀ x ∈ R n 特别的是 L ( x k + 1 ) ≥ L ( x k ) + 〈 z k ， x k + 1 − x k 〉 ， F ( x k ) = V ( x k ) − L ( x k ) ≥ V ( x k + 1 ) − ( L ( x k ) + 〈 z k ， x k + 1 − x k 〉 ) ≥ V ( x k + 1 ) − L ( x k + 1 ) = F ( x k + 1 ) 因此该迭代产生了一个单调递减序列 { F ( x k ) } ，并且它的收敛性证明了 F ( x ) 是有界的。 4.2. FP B -DC算法 考虑(7)式无约束FP B 优化问题 min { P a B ( x ) + 1 2 λ ‖ B x − y ‖ 2 2 } 其中 P a B ( x ) = ∑ i = 1 m a ‖ x [ i ] ‖ 2 a ‖ x [ i ] ‖ 2 + 1 。我们可以进行DC分解，令 V ( x ) = 1 2 ‖ B x − y ‖ + λ ‖ x ‖ 2 ， 1 ， L ( x ) = λ ‖ x ‖ 2 ， 1 − λ P a B ( x ) ，即 { F ( x ) = V ( x ) − L ( x ) ; V ( x ) = 1 2 ‖ B x − y ‖ 2 2 + λ ‖ x ‖ 2 ， 1 ; L ( x ) = λ ‖ x ‖ 2 ， 1 − λ P a B ( x ) . 因为 ‖ x ‖ 2 ， 1 是可微的， ∀ x ≠ 0 ， ∂ ‖ x ‖ 2 ， 1 = { x [ i ] ‖ x [ i ] ‖ 2 } i = 1 m ，当 x = 0 时， 0 ∈ ∂ ‖ x ‖ 2 ， 1 ，又因为 z k ∈ ∂ L ( x k ) ，所以 z k = λ x k ‖ x k ‖ 2 − λ b x k b ‖ x k ‖ 2 2 + ‖ x k ‖ 2 + λ b 2 x k ( b ‖ x k ‖ 2 + 1 ) 2 因此有如下的迭代结果： x k + 1 = { arg min x ∈ R N { 1 2 ‖ B x − y ‖ 2 2 + λ ‖ x ‖ 2 ， 1 } ，     x k = 0 arg min x ∈ R N { 1 2 ‖ B x − y ‖ 2 2 + λ ‖ x ‖ 2 ， 1 − 〈 x ， z k 〉 } ，     x k ≠ 0 关于上式的终止条件是 ‖ x k + 1 − x k ‖ 2 → 0 当 k → ∞ ，即对于给定的 σ > 0 ，有 ‖ x k + 1 − x k ‖ 2 max { ‖ x k ‖ 2 ， 1 } < σ 。 每迭代一次，我们需要求解一次凸 l 2 / l 1 正则化子问题，即 x k + 1 = arg min x ∈ R N { 1 2 ‖ B x − y ‖ 2 2 + λ ‖ x ‖ 2 ， 1 − 〈 x ， z k 〉 } (10) 事实上，该问题是一个无约束 l 2 / l 1 范数优化问题，在本文中我们用ADMM算法求解。 4.3. ADMM算法解决凸子问题 在DC迭代中，需要解决以下形式的凸子问题 min x ∈ R N 1 2 ‖ B x − y ‖ 2 2 − 〈 x ， z 〉 + λ ‖ x ‖ 2 ， 1 (11) z ∈ R N ，是一个常数向量。关于上式问题可以通过交替方向乘子法(ADMM)，ADMM算法既有乘子法的强收敛性，又有对偶上升法的分解性。它利用一种交替求解的想法，将大的全局问题分解为容易求解的、小的局部子问题，再通过协调子问题的解来得到全局问题的最优解。这是一种多用途的算法，在文献 [ 20 ] 中首次引入，将(11)式重新定义为下面式子 min x ， c ∈ R N 1 2 ‖ B x − y ‖ 2 2 − 〈 x ， z 〉 + λ ‖ c ‖ 2 ， 1 ，     subject   to     x − c = 0 (12) 形成拉格朗日函数： L μ ( x ， c ， d ) = 1 2 ‖ B x − y ‖ 2 2 + 〈 x ， z 〉 + λ ‖ c ‖ 2 ， 1 + d T ( x − c ) + μ 2 ‖ x − c ‖ 2 2 其中y是拉格朗日乘数， μ > 0 是惩罚参数，ADMM迭代步骤如下： { x l + 1 = arg min x L μ ( x ， c l ， d l ) ， c l + 1 = arg min c L μ ( x l ， c ， d l ) ， d l + 1 = d l + μ ( x l + 1 − c l + 1 ) . 在x的更新步骤中， B ∈ R M × N ， y ∈ R M ，则x的更新结果如下： x l + 1 = ( B T B + μ I ) − 1 ( B T y − z + μ c l − d l ) 在c的更新步骤中，我们需要定义一个软阈值函数 ( S ( x ， t ) ) i = sgn ( x i ) max { | x | − t ， 0 } 则c的更新结果如下 c l + 1 = S ( x l + 1 + d l μ ， λ μ ) ADMM算法的停止条件是： ‖ t l ‖ 2 ≤ n ξ a b s + ξ r e l max { ‖ x l ‖ 2 ， ‖ c l ‖ 2 } ， ‖ s l ‖ 2 ≤ n ξ a b s + ξ r e l ‖ d l ‖ 2 ， 其中 t l = x l − c l ， s l = c l − c l − 1 是原始残差和对偶残差，特别地，在第l次迭代中， ξ a b s > 0 是绝对容错度， ξ r e l > 0 是相对容错度。