压缩感知入门①从零开始压缩感知


  • 压缩感知系列博客:
  • 压缩感知①从零开始压缩感知
  • 压缩感知②信号的稀疏表示和约束等距性

文章目录

  • 1. Problem Formulation
  • 2. Simulation
  • 3. Algorithm

1. Problem Formulation


考虑一个线性方程组求解问题:
A x = b (1) A x = b \tag{1} Ax=b(1)

其中, A ∈ R m × n A \in\mathbb R^{m\times n} ARm×n x ∈ R n × 1 x \in\mathbb R^{n\times 1} xRn×1 b ∈ R m × 1 b \in\mathbb R^{m\times 1} bRm×1 m ≪ n m \ll n mn

这是一个欠定方程组,即该问题有无穷多解,那么如何添加一些约束,使得能够在这组无穷多解中找到一个最优的呢?

试试考虑一下稀疏性。

什么是稀疏性?通俗来讲,如果一个信号中仅有少量的大值,其余都是零,那么这个信号是稀疏的(或者说仅有少量的值相对于其他的值明显大得多)。稀疏性意味着信号是可压缩的,因为在数据表达时只需要考虑大值信号的位置和大小。

回到这个欠定方程组求解问题,如果待求解信号 x x x是稀疏的,那么无穷多组解中找到最稀疏的那个解即为所求。该问题可以表达为一个 l 0 l _0 l0范数优化问题,即
m i n ∥ x ∥ 0 s . t .   A x = b (2) min \parallel x \parallel_0 \quad s.t. \ Ax=b \tag{2} minx0s.t. Ax=b(2)

其中 ∥ x ∥ 0 \parallel x \parallel_0 x0表示 x x x的0范数,即为 x x x中非零值的个数,该问题是一个NP-hardness问题1,求解相当困难。

幸运的是,当 A A A b b b满足RIP条件时2,问题 (2) 可以等价于求解一个 l 1 l_1 l1范数优化问题,即
m i n ∥ x ∥ 1 s . t .   A x = b (3) min \parallel x \parallel_1 \quad s.t. \ Ax=b \tag{3} minx1s.t. Ax=b(3)

其中 ∥ x ∥ 1 \parallel x \parallel_1 x1表示 x x x的1范数,即为 x x x中元素的绝对值之和。这是一个 l 1 l_1 l1范数的凸优化问题(基追踪问题),存在最优解。

l 1 l_1 l1范数优化问题可以转化为一个标准的线性规划问题进行求解3,即
m i n    c T θ s . t .   Φ θ = s (5) min\ \ c^T\theta \quad s.t. \ \Phi \theta=s \tag{5} min  cTθs.t. Φθ=s(5)

其中 c T = [ 1 , 1 , . . . , 1 ] ∈ R 1 × 2 n ,    θ = [ u ; v ] ∈ R 2 n × 1 ,    Φ = [ A , − A ] ∈ R m × 2 n ,    s = b ∈ R m × 1 c^T=[1,1,...,1]\in\mathbb R^{1\times2n},\;\theta=[u;v]\in \mathbb R^{2n \times1},\; \Phi=[A, -A]\in \mathbb R^{m \times2n},\;s=b\in\mathbb R^{m\times1} cT=[1,1,...,1]R1×2n,θ=[u;v]R2n×1,Φ=[A,A]Rm×2n,s=bRm×1

最后 x = u − v x=u-v x=uv

2. Simulation


压缩感知入门①从零开始压缩感知_第1张图片

3. Algorithm


clear
close all
M = 40;
N = 100;
K = 10;
x = zeros(N,1);
ind = randperm(N);  
x(ind(1:K)) = 10*randn(K,1);
A = randn(M,N);
b = A * x;
%% signal reconstruction
x0 = CS_linprog(A,b);
%% error analysis
plot(x);hold on
plot(x0,'*')
function x=CS_linprog(A,b)
    len=size(A,2);
    Phi=[A,-A];
    s=b;
    c=ones(1,2*len);
    lb=zeros(1,2*len);
    theta = linprog(c,[],[],Phi,s,lb);
    x=theta(1:len)-theta(len+1:2*len);
end
https://github.com/dwgan/Compressed-Sensing-Basic-Pursuit.git

参考4


  1. https://www.jianshu.com/p/58fea4d97b2a ↩︎

  2. D. L. Donoho, “Compressed sensing,” IEEE Transactions on Information Theory, vol. 52, no. 4, pp. 1289-1306, 2006, doi: 10.1109/TIT.2006.871582. ↩︎

  3. S. S. Chen, D. L. Donoho, and M. A. Saunders, “Atomic Decomposition by Basis Pursuit,” SIAM Review, vol. 43, no. 1, pp. 129-159, 2001/01/01 2001, doi: 10.1137/S003614450037906X. ↩︎

  4. https://blog.csdn.net/jbb0523/article/details/51986554#t5 ↩︎

你可能感兴趣的:(Compressed,Sensing,压缩感知)