也没啥原创,就是在学习深度学习的过程中丰富一下我的博客,嘿嘿。

不喜勿喷!

Hinton是深度学习方面的大牛,跟着大牛走一般不会错吧……

来源:A fast learning algorithm for deep belief nets

看着引用次数,什么时候我也能来一篇(不要笑我这个学渣)。

摘要中出现的几个词就让我有点茫然:

complementary priors,这是一个启发规则还是什么鬼的

explaining away effects,没听说过这个效应捏

据说他的这种快速的贪心算法(fast, greedy algorithm)能够一次训练一层的深度直接信任网络(deep, directed belief networks)

而这种快速的贪心算法是为了给后面的利用较慢的wake-sleep algorithm精细调节权重的过程进行初始化。最后得到一个具有很

好泛化性能的网络,而且效果还要比最好的分类学习算法(the best discriminative learning algorithms)还好。(反正我用神经网

络都是单隐层的,一般说法是多隐层具有很好的拟合效果,但是会造成过拟合,即over fitting,但是这里又能快速训练,而且文

中也说多层的效果也很好)。文中也是主要利用这个deep belief nets来做图片的分类。

 

首先Hinton是建立了一个模型,这个模型如下图所示,我也要好好看看这个模型:

这个模型的有三个隐含层,最上面两个隐含层形成了一个undirected associative memory(没有直接相关联的记忆?),剩下的隐含层

则形成了一个directed acyclic graph将相关记忆(associative memory)转化为可观测的变量,例如图片的像素。接着谈到了建立一个

这样的混合的模型的好处(反正我是没有很好的理解这个模型的):

1)即使对于有上百万个参数和很多隐含层的深度网络中,对于这样的模型也存在着很快的贪心算法,找到相当好的参数;

2)这个模型的训练算法是unsupervised,但是又可以用于labeled data,是因为该训练算法可以训练模型生成label和data(第2点的

意思是不是,这个模型不仅能产生label,还能反推会data);

3)有精细的训练算法能调节参数的模型使得模型具有很好的泛化性能,而且分类能力要比一般的分类方法强;

4)训练好的模型能够很好的解释深度隐含层的分布表示(distributed representations);

5)The inference required for forming a percept is both fast and accurate(目前还不知道这个该怎么理解);

6)该学习算法是局部的,也就是说调节参数只会根据前驱突触和后继神经元突触的强度;

7)(神经元之间的)交流也特别简单,神经元之间只需要交流它们随机的二进制状态。

 
 

第2部分介绍了消除explaining away现象的方法,即complementary prior。

第3部分说明restricted Boltzmann machines和infinite directed networks with tied weights之间是等价的。

第4部分介绍了那个快速的贪心算法(一次训练一层数据,这样来看是不是就训练一层就完了,不会从头训练吧),随着新的隐含层加入,

模型整体的泛化能力提高了。The greedy algorithm bears some resemblance to boosting in its repeated use of the same weak learner, but

instead of reweighting each data-vector to ensure that the next step learns something new, it represents it(这里他不是每次都重新调整权重,

而是重新表示,是这个意思吗?)。

第5部分介绍了经过快速贪心算法初始化之后的权重,怎么利用wake-sleep算法进行fine-tune。

第6部分展示了包含3个隐层1.7 million个权重的网络对MNIST set of handwriting digits模式识别性能(我擦,这么多参数)。没有提供这

些手写体的任何几何信息,也没有经过任何的预处理,所建立网络的识别误差是1.25%,比最好的back-propagation的网络的1.5%要好,同

时也比支持向量机的1.4%的误差稍好。

第7部分我们要看看这个网络是在想什么,如果没有对可视输入进行约束。从这个网络的高层表示生成一张图片(我感觉这个牛叉,就像人眼

看到一幅图片,然后经过大脑的抽象之后,刻在脑子里,也就是突触之间的权重会保存信息,然后我们在根据这些信息重构一张图么?)。

 
 

讲到这里,首先是一个具有很多特性的网络结构提出来了,它有很多的隐含层,而且这些变量的值都是二进制(也可以说是二元的,binary),

然后我们得对模型提出某个训练算法,让它能够学习,训练的过程大体上分为两个阶段,第一个阶段是fast greedy algorithm来对每一层的参数

进行训练,这个过程很快。第二阶段就是一个fine-tune的wake-sleep算法,由于没有具体的去看算法,目前也就只能从整体上把握这个过程,

现在就具体的去看看怎么实现的吧!(启发:一直以来的印象就是多隐层的泛化效果不好,偏偏就有人反其道而行之,要多整几层;网络结构上

也有改变,算法上也有新的)。

 
 

2 Complementary priors

