DBN由多层受限玻尔兹曼机(RBM)堆叠加输出层构成,RBM由隐层和显层构成,如下图所示

其中v为输入向量,h为隐层的节点。wij为vi到hj的权重,对于给定的状态(v,h),RBM的能量函数可表示为

其中ai为可见层的置偏值,bj为隐层的置偏值。

可见层和隐层相互独立,h在v上的最大似然估计为

    i=1,2.......n

通过v可计算出隐层神经元激活的概率为:

通过p可计算出显层神经元激活的概率为:

训练采用cd-k(对比散度算法)

假设初始为v,h,迭代一轮之后为v',h',学习率为lr,则w,a,b的更新规则如下:

w=w+lr*(v*[p(h=1|v)]t-v'*[p(h'=1|v')]t)   其中t表示转置

a=a+lr*(v-v')

b=b+lr*([p(h=1|v)]-[p(h'=1|v')])

初始化可将数据v归一化,[v-v(min)]/[v(max)-v(min)],w,a,b随机赋初值

整体的DBN如图:

先独立训练每一层的rbm,再把上一层的rbm的输出做为下一层rbm的输入,最后接上连接层,进行BP微调模型。

代码如下,采用sklearn中的rbm层实现

深度置信网络(DBM)相关推荐

  1. 【总结】关于玻尔兹曼机(BM)、受限玻尔兹曼机(RBM)、深度玻尔兹曼机(DBM)、深度置信网络(DBN)理论总结和代码实践

    近期学习总结 前言 玻尔兹曼机(BM) 波尔兹曼分布推导过程 吉布斯采样 受限玻尔兹曼机(RBM) 能量函数 CD学习算法 代码实现受限玻尔兹曼机 深度玻尔兹曼机(DBM) 代码实现深度玻尔兹曼机 深 ...

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

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

  3. 深度学习DBN深度置信网络

    之前的文章有些地方不太完善,故补充完善一下. 2017-4-10. 深度信念网络,DBN,Deep Belief Nets,神经网络的一种.既可以用于非监督学习,类似于一个自编码机:也可以用于监督学习 ...

  4. Python 3深度置信网络(DBN)在Tensorflow中的实现MNIST手写数字识别

    任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX:1755337994 使用DBN识别手写体 传统的多层感知机或者神经网络的一个问题: 反向传播可能总是导致局部最小值. 当误差表面(erro ...

  5. 深度学习 --- 基于RBM的深度置信网络DBN-DNN详解

    上一节我们详细的讲解了受限玻尔兹曼机RBM的原理,详细阐述了该网络的快速学习原理以及算法过程,不懂受限玻尔兹曼机的建议先好好理解上一节的内容,本节主要讲解的是使用RBM组成深层神经网络的深度置信网络D ...

  6. 【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[DBN分类]基于matlab深度置信网络DBN变压器故障诊断[含Matlab源码 2284期] 获取代码方式2: 付费专栏Matlab智 ...

  7. 受限玻尔兹曼机和深度置信网络

    从玻尔兹曼机到深度置信网络 本文仍处于草稿阶段,请慎重观看 引言 受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)最初是在1986年由Paul Smolensky ...

  8. 深度学习基础--不同网络种类--深度置信网络(DBN)

    深度置信网络(DBN)   RBM的作用就是用来生成似然分布的互补先验分布,使得其后验分布具有因子形式.   因此,DBN算法解决了Wake-Sleep算法表示分布难以匹配生成分布的难题,通过RBM使 ...

  9. 【零散知识】受限波兹曼机(restricted Boltzmann machine,RBM)和深度置信网络(deep belief network,DBN)

    前言: { 最近一直在想要不要去线下的英语学习机构学英语 (本人的英语口语能力实在是低).如果我想完成今年的年度计划,那么今年就没时间学英语了. 这次的内容是之前落下的深度置信网络(deep beli ...

  10. 【DBN分类】基于matlab麻雀算法优化深度置信网络SSA-DBN数据分类【含Matlab源码 2318期】

    ⛄一.DBN DBN由数个RBM堆叠构成,通常会在顶层加入一个BPNN来实现有监督的分类,DBN中下一层的隐藏层就是上一层的可见层.图1所示的DBN即由两个RBM和顶层一个BPNN构成. 图1 深度置 ...

最新文章

  1. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值
  2. 2022-2028年中国出版业投资分析及前景预测报告(全卷)
  3. 基于线段的激光雷达和单目联合曲面重建​
  4. mysql 实现yyyyww_java – LocalDate无法使用’yyyy’解析’ww’
  5. FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库
  6. 记账本开发进程第一天
  7. 智能交通系统无人机派罚单,人脸成为下一个人牌号,人工智能下谁敢犯规
  8. oracle入门知识实施,新手必须了解的oracle入门知识
  9. 树莓派slam_SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——6.树莓派USB与tty串口号绑定...
  10. 转:靠谱的代码和DRY
  11. python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法
  12. linux命令之ping命令
  13. ssl证书的生成与签名
  14. 华为铁三角:铁三角模式诞生背景与思考
  15. 《Android移动应用基础教程》之川菜菜谱
  16. 小米下拉导航栏,36kr 下拉导航栏解决方法
  17. 52brain公众号目录【2020年3月】
  18. 极路由1S刷openwrt
  19. IDEA文档注释(教程+模板)
  20. 二(1-苯基-异喹啉)(乙酰丙酮)合铱(III)

热门文章

  1. layUI中table重载后表头时间控件失效解决方法,已实践
  2. UE4官网文档关于多人局域网游戏
  3. mysql误操作删除数据后数据恢复
  4. Java 夯实基础之注解
  5. 思科ASDM导入与实战配置经验总结-操作系统版本V842
  6. cron表达式案例+cron在线生成器
  7. linux 编译安装libpng,交叉编译libpng以及zlib开源库
  8. c10k java_c10k问题及其解决方案
  9. mysql元器件数据库_Capture CIS连接元器件数据库系统的方法
  10. 数学表达式: 从恐惧到单挑 (1. 概述)