稀疏表示 字典学习

来源:互联网 发布:沈阳网络团队组建 编辑:程序博客网 时间:2024/04/29 15:54

链接:稀疏表示(sparse representation)和字典学习

近十几年来,稀疏(sparsity)已经成为信号处理及其应用领域中处于第一位的概念之一。近来,研究人员又致力于过完备(overcomplete)信号表示的研究。这种表示不同于许多传统的表示。因为它能提供一个广阔范围的生成元素(atoms)。而冗余(redundant)信号表示的魅力正在于其能经济地(紧致)的表示一大类信号。对稀疏性的兴趣源自于新的抽样理论-压缩传感(compressed sensing)的发展,压缩传感是香农采样理论的一种替代,其利用信号本身是稀疏的这一先验,而香农理论是设计用于频率带宽有限的信号的。通过建立采样和稀疏的直接联系,压缩传感在大量的科学领域,如编码和信息论,信号和图像采集处理,医学成像,及地理和航天数据分析等都得到应用。压缩传感的另一贡献是许多传统的逆问题,如断层图像重建,可以看作压缩传感问题。这类病态(ill-posed)问题需要正则化。压缩传感对寻求系数性解的方法给出了强大的理论支持。

1、什么是稀疏性

设信号x是RN的有限维子空间向量,x=[x[1],x[2],...,x[N]], 如果x的绝大多数元素都为0,则x是严格稀疏的。

如果信号不稀疏,它却可能在某种变换域中稀疏。我们可以用T个基本波形(signal atoms)的线性组合来建模x,有

x=  φa=sum(a[i]φ[i])

其中a[i]称为在字典φ中信号x的表示系数。

2、稀疏性的几个名词

1)原子(atom) 如前所述,原子是信号表示模板的元素。

2)字典  许多原子的排序集合,可看作是一个NxT的矩阵,如果T>N, 则为过完备或冗余字典。


参考文献:

Sparse image and signal processing.


链接:研究领域总结(一):稀疏——字典学习

I.稀疏模型
  稀疏模型是最近几年比较hot的技术,在信号处理(压缩感知)、计算机视觉(比如JPEG压缩)领域影响比较大,在机器学习框架则可以看做是一种特征处理相关的模型。
  
具体的,稀疏表示是指在超完备字典D(超完备是说字典行数小于列数)中用尽可能少的原子来表示信号x,即:minα∥α∥0,s.t.x=Dα。考虑噪声就是,minα∥x−Dα∥22+λ∥α∥0,α的size比x大很多,但是非零元素比[Math Processing Error]x的size小很多很多。
  稀疏的优点主要在于它是非线性模型,所以表达能力更强。具体来说,每个信号稀疏系数的非零元素位置不同(所谓的support),所以每个信号可以看做被投影到了不同的线性子空间,这是和正交字典-PCA之类的最大区别。而为什么在视觉图像里应用尤其多,也正是因为每张图像(如人脸)可以看做处于高维空间的一个低维子空间上(其实还有些研究用流形做子空间建模的)。
  稀疏模型研究方向主要包括系数求解(即上面那个问题,经典算法有OMP贪心、lasso凸松弛和1/2非凸松弛),字典学习(获得更好的D,经典算法有MOD和K-SVD交替迭代)和模型应用。


II.字典学习
  显然稀疏表达的效果好坏和我们用的字典有着密切的关系。字典分两类,一种是预先给定的分析字典,比如小波基、DCT等,另一种则是针对特定数据集学习出特定的字典。这种学出来的字典能大大提升在特定数据集的效果。
  给定训练样本X={xi∥i=1n,我们要所有样本在字典[Math Processing Error]D上有稀疏表达W={wi}i=1n,所以优化目标是
minD,W∥X−DW∥F2,s.t.∥wi∥0≤s.  
  这个目标函数非凸,一般用交替迭代思想来解,即分别固定D和W,更新另一个,很多变种算法。目标函数分析起来比较难,所以这方面理论还比较弱,Agarwal,Gribonval等一帮人在搞。
  应用方面往往稀疏表达和字典学习是混杂的,这里主要介绍下图像去噪、超分辨率和人脸识别,这三个例子效果都很好,貌似已经拿到工业界用了。
  1.图像去噪(Elad)
  对一个noisy image,把一个patch看做一个sample或signal,比如可以是一个8乘8的patch,拉成一列64维的向量,一个image可以从左上角到右下角窗口1滑动采样得到很多这样的patch。
       (1)拿这些patches作为训练样本,用如K-SVD之类的算法可以学得字典D。(也可以用DCT等做字典)
     (2)用D对patch进行稀疏表达,拿稀疏系数再根据字典D重建patch,丢失掉的那部分信息主要就是噪声信息,这样就起到了去噪的作用(这是利用噪声的性质,去噪后整个图片会变得光滑)。
  2.超分辨率(MaYi)
    (1)最主要的假设是高分辨率图像的patches xh和对应的低分辨率图像的patches xl,在相应的字典Dh和Dl上有相同的系数。这样的话,就可以把低分辨率图像先根据Dl得到稀疏系数,再根据Dh重建patches。
  (2)剩下的问题是怎样学习得到Dl和Dh,即对于大量训练样本 patch-pairs  (Xl,Xh), 优化目标函数:
minDh,Dl,W∥Xh−DhW∥F2+∥Xl−DlW∥F2,s.t.∥wi∥0≤s.
  (3)Tricks: 对于Xl,特征用Bicubic和高通滤波做了拓展。
  (4)Elad学字典换了种方法,先K-SVD学Dl,而Dh通过下式


链接:稀疏编码之字典学习

稀疏信号的一个最重要的部分就是字典A。那么选择A?怎么样选择才是合理?
一、字典的选择和学习
如何选择合适的字典,一种基本的方法是选择预定义的字典,如无抽样小波、可操纵小波、轮廓博、曲波,等等。近期很多学者提出来主要针对图像的字典,特别是类似于“卡通”的图像内容,假设分段平滑并具有平滑边界。
这些提出的字典附有详细的理论分析,能够对简单信号建立稀疏表示系数。一个典型的应用时M项近似衰减率——用M个最佳的非零系数表示信号。
另一种选择字典的方法是可调节的——通过在特定参数(连续或者离散的)控制下生成基或帧。两个最熟知的例子就是小波包和Bandelets。
尽管预定义和自适应的字典通常具有较快的变换速度,他们无法处理稀疏信号,并且,这些字典限制于特定类型的图像和信号,无法应用于新的,任意类型的信号。因此我们需要寻找克服这些限制的新方法——通过一种学习的观点。
基于学习的方法首先需要构建一个训练信号集,然后构建一个经验学习字典,即通过经验数据中生成潜在的原子,而不通过理论模型。这样的字典可以实际应用,作为固定或冗余字典。
与预定义和自适应的字典不同,学习字典能够适用于符合稀疏场定义的任何类型的信号。然而,这将带来更重的计算负担,且只能应用于低维信号(至少目前为止是这样的)这是为什么这种方法只能应用于图像块。
二、字典学习算法
下面我们讨论如何用学习算法构建A,假设训练集yi已给出,且已知它是由未知的稀疏场模M生成的,这个训练集能否定义唯一的生成模型,并选择特定的字典A?这个问题比较复杂,由Field和Oishausen于1996年提出。
这里,我们介绍两个机制,第一个叫优化方向法(MOD),由Engan提出,第二个叫K-SVD,由Aharon提出。

0 0
原创粉丝点击