稀疏编码之字典学习

稀疏信号的一个最重要的部分就是字典A。那么选择A?怎么样选择才是合理?

一、字典的选择和学习

如何选择合适的字典,一种基本的方法是选择预定义的字典,如无抽样小波、可操纵小波、轮廓博、曲波,等等。近期很多学者提出来主要针对图像的字典,特别是类似于“卡通”的图像内容,假设分段平滑并具有平滑边界。

这些提出的字典附有详细的理论分析,能够对简单信号建立稀疏表示系数。一个典型的应用时M项近似衰减率——用M个最佳的非零系数表示信号。

另一种选择字典的方法是可调节的——通过在特定参数(连续或者离散的)控制下生成基或帧。两个最熟知的例子就是小波包和Bandelets.

尽管预定义和自适应的字典通常具有较快的变换速度,他们无法处理稀疏信号,并且,这些字典限制于特定类型的图像和信号,无法应用于新的,任意类型的信号。因此我们需要寻找克服这些限制的新方法——通过一种学习的观点。

基于学习的方法首先需要构建一个训练信号集,然后构建一个经验学习字典,即通过经验数据中生成潜在的原子,而不通过理论模型。这样的字典可以实际应用,作为固定或冗余字典。

与预定义和自适应的字典不同,学习字典能够适用于符合稀疏场定义的任何类型的信号。然而,这将带来更重的计算负担,且只能应用于低维信号(至少目前为止是这样的)这是为什么这种方法只能应用于图像块。

二、字典学习算法

下面我们讨论如何用学习算法构建A,假设训练集yi已给出,且已知它是由未知的稀疏场模M生成的,这个训练集能否定义唯一的生成模型,并选择特定的字典A?这个问题比较复杂,由Field和Oishausen于1996年提出。

这里,我们介绍两个机制,第一个叫优化方向法(MOD),由Engan提出,第二个叫K-SVD,由Aharon提出。

1.字典学习的核心内容

假设模型的偏差已知,我们的目的是估计A。考虑如下的优化问题:

2.MOD算法

显然,没有一种通用的算法可以求解(12.1)和(12.2),和我们无法求解(P0)的原因类似。然而,没有理由我们不去寻找一个启发式算法,并研究它在特殊情况下的执行表现。

我们可以将(12.1)看成一种嵌套最小化策略:在第k步,我们利用第k-1步得到字典A(k-1),对数据库中的M个实例yi求解对应的:这可以得到矩阵,然后我们通过最小二乘法求解

这里我们使用了Frobenius范数来评价误差(矩阵的F范数为矩阵中所有元素的平方和的平方根)。允许对获得的字典的元素进行缩放。递增k并重复上述循环,直到满足收敛准则。这样的块坐标松弛算法首先由Engan提出,称为最优方向法(Method of Optimal Direction,MOD),这个算法描述如图12.1

以下是本人对MOD算法的理解

1,匹配追踪算法

在分析该算法前,先介绍下匹配追踪算法

匹配追踪最早是时频分析的分析工具,目的是要将一已知讯号拆解成由许多被称作为原子讯号的加权总和,而且企图找到与原来讯号最接近的解。其中原子讯号为一极大的原子库中的元素。以数学式子表示可以得到:

其中,是权重,是由字典D中获得的原子讯号。

如同傅立叶级数将一讯号拆解成一系列的正弦波的相加,其中每个成分拥有不同的系数作为权重,其数学式子如下:

而匹配追踪也具有将讯号拆解成一系列原子相加的意涵,而甚至可以使用匹配追踪去描述傅立叶级数,也就是原子库对应到的所有正弦函数的集合

2.贪婪算法

为了找到最符合原讯号的一组原子加权总合,如果对原子库进行所有组合的尝试过于耗费时间。在1993年由Mallat SZhang Z的论文[1]中,提出了一个贪婪算法(Greedy Algorithm),并大幅降低找出近似解的时间。其作法首先在原子库中寻找与原讯号内积结果最大的原子,找到此讯号以及其内积结果之后再将原讯号减掉作为下一次重复运算的原始讯号,如此反复做下去即可得到一系列的以及原子,直到达到停止条件为止.

假设Y=D*X,Y为初始信号,大小为M*P,X是我们随机生成一个N*P大小的矩阵,那么初始字典就可以求得了

其详细的算法如下:

输入: Signal: , dictionary .
输出: List of coefficients: .
初始化:
;
;
重复:
find with maximum inner product ;
;
;
;
直到达到停止条件,例如:)
此时的是稀疏表示的

3.字典更新

2中的即为此式中的,将其代入,求解该方程的最小值,

