陆吾生感知压缩视频笔记

Lecture 1

Key: sparse & incoherence

Sparse: There is not too much informations. 比如一个长度为1024个向量,即有1024个分量,但其中只有几十个分量不为0,则这个向量就称为sparse vector。

CS只在很稀疏的情况下才成立。除了白噪声,其他所有信号(音乐、图像、股市等)都可以看做sparse。

取样方式与传统不同,CS可以取更小的点,比如1000长度的信号,可以只取300次。还原信号时要有算法,能够从很小的样本来还原很大的信息(Reconstruction)。

2006年被认为是CS开创的年代。

Shannon-Nyquist Sampling Theorem

A continuous-time signal x(t) with frequencies no higher than $f_{max}$(上届频率,band-limit) can be reconstructed from its samples $x[k]=x(kT_s)$, if the smaples are taken at a rate $f_s =1/T_s$ that is greater than $2f_{max}$。

如果一个函数的傅里叶变换后,在某一个区域之外都为零,则这个函数一定可以通过采有限的点来完美的恢复出来。该定理在根本上解决了对连续信号采样后可以完美恢复信号的问题。

一个连续函数在正实轴上无线衍生,上面有无穷个点(countless),我们定义为有$\aleph$个,然后我们等间隔取样,取无穷个点(countable),我们定义为$\aleph_0$个,两者的关系为$\aleph=2^{\aleph}$。

一个实值的函数的傅里叶变换后得到的是一个复值函数,在频率域中做模值关于频率的函数得到的一定是对称的。

对于模拟信号采样后的信号,得到傅里叶变换信号是周期的;这时如果采样频率不足,则不同周期的傅里叶谱会有信号重合,也就无法进行回复。如果采样频率满足采样定律的话,则可以使用一个低通滤波器来取出信号,用以恢复原来的信号。

连续信号通过采样得到的取样信号:

$$x_s(t)=x(t)s(t)=x(t)\sum_{k=-\infty}^{\infty} \delta(t-kT_s)=\sum_{k=-\infty}^{\infty}x(t)\delta(t-kT_s) =\sum_{k=-\infty}^{\infty}x(kT_s)\delta(t-kT_s)$$

上述说的在频率域通过一个盒状低通滤波器来取样,可以理解为在时域通过一个sinc函数来卷积,于是(利用$\delta$的取样特性)

$$\han{x}(t)=sinc(\frac{t}{T_s})\ast \sum_{k=-\infty}^{\infty}x(kT_s)\delta(t-kT_s)=\sum_{k=-\infty}^{\infty}x[k]sinc[(t-kT_s)/T_s] \ (x[k]=x(kT_s))$$

Sparse and Compressible Signals

一个向量长度为n,即有n个分量,如果里面的非零分量有r个,且r<<n,我们说这个向量是sparse

如果一个矩阵为A,则matlab中a = A(:); 可以生成一个向量,长度为A的所有元素。 我们将向量a左乘一个正交矩阵,比如余弦矩阵,那么得到的y可能就是一个sparse的,同时由于矩阵各列正交,则y与a的能量不变。为了让y稀疏,采取阈值方法,比如y中所有模值低于$\epsilon$的都归为零,则相当于对y进行了sparse。Matlab代码可以写为:

ind = find(abs(y)<$\epsilon$);

y_sparse = y;

y_sparse(ind) = 0;

如果矩阵为小波矩阵,字典矩阵,那么测得y的稀疏性更好。

 

Lecture 2

数字信号指的是两个坐标方向都离散化(时间离散、信号离散)digital signal。

Shannon-Nyquist采样公式中,关键在于采样率是否超过两倍的带 宽。

数字信号中,我们得到一个向量$[x_1, x_2, … , x_n]^T$,这里的$n$理解为你的采样率,即单位时间采样的点数。

下图稍微介绍了一下关于矩阵的理解,可以看做信号往矩阵基向量上的投影。(个人认为基用矩阵列向量来构成也可以)

所以关于CS,我们要做的便是争取做更好的投影使达到sparse的效果。

这里给出离散余弦矩阵(DCT)的表达形式(这是一种non-adaptive):

Matlab代码为:

如果采用小波基,这里原理忽略,关键在于理解小波是一个滤波器,长度较短(一般是2),所以要重复针对均值部分进行处理。

在利用小波做处理的时候,通过将差频信息制零,就可以是的小波处理过的信息sparse。需要特别注意的是,做小波处理的前提是能够取得全部的信息,然后做处理之后再丢掉大部分数据。

Overcompleted Dictionary

如果一个信号f在矩阵W的作用下,可以得到一个稀疏表示a,即$Wf=a$。那么反过来,$f=W^T a$,表示一个信号可以用一个矩阵和一个稀疏系数表示。如果我将$W^T$进行扩展,虽然稀疏系数的分量增加,但其更加稀疏。

Lecture 3

字典D是一个$n\times l$的矩阵,每一列是一个atom,于是信号f可以表示为:$f=Dx$。

Hadmader-Walsh 矩阵,最后一步的作用是让每列正交。

方程$y=Dx$的解全部可以由字典$D$的KVD后的结果表示。其中要求D是一个长矩阵$l\times n, l >n$,且$rank(D)=n$

