system: [SYSTEM]

user: 3. 基于改进的近似l 0 范数的稀疏信号重构算法 3.1. 改进的近似l 0 范数 为了提高近似函数对l 0 范数的逼近程度，本文采用一种改进的非凸光滑函数近似l 0 范数： f σ ( x ) = 1 − e − c | x | σ 2 (4) 其中c为大于等于1的常数， σ ( 0 < σ < 1 ) 为控制参数。 文献 [ 13 ] 和 [ 16 ] 中分别采用了以下两种函数来近似l 0 范数： p σ ( x ) = 1 − e − x 2 2 σ 2 、 h σ ( x ) = 1 − e − | x | σ ( | x | + σ ) 下面从几何图像和理论分析上说明本文提出的函数 f σ ( x ) 比函数 p σ ( x ) 和 h σ ( x ) 更逼近l 0 范数。 1) 几何图像分析 函数 f σ ( x ) 、 p σ ( x ) 和 h σ ( x ) 的几何图像如图1所示，可以看出，函数 f σ ( x ) 的图像曲线相比于其他两种函数更陡峭，即函数 f σ ( x ) 对l 0 范数的逼近效果更好。 图1. σ = 0.1 ， c = 1 时三种函数的对比图 2) 理论分析 假定 x ≥ 0 ，则对区间内任意 σ ( σ ≠ 0 ) 有 p σ ( x ) = 1 − e − x 2 2 σ 2 、 h σ ( x ) = 1 − e − x σ ( x + σ ) 、 f σ ( x ) = 1 − e − c x σ 2 ， 因为 h σ ( x ) − p σ ( x ) = e − x 2 2 σ 2 − e − x σ ( x + σ ) (5) 所以比较函数 p σ ( x ) 和 h σ ( x ) 的大小只需要比较他们的指数大小，易得： − x 2 2 σ 2 − ( − x σ ( x + σ ) ) = x σ ( 1 x + σ − x 2 σ ) ≥ 0 (6) 因此 h σ ( x ) ≥ p σ ( x ) ； 同理 f σ ( x ) − h σ ( x ) = e − x σ ( x + σ ) − e − c x σ 2 (7) 因为 − x σ ( x + σ ) − ( − c x σ 2 ) = x σ ( c σ − 1 x + σ ) ≥ 0 (8) 所以 f σ ( x ) ≥ h σ ( x ) 。 利用函数对称性， x < 0 时也可类似讨论。因此可以得到 p σ ( x ) ≤ h σ ( x ) ≤ f σ ( x ) ，即当 x ≠ 0 时，函数 f σ ( x ) 对应的函数值比其他两种函数对应的函数值更加接近于1，这意味着函数 f σ ( x ) 比其他两种函数更逼近l 0 范数。 3.2. 算法实现 下面基于所改进的函数 f σ ( x ) 对(3)式进行求解。令 x = u − v ，其中 u ， v ∈ R n ，u为x中所有的正元，其余元素为零；v为x中所有负元的绝对值，其余元素也为零，利用 z = [ u T ， v T ] T ∈ R 2 n 表示拼接向量。 经过替换，可得： F σ ( z ) = F σ ( x ) = ∑ i = 1 2 n ( 1 − e − c z i σ 2 ) (9) 此时约束条件 A x = b 转化为 [ A ， − A ] z = b ，所以(3)式转化为： min z F σ ( z )         s .t .     [ A ， − A ] z = b ， z ≥ 0 (10) 为了方便求解(10)式，利用非凸函数 F σ ( z ) 的一阶判别条件及优化最小化(Majorize-Minorize， MM)方法 [ 17 ] 对目标函数 F σ ( z ) 进行放缩，可得： F σ ( z ) ≤ F σ ( z ˜ ) + 〈 z − z ˜ ， ∇ F σ ( z ˜ ) 〉 ≤ F σ ( z ˜ ) + 〈 z − z ˜ ， ∇ F σ ( z ˜ ) 〉 + λ ( ‖ z − z ˜ ‖ 2 2 + ‖ z − z ˜ ‖ 1 ) (11) 记 H σ ( z ， z ˜ ) = F σ ( z ˜ ) + 〈 z − z ˜ ， ∇ F σ ( z ˜ ) 〉 + λ ( ‖ z − z ˜ ‖ 2 2 + ‖ z − z ˜ ‖ 1 ) (12) 其中 z ， z ˜ 为可行域中的点， λ ( λ > 1 / σ 2 ) 为常值，则 H σ ( z ， z ˜ ) 为 F σ ( z ) 的一个上界函数。 忽略常值后，则(10)式的解由下式迭代求得： z k + 1 σ = arg min z { 〈 ∇ F σ ( z k σ ) ， z 〉 + λ ( ‖ z − z k σ ‖ 2 2 + ‖ z − z k σ ‖ 1 ) | [ A ， − A ] z = b ， z ≥ 0 } (13) 其中 z k σ ( k = 1 ， 2 ， 3 ， ⋯ ) 为可行域中的点，取值与 σ 有关。 令 { 〈 ∇ F σ ( z ˜ σ ) ， z 〉 + λ ( ‖ z − z ˜ ‖ 2 2 + ‖ z − z ˜ ‖ 1 ) = G ( z ) [ A ， − A ] z − b = H ( z ) = ( h 1 ( z ) ， ⋯ ， h m ( z ) ) T z = W ( z ) = ( w 1 ( z ) ， ⋯ ， w 2 n ( z ) ) T 则(13)可简记为： min z G ( z )         s .t .     H ( z ) = 0 ， W ( z ) ≥ 0 (14) 因此，(3)式的优化问题转化为(14)式的优化问题。 本文利用外点罚函数法 [ 18 ] 和共轭梯度法迭代求解(14)式，具体步骤如下： 利用外点罚函数法引入正数M，本文取 M = 1 ，放大倍数为5，将(14)式转化为以下无约束问题： z k + 1 σ = arg min z L z k σ ( z ， M ) (15) 其中 L z k σ ( z ， M ) = 〈 ∇ F σ ( z k σ ) ， z 〉 + λ ( ‖ z − z k σ ‖ 2 2 + ‖ z − z k σ ‖ 1 ) + M ( I T ⋅ U ( z ) + I T ⋅ H ( z ) ) (16) 式中I为 2 n × 1 的单位向量， U ( z ) = ( min ( 0 ， z 1 2 ) ， ⋯ ， min ( 0 ， z 2 n 2 ) ) T ， H ( z ) = d i a g ( [ A ， − A ] z − b ) ⋅ ( [ A ， − A ] z − b ) ，则函数 L z k σ ( z ， M ) 有关z的一阶、二阶次梯度 [ 19 ] 分别为： ∇ L z k σ ( z ， M ) = ∇ F σ ( z k σ ) + λ ( 2 ( z − z k σ ) + sgn ( z − z k σ ) ) + 2 M { V ( z ) + [ A ， − A ] T ⋅ ( [ A ， − A ] z − b ) } (17) ∇ 2 L z k σ ( z ， M ) = 2 λ I + 2 M ⋅ [ A ， − A ] T [ A ， − A ] I (18) 其中 V ( z ) = ( min ( 0 ， z 1 ) ， ⋯ ， min ( 0 ， z 2 n ) ) T 。 再利用共轭梯度法迭代求解(15)式的 z k + 1 σ ，其迭代更新格式为： z t + 1 = z t + α t ⋅ p t (19) 其中步长因子为： α t = ‖ ∇ L z k σ ( z t ， M ) ‖ 2 2 p t T ⋅ ∇ 2 L z k σ ( z t ， M ) ⋅ p t (20) 下降方向为： p t = − ∇ L z k σ ( z t ， M ) + p t − 1 ⋅ ρ t − 1 (21) 其中令 z k σ = z 0 ， p 0 = − ∇ L z k σ ( z 0 ， M ) ， ρ t − 1 = ‖ ∇ L z k σ ( z t ， M ) ‖ 2 2 ‖ ∇ L z k σ ( z t − 1 ， M ) ‖ 2 2 。 综上所述，本文所提出的INCS算法的流程如下： Step 1输入：矩阵A、测量向量b， ε 1 ， ε 2 ， ε 3 > 0 ； Step 2初始化： 1) 设置递减序列 σ ， σ k + 1 = β σ k ，其中 0 < β < 1 ， β 为 σ 的递减因子，本文设置 β = 0.5 ， σ 0 = 2 max ( | x 0 | ) ； 2) 设置初始值： x 0 = arg min x { ‖ x ‖ 1 | A x = b } ， z 0 = [ ( x 0 + ) T ， ( x 0 − ) T ] T ； Step 3算法迭代： 1) k = 0 ， σ = σ 0 ； 2) while d 1 > ε 1 do 1：{ z ^ 0 = z k ， l = 0 ， k = k + 1 ， 2：while d 2 > ε 2 do 3：{ l = l + 1 ， 4： z ^ l = arg min z { G l − 1 ( z ) | [ A ， − A ] z = b ， z ≥ 0 } ， 5： d 2 = ‖ z ^ l − z ^ l − 1 ‖ 2 ‖ z ^ l − 1 ‖ 2 } 6： z k = z ^ l ， 7： d 1 = ‖ z ^ k − z ^ k − 1 ‖ 2 ‖ z ^ k − 1 ‖ 2 ， 8： σ = β σ }， 9： x k = z k ( 1 : n ) − z k ( n + 1 : e n d ) ， 10： W = 1 | x k − 1 | + ε 3 ， 11： x k = arg min x { ‖ W x ‖ 1 | A x = b } ； Step 4输出稀疏向量： x = x k 。 其中Step 3由内、外两部分循环构成。外循环由步骤1~2及6~8组成，通过参数 σ 实现函数 f σ ( x ) 对 l 0 范数的逐次逼近；内循环为步骤3~5，利用外点罚函数法和共轭梯度法迭代求解步骤4；并将求得的解利用加权 l 1 范数最小化 [ 20 ] 进行稀疏化处理。 d 1 和 d 2 分别表示外、内循环连续迭代的解之间的相对误差，并用于判断循环是否停止。