Deep Belief Network简介

2023-05-16

1. 多层神经网络存在的问题  

  常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层:

       

  理论上来说, 隐藏层越多, 模型的表达能力应该越强。但是, 当隐藏层数多于一层时, 如果我们使用随机值来初始化权重, 使用梯度下降来优化参数就会出现许多问题[1]:

  1. 如果初始权重值设置的过大, 则训练过程中权重值会落入局部最小值(而不是全局最小值)。
  2. 如果初始的权重值设置的过小, 则在使用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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Deep Belief Network简介 的相关文章

随机推荐

  • linux登录vnc的命令行,用VNC远程登陆linux (ZT)

    由于客户需要充分利用花了N多money购买的服务器 xff0c 而服务器上运行的是Linux AS 客户又不太会使用文本模式 xff0c 因此只好采用配置X server的方式来给每一个用户一个图形终端了 xff0c 这多亏了X windo
  • ssh日志审计_linux查看ssh用户登录日志与操作日志

    本文章来给各位同学介绍一下关于linux查看ssh用户登录日志与操作日志 xff0c 登录日志只要在linux中就可以查看了 xff0c 如果是操作日志我们需要自己先增加 xff0c 然后再可以直接查看了 xff0c 下面我都举了实例说明
  • linux查看cpu是否支持虚拟化,如何知道CPU是否支持虚拟化技术(VT)

    小编依稀记得之前教过大家如何检查你的 Linux 操作系统是 32 位还是 64 位以及如何知道你的 Linux 系统是物理机还是虚拟机 今天 xff0c 我们将学习另一个有用的话题 如何知道 CPU 是否支持虚拟化技术 VT xff1f
  • python画矩形函数drawrectangle_基于python,OPenCv中基本的绘图函数

    一 OpenCv中 python接口的基本的绘图函数 xff11 xff0d 用于绘制直线的 cv2 line 函数 xff12 xff0d 用于绘制椭圆的 cv2 ellipse 函数 xff13 xff0d 用于绘制矩形的 cv2 re
  • cas5.2 gradle mysql_CAS 5.2.x 单点登录 - 搭建服务端和客户端

    一 简介 单点登录 Single Sign On xff0c 简称为 SSO xff0c 是目前比较流行的企业业务整合的解决方案之一 SSO的定义是在多个应用系统中 xff0c 用户只需要登录一次就可以访问所有相互信任的应用系统 CAS 是
  • 服务器连交换机配置lacp协议,LACP(链路聚合控制协议)

    本文转载自 微信公众号 xff1a 通信百科 xff0c ID Txbaike 经微信公众号授权转载 xff0c 如需转载与原文作者联系 什么是LACP xff1f LACP是IEEE 802 3ad 链路聚合 标准的子组件 该标准规定 x
  • linux动态库查找,Linux查找动态库的3种方法

    Linux查找动态库的3种方法 linux默认加载动态库的路径是 lib或者是 lib64 32位的系统是前者 xff0c 64位是后者 如果找不到还有3个地方 LD LIBRARY PATH rpath ldconfig 通过设置LD L
  • 云计算机中弹性,什么是弹性云计算?

    什么是弹性云计算呢 xff1f 有些人在刚刚听说这个名词的时候是发懵的 xff0c 弹性云计算是一种什么数字技术呢 xff1f 弹性云计算是云计算的一个必要构成 xff0c 这个数字技术与云计算是有一定的区别的 xff0c 弹性拓展资源用量
  • samba的启动与停止

    在Samba服务器配置完成后 xff0c 就可以启动Samba双线虚拟主机服务 在 etc init d目录中的脚本文件smb是控制Samba服务的 xff0c 通过参数start stop和restart可控制Samba服务的启动 停止和
  • java object 转换date类型_java string类型怎么转化成date类型

    string类型转化为date类型 xff1a 方法一 xff0c Date date 61 new Date 34 2018 9 30 34 方法二 xff0c String 61 new SimpleDateFormat 34 格式 3
  • 深度学习在graph上的使用

    原文地址 xff1a https zhuanlan zhihu com p 27216346 本文要介绍的这一篇paper是ICML2016上一篇关于 CNN 在图 xff08 graph xff09 上的应用 ICML 是机器学习方面的顶
  • 软件需求分析--结构化分析(SA)方法

    结构化开发方法 Structured Developing Method 是现有的软件开发方法中最成熟 xff0c 应用最广泛的方法 xff0c 主要特点是快速 自然和方便 结构化开发方法由结构化分析方法 SA法 结构化设计方法 SD 法
  • 高级计算机网络知识点

    题目类型 xff1a 判断20分 xff08 10题 xff09 单选20分 xff08 10题 xff09 简答30分 xff08 5题 xff09 问答 计算30分 xff08 3题 xff09 1 ARPANET的主要设计原则 1 1
  • Linux使用技巧:linux下将命令值赋给shell变量

    很多小伙伴在写shell脚本的时候需要把命令输出的值赋给一些变量 xff0c 使得脚本在运行过程中能够顺利使用这些变量 例如 xff1a 很多时候我们就需要获取当前目录的绝对路径 xff0c pwd这个命令大家在熟悉不过 xff0c 可是要
  • OpenDaylight虚拟租户网络(VTN)详解及开发环境搭建

    一 VTN简介及架构分析 xff1a 具体详见开发人员指南wiki xff1a https wiki opendaylight org view Release Lithium VTN developer Guide 这里有两篇很好的初学者
  • LCD1602和LCD12864

    1602 字符型 xff08 字符型的模组 xff09 只能显示数字与字符 不可以显示汉字 12864 点阵型 xff08 图形型的模组 xff09 可根据需求任意显示字符 数字 汉字 图形 1602 为16字乘2行 12864 为128列
  • 虚拟机去混杂模式与 vlan in vxlan 特性

    虚拟机 vlan trunk 特性 1 功能 1 xff09 允许不同vlan的network下的虚拟机之间通信 一般情况下 xff0c 虚拟机只能在相同vlan的网络下通信 2 xff09 允许虚拟机发送vlan报文 2 组网图 虚拟机出
  • 慧智物联剖析信息化与数字化的区别,文件管理不容忽视

    目前 xff0c 数字化 一词铺天盖地 xff0c 已经成为经济 科技等领域最热门的话题 社会各界乃至国家都非常重视 xff0c 大力推广 xff0c 可以说是国家战略 信息化 xff0c 经常和数字化一起被提及 xff0c 是两个容易混淆
  • Dev-C++ 5.11简单使用说明

    点此下载 xff0c 下载完后解压并双击 Dev Cpp 5 11 TDM GCC 4 9 2Setup exe xff0c 默认安装即可 使用过程如下 xff1a 0 打开Dev C 43 43 开发环境 1 新建源文件 xff0c 按C
  • Deep Belief Network简介

    1 多层神经网络存在的问题 常用的神经网络模型 一般只包含输入层 输出层和一个隐藏层 xff1a 理论上来说 隐藏层越多 模型的表达能力应该越强 但是 当隐藏层数多于一层时 如果我们使用随机值来初始化权重 使用梯度下降来优化参数就会出现许多