Deep Belief Network简介
1. 多层神经网络存在的问题
常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层:
理论上来说, 隐藏层越多, 模型的表达能力应该越强。但是, 当隐藏层数多于一层时, 如果我们使用随机值来初始化权重, 使用梯度下降来优化参数就会出现许多问题[1]:
- 如果初始权重值设置的过大, 则训练过程中权重值会落入局部最小值(而不是全局最小值)。
- 如果初始的权重值设置的过小, 则在使用BP调整参数时, 当误差传递到最前面几层时, 梯度值会很小, 从而使得权重的改变很小, 无法得到最优值。[疑问, 是否可以提高前几层的learning rate来解决这个问题?]
所以, 如果初始的权重值已经比较接近最优解时, 使用梯度下降可以得到一个比较好的结果, Hinton等在2006年提出了一种新的方法[2]来求得这种比较接近最优解的初始权重。
2. Deep Belief Network
DBN是由Hinton在2006年提出的一种概率生成模型, 由多个限制玻尔兹曼机(RBM)[3]堆栈而成:
在训练时, Hinton采用了逐层无监督的方法来学习参数。首先把数据向量x和第一层隐藏层作为一个RBM, 训练出这个RBM的参数(连接x和h1的权重, x和h1各个节点的偏置等等), 然后固定这个RBM的参数, 把h1视作可见向量, 把h2视作隐藏向量, 训练第二个RBM, 得到其参数, 然后固定这些参数, 训练h2和h3构成的RBM, 具体的训练算法如下:
上图最右边就是最终训练得到的生成模型:
用公式表示为:
3. 利用DBN进行有监督学习
在使用上述的逐层无监督方法学得节点之间的权重以及节点的偏置之后(亦即初始化), 可以在DBN的最顶层再加一层, 来表示我们希望得到的输出, 然后计算模型得到的输出和希望得到的输出之间的误差, 利用后向反馈的方法来进一步优化之前设置的初始权重。因为我们已经使用逐层无监督方法来初始化了权重值, 使其比较接近最优值, 解决了之前多层神经网络训练时存在的问题, 能够得到很好的效果。
参考文献:
[1]. Reducing the Dimensionality of Data with Neural Networks. G. E. Hinton, R. R. Slakhutdinov. 2006, Science.
[2]. A fast learning algorithm for deep belief nets. G. E. Hinton, Simon Osindero, Yee-Whye Teh. 2006, Neural Computation.
[3]. 限制玻尔兹曼机(Restricted Boltzmann Machine, RBM)简介
[4]. Scholarpedia: Deep Belief Networks
[5]. Learning Deep Architectures for AI. Yoshua Bengio
转载于:https://www.cnblogs.com/kemaswill/p/3266026.html
Deep Belief Network简介相关推荐
- Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络...
from:http://www.cnblogs.com/kemaswill/p/3266026.html 1. 多层神经网络存在的问题 常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层: ...
- 深度学习--深度信念网络(Deep Belief Network)
本篇非常简要地介绍了深度信念网络的基本概念.文章先简要介绍了深度信念网络(包括其应用实例).接着分别讲述了:(1) 其基本组成结构--受限玻尔兹曼机的的基本情况,以及,(2) 这个基本结构如何组成深度 ...
- matlab rbm 语音,Deep Belief Network 学习笔记-RBM
Deep Belief Network 学习笔记-RBM By Placebo (纯属个人笔记) 第一次知道deep learning,是上学期dengli博士来实验室的一次报告,他讲到,当神经网络的 ...
- 【零散知识】受限波兹曼机(restricted Boltzmann machine,RBM)和深度置信网络(deep belief network,DBN)
前言: { 最近一直在想要不要去线下的英语学习机构学英语 (本人的英语口语能力实在是低).如果我想完成今年的年度计划,那么今年就没时间学英语了. 这次的内容是之前落下的深度置信网络(deep beli ...
- Deep Belief Network深度信念网
本文参考Hinton2007年发表的一篇论文,链接在此 (一)简介 深度信念网是由多层随机潜变量latent variables ("hidden units")构成的概率生成模型 ...
- 【深度学习入门到精通系列】Deep Q Network
文章目录 1 什么是 DQN 2 DQN 算法更新 (Tensorflow) 3 DQN 神经网络 (Tensorflow) 4 DQN 思维决策 (Tensorflow) 1 什么是 DQN 我们使 ...
- 深度学习(三十九)——深度强化学习(2)概述, Deep Q-learning Network(1)
概述 上图是深度强化学习的脉络图,参考文献中还有该领域的关键论文列表. 原图地址: http://louiskirsch.com/maps/reinforcement-learning 参考: htt ...
- 转【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
[面向代码]学习 Deep Learning(二)Deep Belief Nets(DBNs) http://blog.csdn.net/dark_scope/article/details/9447 ...
- 《DKN: Deep Knowledge-Aware Network for News Recommendation》知识图谱与推荐系统结合之DKN
转自:https://cloud.tencent.com/developer/article/1095691 [导读]传统的新闻推荐算法仅仅从语义层对新闻进行表示学习,而忽略了新闻本身包含的知识层面的 ...
最新文章
- 将用户输入内容中的尖括号、引号等进行转义
- 等价类划分方法的应用
- 有符号二进制数--补码
- QT学习:图形视图Graphics View
- 组装电脑教程(转载)
- Android与Chromium源码搜索工具
- 佐藤hiroko-爱拯救了我(步之物语)
- VB6 如何添加自定义函数 模块 把代码放到一个模块中
- python 摄氏度和华氏度温度转换案例
- 禁用 SQL 游标,告诉你外面听不到的原因【内含福利】
- Chinese-ELECTRA ‘adam_m not found in checkpoint ‘
- 【最优化】序列(逐步)二次规划法(SQP)
- 探索有趣的微观世界:微生物的种类、生存、应用
- CE学习修改卡槽时间
- Wt(C++ Web) 源码编译以及cmake配置
- 高通平台如何使用QPST抓DUMP
- 阿里云mysql端口管理_怎样更改数据库端口号
- 准备搬家,送所有书籍!
- i7 10510U性能怎么样?相当于台式机什么水平
- JavaWeb-10 (项目案例7 文件上传与富文本编辑器)