稀疏编码(sparse coding)和低秩矩阵(low rank)的区别

上两个小结介绍了稀疏编码的生命科学解释,也给出一些稀疏编码模型的原型(比如LASSO),稀疏编码之前的探讨文章就不说了,今天开始进入机器学习领域的稀疏表达。稀疏编码进入机器学习领域后,出现了很多应用,比如计算视觉领域的图像去噪,去模糊,物体检测,目标识别和互联网领域的推荐系统(Collaborative filtering)用到的low rank,其实sparsecoding和low rank有点区别,前者是稀疏系数,后者是稀疏基。就统称他们为稀疏表达吧。接下来简单的阐述下sparse coding和low rank的区别:

Sparsecoding就是围绕着开展工作,比如找到稀疏字典D和稀疏系数 alpha,如果X是人脸图像,训练的目标就是为了找到合适的字典基和一些系数的线性组合可以重建人脸X,假设训练样本有K类(即为K个人),每类有N个样本,那么D可表达为:

,其中下标i表示第i类。

不过还是要强调一下d表示一张图像向量,假设维度为m。这样某个样本可以表示为:

,其中

,这下终于和sparse coding扯上关系咯,alpha是稀疏的,好多0啊。如果假设图像还有一些噪声,那么再扩展一下,可以继续表示为:

到此位置机器学习的sparse coding模型基本就搭建好了,接着要做的就是对它求解,不得不说的是公式中都是未知数,看上去解很多,不过还有一个约束没用上,就是让alpha和e的非零个数尽可能的少,稀疏嘛,因此最终建立模型(公式一)所示:

(公式一)

对其优化求解就行了,常用的方法有coordinate descent和Orthogonal Matching Pursuit(OMP)方法,求解的alpha和e是稀疏的,但是求解方法主要看优化,各种优化算法层出不穷,这个话题就打住吧。

现在来看下low rank,先来看一个经典问题,如(图一)所示:

(图一)

(图一)是stanford人工智能教授andrew ng的课件截图,说的是四个人对不同电影打分,其中Alice和Bob偏向于喜欢看言情的浪漫电影,而Carol和Dave偏向于动作片和武侠片,可以推测出Alice和Bob是女的吧,而Carol和Dave则可能是男的。矩阵Y中也可以大概的看出这种规律,矩阵前两行数据(男同学打的分)很相似,可以把他们看成同一个轴,而下面两行看成另外一个轴,这两个轴构成了打分空间,因此轴就是基,类似于稀疏编码的字典。但是基是稀疏的,而系数不是稀疏的。其实现实中有很多类似的数据,比如你把对齐的同一个人脸数据按照这样的矩阵排放,同样是类似规律。同学们可能在找系数在哪,系数如(图二)所示:

(图二)

优化求解模型如(公式二)所示:

(公式二)

没错,和上面一样,又要求X又要求theta,求解方法仍然可以采用 coordinate descent,但也有其他求解方法,其他方法主要从凸优化的角度来考虑,数学界的新星陶哲轩证明了在RIP条件下L0范数(就是计算元素数的)优化和 L1范数优化具有相同的解,然后L1范数是个凸优化问题,顺便松弛到trace norm来求解,背后有很多数学证明,今天就说到这了,优化求解方法以后慢慢来触及吧。

对于稀疏表示的应用可以看看一篇名为“稀疏表达”的上中下博文

转载请注明链接:http://blog.csdn.net/cuoqu/article/details/9040731

