阅读记录:Learning multiple layers of representation(杂乱笔记)
典型的浅层学习结构: 传统隐马尔可夫模型(HMM)、条件随机场
(CRFs)、最大熵模型(Maxent)、支持向量机(SVM)、核回归及仅含单隐层的多层感知器(MLP)等。
局部表示,分布式表示和稀疏表示:局部表示聚类算法,最近邻算法的输入空间切割局部之间互斥,分布式表达ICA、PCA和RBM,器所使用的特征较少,PCA和ICA能获取主要分量信息,但输出信号数目小于输入信号数目,不能很好地解决欠定问题。
Learning multiple layers of representation Geoffrey E. Hinton
通过包含top-down连接的多层网络表达来训练对原始数据的重现,而不是训练直接对数据的分类。
学习特征:
BP通过迭代调整权值来优化网络的分类性能,这个需要有标数据。在包含bottom-up识别链接和top-down生成连接的网络中,通过bt来识别数据,通过tb来生成数据。我们通过调整bt的学习过程来最大化tb能生成原始感知数据。可以理解为高层网络抽象更高级集中的特征集合,并通过这个特征集合来指导低层的数据生成。
生成模型的推导(Inference in generative models):
调整一个生成模型最重要的问题是如何用现有的生成参数和隐藏单元来生成观察到的数据。而随机生成模型在生成实际数据方面有很多困难,最好使用不同的概率分布对应不同的可能隐藏单元的设置。比如组合的gaussian模型。推导过程由计算每个gaussian中能出现实际数据向量的概率的过程组成。This is easy because the posterior probability assigned to each gaussian in the mixture is simply proportional to the probability density of the data-vector under that gaussian times the prior probability of using that gaussian when generating data
统计学机器学习中常用的生成模型:
Factor analysis:只有一个隐藏层,隐藏单元对可视单元的影响是线性的(能量定义,一阶线性)。并且对每个可视变量添加独立的高斯噪音作为补充(偏见)。对于给定的可视层向量,可以计算出其高斯后验概率的平均值和协方差,并以此对模型参数进行调优。
Independent components analysis:该高斯因子允许有非高斯的隐藏单元,但是通过降低可视层中的可见噪音来保证推导的可行性。并且可视层单元个数和隐藏层单元个数是一样的。这些限制每个隐藏单元只有一个设定值来产生每个可视向量,从而使得后验概率折叠到一个点。
Mixture models:每个数据向量都是看做是在混合的联合概率分布中产生,计算联合分布概率的密度比较容易。
多层生成模型(Multiplayer generative models):退如果能推导出每个数据向的隐藏单元的后验分布,学习一个多层的网络会比较容易。并且如果我们能从后验概率分布中的到无偏数据。我们通过简单调整参数来使上层神经单元样例能产生下层神经单元的概率提升。
图a中,训练使用delta法则。hi,是“神经后突触”单元的推导状态或者叫目标值, 是在该单元出现给定状态的概率。Hj是所有的作为预测的“神经前突触”(与i有关的)。
是从j单元到i单元的权值调整大小。该示例中i为隐藏单元,如果i为可视单元,Hi采用在训练样例中的实际状态值。如果训练向量等概率选择,并且隐藏单元的状态从给定的训练向量后的隐藏单元的状态的后验概率冲抽样,公式1的学习法则会有良好的预期效果,使生成模型在运行N次后能产生完全相同的N个训练向量。
多层生成模型的近似推导(Approximate inference for multilayer generative Models):上图a中没有bottom-up的识别链接。隐藏单元j为1的推导概率为 。推导过程没有考虑explaining away,所以并不正确。因为存在比公式1更泛化的目标函数所以用这个不正确的推导还是能进行学习。我们可以考虑推导的准确度来代替之考虑产生训练样例的对数概率分布。保证其他条件不变的情况下,我们希望我们的估计方法尽量准确。甚至我们更倾向于能保证对隐藏表达更精准的推导。这样讲训练眼里的推导上的不正确作为最大化观测数据的对数概率的的惩罚项。通过学习来优变量边界是在复杂生成模型中常用的解决棘手的推导的方法。类似的近似学习方式已经实现,但是如果采用初始随机权值学习会比较慢。
非线性快速精确推导模块:a nonlinear module with fast exact inference.:这部分讨论内容为RBM,开始设置权值为0,然后通过
来重复调整权值。其中 是像素i和特征器j “on together”的频率,j是由训练集中的图像驱动。 是特征检测器由重构的图片驱动时的频率。
在给定的一个训练向量,隐藏单元为1的概率为
我们以这个概率设置隐藏单元的状态,在设置好隐藏单元的状态后。通过隐藏单元设置的状态
通过上面概率来设置可见单元的状态来重构图片。
上两式直接决定条件分布 ,间接决定联合分布和边缘分布 。从随机选择的图片开始通过迭代吉布斯抽样调整特征和重构像素。经过足够多的迭代次数后,像素单元和特征检测单元的状态还是要改变,但是实际中的系统状态概率不再改变。通过描述达到平衡时的可见层状态,我们可以得到模型得出的向量分布。
RBM比一层隐藏层的有向模型表现要好点,首先,其推导过程比较简单:对于给定的隐藏单元,隐藏单元上的后验分布可以分解为单个隐藏单元上的相互独立的分布来计算。使用RBM多次训练深层网络模型比较容易。
正如我们会明白的,通过堆积RBM来学习深层有向网络比较容易。但是在个体模型学习效果并不好,因为有向模型期望能学习到独立边缘分布的隐藏样例。这样就是的生成模型的独立样例对数据分布产生了不好的估计。
组合RBM来学习多层特征(Learning many layers of features by composing RBMs):低层学习的隐藏单元的活动可以作为高层学习用的数据。我们将模拟数据分布的问题P0分解为两个容易的的问题P1。我们只需要解决如何模拟数据分布P1和如何把P1转换到P0就可以了。P1是通过 来得到每个训练向量的隐藏层状态来得到的。P1使得模型能够朝向比较容易建模的分布进行:模型的均衡分布。RBM的P1隐藏分布是P(h)【均衡分布】。从P1转换到P0的RBM的模型为 。
在第一层RBM学习后,将 保持为生成模型的一部分, 保持为衡量推导快速方法,但是我们将模型P1用更好的代替(即往上层训练更高级特征模型,但是概率推导过程保持)。然后我们将P1作为第二层训练RBM的数据。即得到组合的生成模型:
为了得到模型生成结果。我们需要从顶层RBM获取一个均衡样例;但是我们仅仅执行了到底层权值的向下过程。组合模型顶层两层是无向关联记忆体但其他低层的为有向生成模型。
阅读记录:Learning multiple layers of representation(杂乱笔记)的更多相关文章
- EventBus源码解析 源码阅读记录
EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要系列文章索引
从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收<LEARNING HARD C#学习笔记>这本书的内容要点及网上各位大牛们的经验,没有半点废话 ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三
最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二
今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...
- Elasticsearch6.3.2启动过程源码阅读记录
Elasticsearch6.3.2启动过程源码阅读记录 网上有很多关于es的源码分析,觉得自己技术深度还不够,所以这些文章只是看源码过程中的一个笔记,谈不上分析. 整个启动过程以类名.方法名,按顺序 ...
- x264阅读记录-2
x264阅读记录-2 7. x264_encoder_encode函数-1 查看该函数代码(Encoder.c文件)可以发现,该函数中注释很详细,对编码的整个步骤展示的也相对比较清晰. 在查看具体的代 ...
- x264阅读记录-1
x264阅读记录-1 采用x264版本是x264-snapshot-20060316-2245. 1. main函数 x264的main函数位于x264.c中,下面是main函数调用情况: (1)_s ...
- 《Javascript高级程序设计》阅读记录(七):第七章
<Javascript高级程序设计>中,2-7章中已经涵盖了大部分精华内容,所以摘录到博客中,方便随时回忆.本系列基本完成,之后的章节,可能看情况进行摘录. 这个系列以往文字地址: < ...
- 《Javascript高级程序设计》阅读记录(六):第六章 下
这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 <Javascript ...
随机推荐
- Qt源码分析之信号和槽机制
Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...
- C++定义错误码类
我们平时有这样的需求,可能是C用户的老习惯了,在底层的组件中更喜欢用返回错误码的形式来告知用户函数的调用状态,一般来说,简单用#define 一个宏来包装下返回值. #define ERR_SYSTE ...
- 冷门却使用的 javascript 技巧
前端已经被玩儿坏了!像用近似乱码的 javascript 拼一个图形,并且能够正常执行等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬 ...
- 最长回文字符串(manacher算法)
偶然看见了人家的博客发现这么一个问题,研究了一下午, 才发现其中的奥妙.Stupid. 题目描述: 回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串. ...
- CentOS LiveCD LiveDVD DVD 等版本的区别
1.CentOS系统镜像DVD有两个,安装系统只用到第一个镜像即CentOS-6.7-x86_64-bin-DVD1.iso,第二个镜像CentOS-6.7-x86_64-bin-DVD2.iso是系 ...
- Python字符串方法
capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 c ...
- 【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- eclipse打包 jar文件,中文乱码解决方案
直接通过eclipse浏览源代码时,发现中文注释为乱码的问题.其实这个eclipse默认编码造成的问题.可以通过以下方法解决: 修改Eclipse中文本文件的默认编码:windows->Pref ...
- asp.net 5.0微信支付
(原文出自:http://lib.csdn.net/article/wechat/46329) 微信支付官方坑太多,我们来精简 我把官方的代码,打包成了 an.wxapi.dll. 里面主要替换了下注 ...
- jsp DAO设计模式
DAO(Data Access Objects)设计模式是属于J2EE体系架构中的数据层的操作. 一.为什么要用DAO? 比较在JSP页面中使用JDBC来连接数据库,这样导致了JSP页面中包含了大量的 ...