基于热力学的随机型神经网络–Boltzmann机

1. 模拟退火算法

我们知道,Hopfield神经网络拥有联想记忆的能力,这也是对生物神经网络的一种模拟。但是,Hopfield神经网络也和BP神经网络一样,有一个致命的缺陷:只能找到局部最优解,而无法沿着梯度上升的方向在全局的角度寻求全局最优解。
为了解决这个问题,1983年,Kirkpatrick等提出了模拟退火算法(SA)能有效的解决局部最优解问题。‘退火’是物理学术语,指对物体加温在冷却的过程。模拟退火算法来源于晶体冷却的过程,如果固体不处于最低能量状态,给固体加热再冷却,随着温度缓慢下降,固体中的原子按照一定形状排列,形成高密度、低能量的有规则晶体,对应于算法中的全局最优解。模拟退火算法包含两个部分即Metropolis算法和退火过程。Metropolis算法就是如何在局部最优解的情况下让其跳出来,是退火的基础。1953年Metropolis提出重要性采样方法,即以概率来接受新状态,而不是使用完全确定的规则,称为Metropolis准则,计算量较低。

如上图所示,为模拟退火算法的示意图,在梯度下降法中,算法只有“下坡”的能力,没有“爬坡”的能力。而模拟退火算法不仅具有“下坡”能力,还赋予其爬坡能力。

2. 玻尔兹曼分布

在热力学中,对于一个封闭的系统,温度越高,混乱程度就越高,当温度降低时,系统逐渐趋于热力学平衡状态。对应神经网络的最优解。

将模拟退火算法和玻尔兹曼分布同Hopfield神经网络结合起来,就可以得到一种基于概率的神经网络模型–Boltzmann机,其有以下特点:

  • 初始温度可以设置得较高,使其拥有足够的“爬坡”能力;
  • 在迭代的过程中,温度逐渐降低,知道最终趋于最小温度(即网络达到平衡状态)
  • 在迭代降低温度时,降低的速率应该足够慢,可以采用线性更替:T(n+1)=ηT(n),0.8<η<0.99。

3. Boltzmann机

3.1 Boltzmann机的结构

BM网络的拓扑结构比较特殊,介于DHNN网的全互连结构与BP网的层次结构之间。从形式上看,BM网络与单层反馈网络DHNN网相似,具有对称权值,即,且=0。但从神经元的功能上看,BM网络与三层BP网相似,具 有输人节点、隐节点和输节点称为可见节点,而将隐节点称为不可见节点。训练时输人输出节点接收训练集样本,而隐节点主要起辅助作用,用来实现输人与输出之间的联系,使训练集能在可见单元再现。BM网络的三类节点之间没有明显的层次,连接形式可用上图的有向图表示。

同Hopfield神经网络有所不同,Boltzmann机的节点分为可见节点与隐节点,这说明Boltzmann机的结构介于Hopfield神经网络和BP神经网络之间。它又分为两种类型:

  • 自联想型BM:输入节点与输出节点公用
  • 异联想型BM:可见节点分为输入节点和输出节点

无论哪种类型的BM,都有一个共同的特点:所有的节点全连接,整个网络构成一个无向图。

3.2 Boltzmann机的训练过程

通过有导师学习,BM网络可以对训练集中各模式的概率分布进行模拟,从而实现联想记忆.学习的目的是通过调整网络权值使训练集中的模式在网络状态中以相同的概率再现.学习过程可分为两个阶段;第一阶段称为正向学习阶段或输入期,即向网络输入一对输人输出模式,将网络输人输出节点的状态“钳制”到期望的状态,而让隐节点自由活动,以捕捉模式对之间的对应规律;第二阶段称为反向学习阶段或自由运行期,对于异联想学习,用输人模式“钳住”输人节点而让隐节点和输出节点自由活动,对于自联想学习,让可见节点和隐节点都自由活动,以体现网络对输人输出对应规律的模拟情况。输人输出的对应规律表现为网络达到热平衡时,相连节点状态同时为1的平均概率。期望对应规律与模拟对应规律之间的差别就表现为两个学习阶段所对应的平均概率的差值,此差值便作为权值调整的依据。设BM网络隐节点数为m,可见节点数为n,则可见节点可表达的状态X(对于异联想,X中部分分量代表输人模式,另一部分代表输出模式)共有2”种。设训练集提供了P对模式,一般有P<n,训练集用一组概率分布表示各模式对出现的概率:

  1. 网络热平衡状态