Sparsity稀疏编码(三)相关推荐

  1. Sparsity稀疏编码(一)

    稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...

  2. Stanford UFLDL教程 稀疏编码自编码表达

    稀疏编码自编码表达 Contents [hide] 1稀疏编码 2拓扑稀疏编码 3稀疏编码实践 3.1将样本分批为"迷你块" 3.2良好的s初始值 3.3可运行算法 4中英文对照 ...

  3. 深度学习系列(四):什么是稀疏编码

    上节使用简单方法阐述了自编码问题与简单操作,本节将正式开始探索深度学习的相关问题,第一个问题就是稀疏编码. 关于稀疏编码需要理解的几点: (1)什么是稀疏编码? (2)为什么要稀疏编码? (3)稀疏编 ...

  4. 为什么需要稀疏编码及解释

    参考:(1) UFLDL (2) Why sparse coding works 稀疏编码算法是一种无监督学习方法,它用来寻找一组"超完备"基向量来更高效地表示样本数据.稀疏编码算 ...

  5. 稀疏编码(Sparse Coding)(二)

    为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),需要把他们转成数学语言,因为数学语言作为一种严谨的语言,可以利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方 ...

  6. Stanford UFLDL教程 稀疏编码

    稀疏编码 Contents [hide] 1稀疏编码 2概率解释 [基于1996年Olshausen与Field的理论] 3学习算法 4中英文对照 5中文译者 稀疏编码 稀疏编码算法是一种无监督学习方 ...

  7. 无监督学习︱GAN 在 NLP 中遇到瓶颈+稀疏编码自学习+对偶学习

    深度学习训练一个模型需要很多的人工标注的数据.例如在图象识别里面,经常我们可能需要上百万的人工标注的数据,在语音识别里面,我们可能需要成千上万小时的人工标注的数据,机器翻译更是需要数千万的双语句对做训 ...

  8. 深度学习基础(九)—— 稀疏编码(sparse coding)

    稀疏编码算法是一种无监督学习方法,它用来寻找一组"超完备"基向量来更高效地表示样本数据.稀疏编码算法的目的就是找到一组基向量 (自然图像的小波基?) ϕi \mathbf{\phi ...

  9. 卷积学习与传统稀疏编码、ICA模型学习区别(逐步补充)

    逐步总结(有待补充) 无监督学习知识框架: 这种分类不合适,稀疏编码等也可以从统计学角度看做模型学习与参数选择.实际上,稀疏编码是从1维信号发展起来的表示方法. 近年来,稀疏编码逐渐引入信号的先验信息 ...

最新文章

  1. javascript worker 多线程 简单示例
  2. matlab中任意两边之和大于第三边,无法赋值,左侧大小1*1,右侧1*3,代码报错,但是看不出来两边大小不相等啊...
  3. 协作与大数据构建新型打假模式
  4. python编程300例_经典编程100例——python版(例75)
  5. 秒杀多线程第五篇 经典线程同步 关键段CS
  6. oracle存档模式,Oracle的备份和存档模式
  7. Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数...
  8. 【Kafka】Kafka Producer整体架构概述及源码分析
  9. linux的shell类型_Linux中有哪些不同类型的Shell?
  10. 利用FinalData恢复shift+delete误删的文件
  11. php wind8.5,PHPWind 8.5 正式版源码下载
  12. 【数学分析入门】R语言独立性检验方法
  13. zoho邮箱收信服务器,配置邮件交付 - Zoho Mail 设置
  14. window系统 实现FFmpeg 录制音视频
  15. 续 Codeforces 596 C Wilbur and Points
  16. YOLOv3 论文精读
  17. c语言写一个电脑程序,C语言实现电脑关机程序
  18. 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。
  19. 前端开发中HTML 规范
  20. 人工智能课程走入高中课堂

热门文章

  1. S3c2440A WINCE平台HIVE注册表+binfs的实现
  2. python自动登录校园网 密码_python实现校园网自动登录的示例讲解
  3. python学习day-8 迭代器 生成器 装饰器
  4. Java基础语法(数组)
  5. eclipse中配置tomcat之后指定项目部署的目录
  6. ORA-01940,删除某用户的所有对象
  7. sharepoint 2010 创建内容类型2
  8. linux 命令详解 十一
  9. Baidu小窥(一)
  10. 剑指Offer(Java实现)删除链表中重复的结点