Sparsity稀疏编码(三)
稀疏编码(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稀疏编码(三)的更多相关文章
- Sparsity稀疏编码(二)
为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),需要把他们转成数学语言,因为数学语言作为一种严谨的语言,可以利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes v ...
- Sparsity稀疏编码(一)
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...
- 稀疏编码概率解释(基于1996年Olshausen与Field的理论 )
一.Sparse Coding稀疏编码 稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据.稀疏编码算法的目的就是找到一组基向量 ,使得我们能将输入向量 表示为这些 ...
- UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化
UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化 主要思路 前面几篇所讲的都是围绕神经网络展开的,一个标志就是激活函数非线性:在前人的研究中,也存在线性激活函数的稀疏编码,该方法试图直接学习数据的特 ...
- 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...
- 稀疏编码(Sparse Coding)的前世今生(二)
为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),须要把他们转成数学语言,由于数学语言作为一种严谨的语言,能够利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方 ...
- 转载 deep learning:八(SparseCoding稀疏编码)
转载 http://blog.sina.com.cn/s/blog_4a1853330102v0mr.html Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因 ...
- 稀疏编码直方图----一种超越HOG的轮廓特征
该论文是一篇来自CMU 的CVPR2013文章,提出了一种基于稀疏编码的轮廓特征,简称HSC(Histogram of Sparse Code),并在目标检测中全面超越了HOG(Histogram o ...
- 基于字典SR各种方法【稀疏编码多种方法】
基于字典的图像超分辨率实现 - CSDN博客 http://blog.csdn.net/u011630458/article/details/65635155 简介 这段时间在看基于字典的单帧图像超分 ...
随机推荐
- linux系统中,tee命令的使用
需求描述: 今天在看nginx内容的过程,遇到了tee这个命令,所以查询了下,在这里记录下使用方法. 操作过程: 1.执行以下的命令 [root@testvm ~]# uname -n | tee h ...
- Android代码调试报错
最近出现老代码不能运行的问题 Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowExc ...
- chr() 、ord()
chr() 用于将一个数字转换为对应的ASCII字符,注意数字范围是0-255:ord() 用法相反,用于将一个ASCII字符转换为对应的数字 In [17]: print chr(33) ! In ...
- 第六篇:GPU 并行优化的几种典型策略
前言 如何对现有的程序进行并行优化,是 GPU 并行编程技术最为关注的实际问题.本文将提供几种优化的思路,为程序并行优化指明道路方向. 优化前准备 首先,要明确优化的目标 - 是要将程序提速 2 倍? ...
- Windows下重置Mysql密码
1.首先停止正在运行的MySQL进程 >net stop mysql 如未加载为服务,可直接在进程管理器或者服务中进行关闭. 2.以安全模式启动MySQL进入mysql目录在命令行下运行 > ...
- cocos2dx游戏--欢欢英雄传说--为敌人添加移动和攻击动作
这里主要为敌人添加了一个移动动作和攻击动作.移动动作是很简略的我动他也动的方式.攻击动作是很简单的我打他也打的方式.效果:代码: #ifndef __Progress__ #define __Prog ...
- 调试寄存器 原理与使用:DR0-DR7
调试寄存器 原理与使用:DR0-DR7 下面介绍的知识性信息来自intel IA-32手册(可以在intel的开发手册或者官方网站查到),提示和补充来自学习调试器实现时的总结. 希望能给你带去有用的信 ...
- qq邮箱发送,mail from address must be same as authorization user
由于邮箱发送的邮箱账号更换,所以重新测试.结果一直出错,要不就是请求超时,要不就是未授权. 用smtp 开始的时候,端口使用495,结果是请求超时. 后来改成25,结果是未授权. 再后来听人说,有一个 ...
- C# Distinct使用,支持对象的相等比较
官网Enumerable.Distinct https://msdn.microsoft.com/zh-cn/library/bb338049.aspx CSDN中作者oriency755 关于Dis ...
- 谷歌Volley网络框架讲解——HttpStack及其实现类
前两篇已经对网络请求流程已经梳理了个大概,这次我们着重看一下HttpStack和它的其实现类.我们之前在Network篇讲过它仅有一个实现类,而今天我们讲的HttpStack有两个实现类. 其中Htt ...