深度置信网络(DBM)
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)相关推荐
- 【总结】关于玻尔兹曼机(BM)、受限玻尔兹曼机(RBM)、深度玻尔兹曼机(DBM)、深度置信网络(DBN)理论总结和代码实践
近期学习总结 前言 玻尔兹曼机(BM) 波尔兹曼分布推导过程 吉布斯采样 受限玻尔兹曼机(RBM) 能量函数 CD学习算法 代码实现受限玻尔兹曼机 深度玻尔兹曼机(DBM) 代码实现深度玻尔兹曼机 深 ...
- 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)...
基于深度学习的安卓恶意应用检测 from:http://www.xml-data.org/JSJYY/2017-6-1650.htm 苏志达, 祝跃飞, 刘龙 摘要: 针对传统安卓恶意程序检测 ...
- 深度学习DBN深度置信网络
之前的文章有些地方不太完善,故补充完善一下. 2017-4-10. 深度信念网络,DBN,Deep Belief Nets,神经网络的一种.既可以用于非监督学习,类似于一个自编码机:也可以用于监督学习 ...
- Python 3深度置信网络(DBN)在Tensorflow中的实现MNIST手写数字识别
任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX:1755337994 使用DBN识别手写体 传统的多层感知机或者神经网络的一个问题: 反向传播可能总是导致局部最小值. 当误差表面(erro ...
- 深度学习 --- 基于RBM的深度置信网络DBN-DNN详解
上一节我们详细的讲解了受限玻尔兹曼机RBM的原理,详细阐述了该网络的快速学习原理以及算法过程,不懂受限玻尔兹曼机的建议先好好理解上一节的内容,本节主要讲解的是使用RBM组成深层神经网络的深度置信网络D ...
- 【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[DBN分类]基于matlab深度置信网络DBN变压器故障诊断[含Matlab源码 2284期] 获取代码方式2: 付费专栏Matlab智 ...
- 受限玻尔兹曼机和深度置信网络
从玻尔兹曼机到深度置信网络 本文仍处于草稿阶段,请慎重观看 引言 受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)最初是在1986年由Paul Smolensky ...
- 深度学习基础--不同网络种类--深度置信网络(DBN)
深度置信网络(DBN) RBM的作用就是用来生成似然分布的互补先验分布,使得其后验分布具有因子形式. 因此,DBN算法解决了Wake-Sleep算法表示分布难以匹配生成分布的难题,通过RBM使 ...
- 【零散知识】受限波兹曼机(restricted Boltzmann machine,RBM)和深度置信网络(deep belief network,DBN)
前言: { 最近一直在想要不要去线下的英语学习机构学英语 (本人的英语口语能力实在是低).如果我想完成今年的年度计划,那么今年就没时间学英语了. 这次的内容是之前落下的深度置信网络(deep beli ...
- 【DBN分类】基于matlab麻雀算法优化深度置信网络SSA-DBN数据分类【含Matlab源码 2318期】
⛄一.DBN DBN由数个RBM堆叠构成,通常会在顶层加入一个BPNN来实现有监督的分类,DBN中下一层的隐藏层就是上一层的可见层.图1所示的DBN即由两个RBM和顶层一个BPNN构成. 图1 深度置 ...
最新文章
- Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值
- 2022-2028年中国出版业投资分析及前景预测报告(全卷)
- 基于线段的激光雷达和单目联合曲面重建​
- mysql 实现yyyyww_java – LocalDate无法使用’yyyy’解析’ww’
- FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库
- 记账本开发进程第一天
- 智能交通系统无人机派罚单,人脸成为下一个人牌号,人工智能下谁敢犯规
- oracle入门知识实施,新手必须了解的oracle入门知识
- 树莓派slam_SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——6.树莓派USB与tty串口号绑定...
- 转:靠谱的代码和DRY
- python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法
- linux命令之ping命令
- ssl证书的生成与签名
- 华为铁三角:铁三角模式诞生背景与思考
- 《Android移动应用基础教程》之川菜菜谱
- 小米下拉导航栏,36kr 下拉导航栏解决方法
- 52brain公众号目录【2020年3月】
- 极路由1S刷openwrt
- IDEA文档注释(教程+模板)
- 二(1-苯基-异喹啉)(乙酰丙酮)合铱(III)