为了统计以上的概率,需要反复使BM网络按模拟退火算法运行并达到热平衡状态,具体如下:

1.1 在正向学习阶段,用一对训练模式钳住网络的可见节点;在反向学习阶段,用训练模式中的输入部分钳住可见节点中的输入节点。
1.2 随机选择自由活动节点j,使其更新状态为
1.3 计算节点j状态更新而引起的网络能量变化
1.4 若则接受状态更新;当时接受新状态,否则维持原状态。是预先设置的数值,在模拟退火过程中,温度T随时间逐渐降低,根据(3)式的讨论情况a看 ,对于常数,为使 ,必须使即在训练中不断减小,因此网络的爬山能力也是减小的。
1.5 所有自由节点全部选择一遍
1.6 按事先选定的降温方式降温,退火算法的降温规律没有统一的定论,一般要求初始温度足够高,降温速度充分慢,以保证网络收敛到全局最小,我们在模拟退火算法中给出了两个,现在拿出来:
1.7 返回步骤②~⑥直到对所有自由节点均有,此时认为网络已经达到热平衡状态,此状态可供学习算法中统计任意两个节点同时为1的概率使用。
  1. 权值调整算法与步骤
    2.1 随机设定网络的初始权值
    2.2 正向学习阶段按已知概率向网络输入学习模式。在的约束下按上述模拟退火算法运行网络到热平衡状态,统计该状态下网络中任意两个节点i与j同时为1的概率.
    2.3 反向学习阶段在无约束条件下或者在仅输入节点有约束条件下的运行网络到热平衡状态,统计该状态下网络中任意两节点i与j同时为1的概率.
    2.4 权值调整算法为:
    2.5 重复以上的步骤直到与充分接近

总结

Boltzmann机是将模拟退火算法和玻尔兹曼分布结合到传统神经网络中构成的一种随机型神经网络模型。它基本解决了由梯度下降法带来的局部最优问题。但是,它也有很大的缺陷:由上述训练过程可以知道,Boltzmann机训练过程时分漫长,所以它在实际中运用的并不多。这促使着大家开始解决由这种Boltzmann机带来的问题,后来就提出了受限Bolzmman机模型。详见受限Boltamann机详解一文

