稀疏编码系列:

  • (一)----Spatial Pyramid 小结
  • (二)----图像的稀疏表示——ScSPM和LLC的总结
  • (三)----理解sparse coding
  • (四)----稀疏模型与结构性稀疏模型

---------------------------------------------------------------------------

本文的内容主要来自余凯老师在CVPR2012上给的Tutorial。前面在总结ScSPM和LLC的时候,引用了很多Tutorial上的图片。其实这个Tutorial感觉写的挺好的,所以这次把它大致用自己的语言描述一下。不过稀疏编码是前两年比较火的东西,现在火的是deep learning了。

1、What is sparse coding?

1988年,神经稀疏编码的概念由Mitchison提出,由牛津大学的Rolls等正式引用。灵长目动物颚叶视觉皮层和猫视觉皮层的电生理实验报告和一些相关模型的研究结果都说明了视觉皮层复杂刺激的表达是采用稀疏编码原则的。研究表明:初级视觉皮层V1区第四层有5000万个(相当于基函数),而负责视觉感知的视网膜和外侧膝状体的神经细胞只有100万个左右(理解为输出神经元)。说明稀疏编码是神经信息群体分布式表达的一种有效策略。1996年,加州大学伯克利分校的Olshausen等在Nature杂志发表论文指出:自然图像经过稀疏编码后得到的基函数类似V1区简单细胞感受野的反应特性(空间局部性、空间方向性、信息选择性)。

典型的sparse coding的过程分为训练和测试。

Training:给定一些训练样本(training samples)[ x1, x2, …, xm(in Rd)],学习一本字典的基(bases)[Φ1,Φ2……(also in Rd)]。可是用k-means等无监督的方法,也可以用优化的方法(这时training完了同时也得到了这些training samples的codes,这是一个LASSO和QP问题的循环迭代);

Coding:用优化的方法求解测试样本的codes(此时字典已经学得)。经典的方法是求解LASSO:

                  (1)

自我学习就是在Training的时候采用大量无标注的自然图像训练字典,然后对带标注的图像进行编码得到特征codes。

2、Connections to RBMs, autoencoders

(1)式(经典的稀疏编码)有几个特点:

——系数a是稀疏的;

——a的维数一般比x的维数大;

——编码过程a=f(x)是一个非线性的关于x的隐函数(即我们没有f(x)的显示表达,因为求解LASSO没有解析解);

——重建过程x'=g(a)是一个线性的显示的关于a的函数(X’=ΣaiΦi)。

而RBM和自编码的特点则是:

——有显示的f(x);

——不会必然得到稀疏的a,但是如果我们增加稀疏的约束(如稀疏自编码,稀疏RBM),通常能得到更好的效果(进一步说明sparse helps learning)。

从广义上说,满足这么几个条件的编码方式a=f(x)都可以叫稀疏编码:

1) a是稀疏的,且通常具有比x更高的维数;

2) f(x)是一个非线性的映射;(jiang1st2010注:该条要求存疑,见下面解释。)

3) 重建的过程x'=g(a),使得重建后的x'与x相似。

因此,sparse RBM,sparse auto-encoder,甚至VQ都可以算是一种sparse coding。(jiang1st2010注:第二条要求称f(x)是一个非线性映射,然而SPM中用到的VQ是一个线性映射,原因可以参见这里和这里。余凯老师也是LLC论文的作者,似乎存在矛盾?不过这是个小问题了,没必要深究。)

3、Sparse activations vs. sparse models

现在可以用a=f(x)表示稀疏编码的问题了。它可以分解成两种情况:

1)sparse model:f(x)的参数是稀疏的

--例如:LASSO f(x)=<w,x>,其中w要求是稀疏的。(jiang1st2010注:这个例子中f(x)也是线性的!)

--这是一个特征选择的问题:所有的x都挑选相同的特征子集。

--hot topic.

2)sparse activation:f(x)的输出是稀疏的

--就是说a是稀疏的。

--这是特征学习的问题:不同的x会激活不懂的特征子集。

                  

4、Sparsity vs. locality

其实这个问题在这里已经谈过了。简单的说就是sparsity不一定导致locality,而locality肯定是sparse的。sparse不比locality好,因为locality具有smooth的特性(即相邻的x编码后的f(x)也是相邻的),而仅仅sparse不能保证smooth。smooth的特性对classification会具有更好的效果,并且设计f(x)时,应尽量保证相似的x在它们的codes中有相似的非0的维度。

Tutorial上展示了(1)中取不同的λ,字典中各项呈现的效果:

   

   

作者想说明的问题是分类效果越好的情况下,basis会更清晰地表现出属于某几个特定的类。但是我没太看明白。