到此获得最终的字典

初次接触,理解不到位,请各位大神多多指教

新浪微博http://blog.sina.com.cn/u/2029100307

时间: 2024-10-28 07:41:12

稀疏编码之字典学习的相关文章

稀疏表示、字典学习和压缩感知(基本概念)

稀疏表示与字典学习 当样本数据是一个稀疏矩阵时,对学习任务来说会有不少的好处,例如很多问题变得线性可分,储存更为高效等.这便是稀疏表示与字典学习的基本出发点. 稀疏矩阵即矩阵的每一行/列中都包含了大量的零元素,且这些零元素没有出现在同一行/列,对于一个给定的稠密矩阵,若我们能通过某种方法找到其合适的稀疏表示,则可以使得学习任务更加简单高效,我们称之为稀疏编码(sparse coding)或字典学习(dictionary learning). 给定一个数据集,字典学习/稀疏编码指的便是通过一个字典

稀疏表达和字典学习算法

LCKSVD  Label Consistent K-SVD: Learning A Discriminative Dictionary for Recognition   http://www.umiacs.umd.edu/~zhuolin/projectlcksvd.html The source code for submodular reranking for retrieval is released now! [project page] One paper is accepted

稀疏表示和字典学习

1. 引言 近年来,随着芯片.传感器.存储器以及其他硬件设备的快速发展,很多领域都面临着数据量过大.处理时间过长的问题.传统的信号处理方式已经无法满足人们对大量数据处理的需求,简洁.高效.稀疏的信号表示方法是人们研究.关注的热点.稀疏表示和字典学习方法在解决数据量过大的问题上有独特的优势,稀疏表示和字典学习方法最早用于压缩感知中信号处理问题,现在越来越多的研究者把稀疏表示用在图像处理.目标识别.机器视觉.音频处理等领域中.将稀疏表示和字典学习方法应用到图像处理上,可以简单.高效地将图像中的噪声分

稀疏编码直方图----一种超越HOG的轮廓特征

该论文是一篇来自CMU 的CVPR2013文章,提出了一种基于稀疏编码的轮廓特征,简称HSC(Histogram of Sparse Code),并在目标检测中全面超越了HOG(Histogram of Gradient)本文介绍HSC的思路及其计算过程. 如图3所示,HSC方法种采用了疏编码原理来提取图像特征的方法,即根据学习得到的字典对图像块Patch进行重新编码. 算法主要包括了两部分,分别是字典学习和特征提取. 字典学习. 1. 类似于基于K-Means方法的字典学习,稀疏编码的字典学习

深度学习浅层理解(四)-- 稀疏编码

借鉴前人的文章链接 http://blog.csdn.net/zouxy09/article/details/8777094 http://www.gene-seq.com/bbs/thread-2853-1-1.html http://ibillxia.github.io/blog/2012/09/26/convex-optimization-overview/ UFLDL教程 http://ufldl.stanford.edu/wiki/index.php/%E7%A8%80%E7%96%8

《神经网络与深度学习》(三) 稀疏编码

转自:http://www.cnblogs.com/caocan702/p/5666175.html 借鉴前人的文章链接 http://blog.csdn.net/zouxy09/article/details/8777094 http://www.gene-seq.com/bbs/thread-2853-1-1.html http://ibillxia.github.io/blog/2012/09/26/convex-optimization-overview/ UFLDL教程 http://

Dictionary Learning(字典学习、稀疏表示以及其他)

第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Dictionary Learning).该算法理论包含两个阶段:字典构建阶段(Dictionary Generate)和利用字典(稀疏的)表示样本阶段(Sparse coding with a precomputed dictionary).这两个阶段(如下图)的每个阶段都有许多不同算法可供选择,每种

转载:稀疏编码

原文地址:http://blog.csdn.net/jwh_bupt/article/details/9902949 Many thanks --------------------------------------------------------------------------- 本文的内容主要来自余凯老师在CVPR2012上给的Tutorial.前面在总结ScSPM和LLC的时候,引用了很多Tutorial上的图片.其实这个Tutorial感觉写的挺好的,所以这次把它大致用自己的语

稀疏编码(Sparse Coding)的前世今生(二)

为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),须要把他们转成数学语言,由于数学语言作为一种严谨的语言,能够利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方式把稀疏编码扩展到随时间变化的图像上,由于人类或者哺乳动物在日常活动中通过眼睛获取的信号是随时间变化而变化的,对于此类信号仍然有一些稀疏系数和基能够描写叙述他们,同类型的处理方式也有慢特征分析(slow features analysis).废话不多说了,进入正题: 我们把图像流(图像序列)看成时空