Boltzmann机详解相关推荐

  1. 受限Boltzmann机详解

    受限Boltzmann机 1. 马尔科夫过程 随机过程:设T是一个无限实数集,我们把依赖于参数t∈T的一族随机变量称为随机过程,记作{X(t),t∈T} 马尔科夫性:随机过程中的随机变量将来的取值只与 ...

  2. 2010 27寸 imac 升级固态_2017 款 iMac,27 寸升级换 SSD 固态硬盘拆机详解

    想要 iMac玩游戏?怎么能带动?如何解决卡顿问题?别急,给您带来2017 款 iMac,27 寸升级换 SSD 固态硬盘拆机详解,拆机并不复杂,动手能力差的同学看了这篇文章会觉得原来我也可以,那让我 ...

  3. dell灵越笔记本后盖怎么拆_dell笔记本拆机详解【图文教程】

    总所周知,笔记本室友大大小小的配置组装而成的,而笔记本同样的,有时也会存在着或多或少的故障,又或者有时由于好奇心的趋势,让我们相对笔记本内部的相关配置做更深一步的了解,这个时候,我们会选择对笔记本进行 ...

  4. 海尔微型计算机机箱如何拆解,海尔t628拆机详解

    电脑在我们这个时代已经是我们生活的必需品了,不管是在家里的生活方面还是在工作方面,电脑都能给我们带来极大的帮助.可是电脑毕竟只是一部机器,机器就避免不了出现问题的时候,有一些小问题我们又不想拿到外面去 ...

  5. android手机怎么拆机,韩雪拆安卓手机:十分钟熟练拆机/详解每个部件

    原标题:韩雪拆安卓手机:十分钟熟练拆机/详解每个部件 韩雪再拆安卓手机,近日,曾给iPhone换屏幕的科技达人韩雪,再次成功拆解安卓手机,并与知名游戏主播一同竞技.直播时,韩雪娴熟地拆下手机的所有部件 ...

  6. 新能源汽车车载充电机详解_新能源汽车车载充电机图解

    新能源汽车车载充电机详解 车载充电机是新能源汽车必不可少的核心零部件,其市场规模随着新能源汽车市场的快速增长而扩大.2016年,电动汽车车载充电机市场规模约20亿元,未来几年随着新能源汽车产量的逐年提 ...

  7. Unity3D-摄像机详解

    前言 之前由于在学校基本涉及到对于摄像机的操作,无非就是拖拉拽.对这块没有进行深入了解,现在在项目中碰到多次涉及摄像机的调节,现在对遇到的问题进行总结 一.Camera组件 我们新建场景中,通常默认会 ...

  8. 拆机详解2:比Macintosh还早?苹果Lisa拆解

    hello大家好,我是每天(实际并不是每天,你们点的赞太少了,每人点一个赞我就日更)给你们讲解的Eric_Bells.这里感谢博主@半身风雪的支持,我会更新的!看到的麻烦点个关注谢谢拉 今天唠唠一台比 ...

  9. 三星9300刷机详解 (转载)

    有机油询问在同是zip压缩包的情况系如何分辨是线刷包还是卡刷包,下面放上区分方法: 同是zip压缩包和,第一个是线刷包,需解压:第二个是卡刷包,不能解压.区分方法是:双击打开压缩包,查看包内文件(只是 ...

最新文章

  1. 卫星互联网行业深度报告:战火早已熊熊燃烧
  2. Servlet开发配置
  3. 关联容器的插入操作简单举例
  4. Bootstrap在线编辑器简单分享
  5. 在域驱动设计中使用状态模式
  6. ad20生成二维码_AD20学习笔记一
  7. 使用def文件从dll导出和_declspec(dllexport)导出区别以及调用示例
  8. BZOJ1061: [Noi2008]志愿者招募(线性规划)
  9. 支付宝APP支付里设置应用网关和授权回调地址是不必填的
  10. Excel中28个基本图
  11. 「Python海龟画图」利用海龟画笔绘制奥运五环
  12. 搞金融不能用mysql_金融行业数据库何去何从
  13. ubuntu20.04安装百度网盘
  14. linux开机启动出现grup,开机出现grub解决方法
  15. android 很多牛叉布局github地址
  16. Delphi 中资源文件使用详解
  17. android 新闻功能列表,Android中通过ListView的实现简单新闻列表
  18. 笔记本选购2018.9
  19. mysql约束简单理解
  20. 解决SecureFX无法连接linux服务器

热门文章

  1. 知识产权之发明专利对公司的重要性
  2. latex如何安装包
  3. 线性代数(十七) : 行列式概述
  4. python基础一(学习打卡)
  5. 解决ubuntu桌面无法打开终端命令行
  6. linux括号转义字符串,C#格式化字符串中转义大括号“{}”
  7. [附源码]计算机毕业设计springboot智能衣橱APP
  8. 机器人动力学与控制学习笔记(九)————基于模糊自适应增益调整的机器人滑模控制
  9. 使用jedis连接Redis
  10. 关于阅读datasheet