explaining away现象是什么?

深度信任网络的快速学习算法(Hinton的论文)的更多相关文章

  1. 深度学习(二)--深度信念网络(DBN)

    深度学习(二)--深度信念网络(Deep Belief Network,DBN) 一.受限玻尔兹曼机(Restricted Boltzmann Machine,RBM) 在介绍深度信念网络之前需要先了 ...

  2. 理论优美的深度信念网络--Hinton北大最新演讲

    什么是深度信念网络 深度信念网络是第一批成功应用深度架构训练的非卷积模型之一. 在引入深度信念网络之前,研究社区通常认为深度模型太难优化,还不如使用易于优化的浅层ML模型.2006年,Hinton等研 ...

  3. 【笔记】Reptile-一阶元学习算法

    目录 论文信息 Nichol A , Achiam J , Schulman J . On First-Order Meta-Learning Algorithms[J]. 2018. 一.摘要 本文 ...

  4. [论文阅读]阿里DIN深度兴趣网络之总体解读

    [论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...

  5. 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)

    基于深度学习的安卓恶意应用检测 from:http://www.xml-data.org/JSJYY/2017-6-1650.htm 苏志达, 祝跃飞, 刘龙     摘要: 针对传统安卓恶意程序检测 ...

  6. 深度学习Bible学习笔记:第六章 深度前馈网络

    第四章 数值计算(numerical calculation)和第五章 机器学习基础下去自己看. 一.深度前馈网络(Deep Feedfarward Network,DFN)概要: DFN:深度前馈网 ...

  7. Recommending music on Spotify with deep learning 采用深度学习算法为Spotify做基于内容的音乐推荐

    本文参考http://blog.csdn.net/zdy0_2004/article/details/43896015译文以及原文file:///F:/%E6%9C%BA%E5%99%A8%E5%AD ...

  8. Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3

    Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3 http://blog.csdn.net/sunbow0 第二章Deep ...

  9. 利用python深度学习算法来绘图

    可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...

随机推荐

  1. 【DP水题】投票问题(二)

    投票问题(一) [试题描述] 欧阳文和欧阳武竞选学联主席,汪梁森负责唱票,共有m+n张,结果欧阳文获胜,已知欧阳文和欧阳武分别获得 m 张票和 n 张票(m>n).现在请你计算在唱票过程中欧阳文 ...

  2. IE7/8浏览器都不能显示PNG格式图片

    方法一:重新注册pngfilt.dll文件.这个方法是PNG格式开发商官方网站上的推荐方法之一,抱着试试的想法按网站推荐的方法试了,一试成功.方法如下:使用 开始->运行,在运行输入框中输入 “ ...

  3. 创建数据库和表的SQL语句【转】

    创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...

  4. tomcat支持的websocket服务

    首发:个人博客 在tomcat7之后的版本,写个websocket服务程序非常容易——如以下代码所示,当客户端建立了一个连接并发送了一些什么内容到服务器,服务器将每隔两秒返回一个字符串“world”. ...

  5. 验证(Javascript和正则表达式)

    昨天写了验证(C#和正则表达式),今天又写了个js版的验证.现在贴出来,为了方便自己查阅,同时也希望能给需要的人帮助和一些启发.由于今天才开始接触js,所以可能会有一些错漏,希望大家能批评指正. va ...

  6. python两个 list 交集,并集,差集的方法+两个tuple比较操作+两个set的交集,并集,差集操作+两个dict的比较操作

    转自:http://blog.chinaunix.net/uid-200142-id-3992553.html 有时候,为了需求,需要统计两个 list 之间的交集,并集,差集.查询了一些资料,现在总 ...

  7. linux中的优先搜索树的实现--prio_tree【转】

    转自:http://blog.csdn.net/bailyzheng/article/details/8041943 linux中的优先搜索树的实现--prio_tree prio_tree在linu ...

  8. 使用Jconsole监控weblogic的配置方法

    在项目中发现full gc非常频繁.达到了每分钟13次.我怀疑可能会有内存泄露.于是在晚上找了内存泄露的资料. 内存长期占用并导致系统不稳定一般有两种可能: 1. 对象被大量创建而且被缓存,在旧的对象 ...

  9. 通过SQL Server Profiler来监视分析死锁

    在两个或多个SQL Server进程中,每一个进程锁定了其他进程试图锁定的资源,就会出现死锁,例如,进程process1对table1持有1个排它锁(X),同时process1对table2请求1个排 ...

  10. netstat -aon|findstr 8888 终止进程

    netstat -aon|findstr 8888 # 根据端口号查找进程C:\Users\Administrator>netstat -ano | findstr TCP LISTENING ...