典型的浅层学习结构: 传统隐马尔可夫模型(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(杂乱笔记)的更多相关文章

  1. EventBus源码解析 源码阅读记录

    EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...

  2. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要系列文章索引

    从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收<LEARNING HARD C#学习笔记>这本书的内容要点及网上各位大牛们的经验,没有半点废话 ...

  3. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三

    最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...

  4. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

  5. Elasticsearch6.3.2启动过程源码阅读记录

    Elasticsearch6.3.2启动过程源码阅读记录 网上有很多关于es的源码分析,觉得自己技术深度还不够,所以这些文章只是看源码过程中的一个笔记,谈不上分析. 整个启动过程以类名.方法名,按顺序 ...

  6. x264阅读记录-2

    x264阅读记录-2 7. x264_encoder_encode函数-1 查看该函数代码(Encoder.c文件)可以发现,该函数中注释很详细,对编码的整个步骤展示的也相对比较清晰. 在查看具体的代 ...

  7. x264阅读记录-1

    x264阅读记录-1 采用x264版本是x264-snapshot-20060316-2245. 1. main函数 x264的main函数位于x264.c中,下面是main函数调用情况: (1)_s ...

  8. 《Javascript高级程序设计》阅读记录(七):第七章

    <Javascript高级程序设计>中,2-7章中已经涵盖了大部分精华内容,所以摘录到博客中,方便随时回忆.本系列基本完成,之后的章节,可能看情况进行摘录. 这个系列以往文字地址: < ...

  9. 《Javascript高级程序设计》阅读记录(六):第六章 下

    这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 <Javascript ...

随机推荐

  1. uniq 命令

    uniq 命令 文字 uniq是LINUX命令 用途 报告或删除文件中重复的行. 语法 uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ ...

  2. 超给力的HTML5 3D动画欣赏及源码下载

    HTML5有着非常巨大的魅力,尤其是CSS3和Cavnas,可以帮助页面渲染得非常炫酷.值得一提的是,利用HTML5的3D特性可以帮助你更加方便地在网页上实现3D动画特效.本文分享的这些HTML5 3 ...

  3. SQL with as 替代临时表的用法

    原文地址:http://www.cnblogs.com/zerocc/archive/2011/11/28/2266180.html SQL中 WITH AS 的用法和注意事项 1.为什么使用with ...

  4. UVA 11636 - Hello World! 水

    水题,贪心,dp都随意 /* author:jxy lang:C/C++ university:China,Xidian University **If you need to reprint,ple ...

  5. Appnium+python实现手势密码为什么总是报错

    最近一直在尝试Appnium实现Android手机自动化测试,一直一直卡在一个点上,那就是手势密码,因为所测应用的手势密码使用的不是单个的imageview实现的手势密码解锁窗,所以只能靠坐标点来定位 ...

  6. C++编程规范之18:尽可能局部地声明变量

    摘要: 避免作用域膨胀,对于需求如此,对于变量也是如此.变量将引入状态,而我们应该尽可能少地处理状态,变量的生存期也是越短越好. 变量的生存期超过必需的长度时会产生以下几个缺点: 1.      它们 ...

  7. 你需要知道的九大排序算法【Python实现】之基数排序

    八.基数排序 基本思想:基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(bucket sort)或bi ...

  8. Linux输出重定向

  9. 差别client、offset、scroll系列以及event的几个距离属性

    element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个仅仅读属性,它包含了: css width + ...

  10. Python3.2官方文档翻译--继承

    6.5 继承 当然,一门语言特性假设不支持继承那么名称类就失去了价值.子类继承父类的方法例如以下: class DerivedClassName(BaseClassName): <stateme ...