解的形式表示为特解+通解:$x=x_s + V_n \phi$。其中$x_s=D^T(DD^T)y$;$V_n$是字典D在SVD($D=U\SigmaV^T$)之后得到V($l\times l$)矩阵从第$n+1$列到$l$列组成的新矩阵;$\phi$是自由向量,任意一个都满足其解。

引入范数(norm)概念:for $1 \leq p < \infty, ||x||_p = ( \sum_{i=1}^n ||x_i||^p )^{\frac{1}{p}} $ 其中p为0(特殊,x中不为0的个数),1,2,$\infty$最为常用。对于一个范数,必须满足:

  1. $||x||\geq 0$
  2. $||x||=0 \Longleftrightarrow x = 0$
  3. $||\alpha x||=|\alpha| ||x||$
  4. $||x+y||\leq ||x|| + ||y||$

当p小于1的时候,上述的4个条件并不都满足。所以严格来说,$l_0$-norm,其实不是norm,因为在小于1的时候就已经不能说是norm了。

所以CS问题变为: $min ||x||_0 s.t. Dx=y$ 但是这变成了NP-hard问题,实际的处理方式是求解$min ||x||_1 s.t. Dx=y$

由于$l_1$范数中有绝对值,求模的和是个困难问题,通过增加条件来是问题改变,即最小化模的上界的和:

$$min \sum_{i=1}^n d_i \ \ s.t. |\theta_i| \leq d_i , D\theta = x$$ 通过增加条件(由1个变为2n+1个),可以使得求解问题以及条件中不存在绝对值运算。

Coherence Between two Bases

我们构建字典D的时候,让其有两个部分组成,即$D=[\Phi \Psi]$,这两个方阵都是正交矩阵,那么如何判断这两个矩阵组成的字典D是否合适?

我们说这两个基最好incoherence,即相互独立最好。核心式子:

$$\mu(\Phi, \Psi) = \sqrt{n} \bullet max_{l\leq k, j\leq n} |\phi_k^T \psi_j|$$

于是我们的$\mu$测量的是两个矩阵最大的相关性,范围是$[1, \sqrt{n}]$,其中越接近1,表明两个矩阵越不相关,用以做字典D的效果越好。

Lecture 4

针对两种基(方阵$n\times n$)$\Phi \Psi$,可以理解为一个字典的两个部分,也可以理解为一个系统的两个部分。这两个基的关系可以看做字典的性质或者系统的性质。下面几种情况效果比较好:

$\mu(I_n, C_n^T)=\sqrt{2}, \mu(I_n, F_n^T)=1, \mu(I_n, H_n)=1$

其中第一个矩阵如果不用单位阵,而是一个随机矩阵,效果往往会得到提高。

Sensing a sparse signal

$y=\Phi \theta$

如果$\theta$是稀疏的,那么我们通过测量到的$y$,就可以想办法去还原$\theta$。问题变为:

$min ||\theta||_1 \ \ s.t. y=\hat{\Phi} \theta $

这里说明一下用到的一些数字:n,向量长度;m,采样数;r,在某个基下面的稀疏情况(即非零个数)。那么一般我们的目标是r < m << n(m > Cr log n , m>4r)。由于$\Phi$是$n\times n$,则$\hat{\Phi}$是$m\times n$的矩阵,其中m行是完全随机取。

对于范数的几何图形,可以理解,最小化问题看做一个直线方程,只有当该直线交于坐标轴的时候,能够保证某几个分量为0,也就是达到了sparse情况,所以要用$l_1$范数去逼近。

实际问题变为:$x=\Psi \theta, y=\hat{\Phi}x $

$$min ||\theta||_1 \ \ s.t. \hat{\Phi} \Psi \theta = y$$

同时CS的抗噪能力较好,只要选取的变换域信号在里面足够sparse。

Lecture 5

Proximal-Gradient Methods for Convex Optimization Problems

如果一个函数可以分成两部分F(x)=f(x)+g(x),且这两部分一个可微,一个不可微。

Lipschitz梯度函数满足:,$L(f)$称之为Lipschitz 常数

由于函数有上式的表示,最左边是条直线,右边是二次项,抛物线,最优化函数$f(x)$难度较大,我们采取最小化右式二次项表达式。

Frobenius Norm: $||x||_F=\sqrt{\sum_{j=1}^m \sum_{i=1}^n x_{ij}^2}$

TV norm : $||x||_{TV}=\sum_{j=1}^m \sum_{i=1}^n ||D_{ij}x||, \ \ ||D_{ij}x||=[x(i+1, j)-x(i, j) , x(i, j+1) – x(i, j)]^T$

将问题转为凸函数问题,然后进行猜解,再迭代优化。

迭代过程:$x_k=x_{k-1}-t_k \bigtriangledown f(x_{k-1}) $ 其中$t_k$是个常数,如果我们令整个常数为Lipschitz常数的倒数,这个过程一定是收敛的。

上式用matlab可以去较好的解出。

Lecture 6

目标函数:$F(x)=f(x)+g(x)$,两个部分都是凸函数,但一个光滑($||\bigtriangledown f(x)- \bigtriangledown f(y)|| \leq L(f)||x-y||$),一个不光滑。

Matlab中,矩阵与矩阵的乘法非常耗时,要争取通过提取公因式等方法编程矩阵与向量相乘。

图像处理中,不用$l_1$ norm,用的是TV。

 

 

 

 

 

 

 

 

 

posted @ 2014-03-10 20:21  朝拜SUNS  阅读(1931)  评论(0编辑  收藏  举报