5、Hierarchical sparse coding

这里图3曾说明了SIFT本身就是一个Coding+Pooling的过程,所以SPM是一个两层的Coding+Pooling。而Hierarchical sparse coding就是两层的coding都是sparse coding,如下图:

整个HSC的第一层就从pixel层级开始(不需要手动设计SIFT特征了),经过两层SC后,形成codes。这个过程可以从无标注的数据中学习,就是self-taught learning。从pixel层级开始,这点和DNN啥的很像了。

从结果来看,HSC的性能会比SIFT+SC稍微好些。

Tutorial的最后列举了关于SC的其他主题,我也不懂,这里就不废话了。

-----------------

作者:jiang1st2010

转载请注明出处:http://blog.csdn.net/jwh_bupt/article/details/9902949

理解sparse coding相关推荐

  1. sparse coding

    稀疏编码系列: (一)----Spatial Pyramid 小结 (二)----图像的稀疏表示--ScSPM和LLC的总结 (三)----理解sparse coding (四)----稀疏模型与结构 ...

  2. Sparse coding:

    本节将简单介绍下sparse coding(稀疏编码),因为sparse coding也是deep learning中一个重要的分支,同样能够提取出数据集很好的特征.本文的内容是参考斯坦福deep l ...

  3. Sparse coding(稀疏编码)

    转自:http://www.cnblogs.com/tornadomeet/archive/2013/04/13/3018393.html 本节将简单介绍下sparse coding(稀疏编码),因为 ...

  4. 【sparse coding】【转】sparse coding稀疏表达论文列表

    http://www.sigvc.org/bbs/thread-57-1-1.html 1 What is the Goal of Sensory Coding:   介绍了两种sensory cod ...

  5. 深度学习笔记9 Sparse coding

    转载:http://blog.csdn.net/zouxy09/article/details/8777094/ 如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O = a1*Φ ...

  6. Efficient Sparse Coding Algorithm

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://www.stanford.edu/~hllee/nips06-sparsecoding.pd ...

  7. Deep Learning:Sparse Coding ScSPM LLC

    转自 Deep Learning:Sparse Coding ScSPM & LLC 最近看了余凯的CVPR12 Tutorial on Deep Learning(下载),在此记录下自己的一 ...

  8. NON-NEGATIVE SPARSE CODING论文部分翻译

    非负稀疏编码论文:NON-NEGATIVE SPARSE CODING X=AS,其中A是混合矩阵,它的列包含分解的基向量(特征),S的行包含相应的隐藏分量,这些分量给出了输入向量中每个基向量的贡献. ...

  9. ISTA-NAS: Efficient and Consistent Neural Architecture Search by Sparse Coding

    论文题目:ISTA-NAS: Efficient and Consistent Neural Architecture Search by Sparse Coding 作者:Yibo Yang.Hon ...

最新文章

  1. 离散数学专业术语(continuous updating)
  2. 网站网页编写需要注意哪些问题?
  3. PHP错误处理 - debug_backtrace()的用法
  4. springboot使用mybatis_使用springboot+mybatis数据库存储服务化
  5. 03K个数或第k个数算法
  6. Spring4.3.10 集成 Apache CXF 3.3 详细说明
  7. 全网首发:编译链接错误:对‘vtable for xxxx’未定义的引用
  8. OpenCms for MySql安装
  9. 凑微分公式_第一换元积分法(13种常用的凑微分公式)☀成考·高数二辅导
  10. 中国历史上最美的十首古诗词,美到了极致
  11. NPOI导出Excel 65536限制
  12. java语言中如何表示素数,使用Java语言求素数的几个方法
  13. 一键智能抠图-原理与实现
  14. android studio高德地图的显示于定位(附带逆地理编码围栏)
  15. 框架:什么是框架?为什么要使用框架?框架有什么作用
  16. R语言——Error in plot.window(...) : ‘xlim‘值不能是无限的
  17. Windows10LTSC wsapp 高CPU占用
  18. Processing编程入门-02——添加图片 小游戏
  19. 调研分析-全球与中国方形电源连接器市场现状及未来发展趋势
  20. 查看笔记本电池健康度的两种方法和电池报告解析

热门文章

  1. http请求限制和http连接限制
  2. cad怎样转换成pdf格式?四个步骤完成
  3. 【渝粤题库】陕西师范大学200541 英语教学法
  4. 如何避免“Windows Defender SmartScreen阻止无法识别的应用程序启动警告”
  5. Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证
  6. Python数据可视化第四节-图表样式美化实例
  7. hadoop生态圈详解
  8. FFMPEG监控拉流,向流媒体服务器推流
  9. 关于一个web站点的欢迎页面
  10. 在职场如何应对他人的关注