受限波尔兹曼机

1.  概述

       前面描述的神经网络模型是一种确定的结构。而波尔兹曼网络是一种随机网络。如何来描述一个随机网络呢?很多书上有大量的篇幅介绍其原理。这里把它总结为以下两点。

     

        第一,概率分布函数。由于网络节点的取值状态是随机的,从贝叶斯网的观点来看,要描述整个网络,需要用三种概率分布来描述系统。即联合概率分布,边缘概率分布和条件概率分布。要搞清楚这三种不同的概率分布,是理解随机网络的关键,这里向大家推荐的书籍是张连文所著的《贝叶斯网引论》。很多文献上说受限波尔兹曼是一个无向图,这一点也有失偏颇。从贝叶斯网的观点看,受限波尔兹曼网应该是一个双向的有向图。即从输入层节点可以计算隐层节点取某一种状态值的概率,反之亦然.

 

        第二,能量函数。随机神经网络是根植于统计力学的。受统计力学中能量泛函的启发,引入了能量函数。能量函数是描述整个系统状态的一种测度。系统越有序或者概率分布越集中,系统的能量越小。反之,系统越无序或者概率分布越趋于均匀分布,则系统的能量越大。能量函数的最小值,对应于系统的最稳定状态。

 

2. 网络结构和学习算法

    2.1  RBM网络结构如下:

                        

 

     正如前面我们提到的,描述RBM的方法是能量函数和概率分布函数。实际上,把它们二者结合起来,也就是概率分布是能量函数的泛函,其能量泛函和联合概率分布如下:

 

                         

 

                             

其中,上式中的Z是归一化系数,它的定义如下:

                                           

而输入层的边缘概率,是我们感兴趣的,它的计算如下:

                                        

因为,网络学习的目的是最大可能的拟合输入数据。根据极大似然学习法则,我们的目的就是对所以的输入,极大化上面的公式(4),公式4在统计学里也称作似然函数,更多的我们对其取对数,也就是对数似然函数,考虑所有的输入样本,其极大化对数似然函数的定义如下:

                                 (5)

             注意,上面的公式中,多了个theta。theta就是网络的权值,包括公式(1)中的w,a,b,是网络学习需要优化的参数。其实在上面所有的公式中都有theta这个变量,只是为了便于描述问题,我把它们都给抹掉了。

 

 2.2  对比度散度学习算法

 

         根据公式5,逐步展开,运用梯度下降策略,可以推导出网络权值的更新策略如下:

 

                                   

          其中,第一项,是给定样本数据的期望,第二项是模型本身的期望。数据的期望,很容易计算,而模型的期望不能直接得到。一种典型的方法是通过吉布斯采样得到,而Hinton提出了一种快速算法,称作contrastive divergence算法。这种算法只需迭代k次,就可以获得对模型的估计,而通常k等于1. CD算法在开始是用训练数据去初始化可见层,然后用条件分布计算隐层;然后,再根据隐层,同样,用条件分布来计算可见层。这样产生的结果是对输入的一个重构。CD算法将上述公式6表示为:

                    

                                                            (7)

 


 

具体算法流程可以看参考西安交大 张春霞等人的论文。

 

        另外,网络上很多讲波尔兹曼机的文献都提到了模拟退火算法,但是在受限玻尔兹曼机里面却木有提到。个人认为是网络能量函数的定义里面对退火温度默认为1了。如果这个温度不是1,则应该在能量函数里面加上当前迭代的退火温度T,这时候,网络参数的学习率将会是一个逐步衰减的过程。Persistent Contrastivedivergence算法的迭代过程学习率是一个逐步衰减的过程,可以认为是考虑了退火过程的算法。

转载于:https://www.cnblogs.com/deeplearningfans/p/3785113.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符编码理解

计算的本质是二进制的运算,所以要想把现实生活中的文字、图片、语音等信号媒介用计算机来处理,必须把这些东西切分成基本元素,然后把每一个元素一一映射为数字,这是最基本的做法。 英语切分成最基本的元素就是26个字母大小写加上…

jQuery css详解

今天确确实实是放了一天假,喝了点小酒,看了天天向上和快乐大本营以及中国好舞蹈,越来越热爱舞蹈了,还是总结一篇吧。 jquery css css(name|pro|[,val|fn):访问或设置匹配元素的样式属性 1 $("div").click(fu…

1001 害死人不偿命的(3n+1)猜想 (15分)

1001 害死人不偿命的(3n1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n1。卡拉…

java中的动态绑定与静态绑定

首先是方法的参数是父类对象,传入子类对象是否可行 然后引出Parent p new Children(); 这句代码不是很理解,google的过程中引出向上转型 要理解向上转型又引出了动态绑定 从动态绑定又引出了静态绑定 程序绑定的概念: 绑定指的是一个方法的…

1002 写出这个数 (20分)

1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 ​100 ​​ 。 输出格式: 在一…

ATL和ActiveX做的控件.dll和.ocx最主要的区别(摘录)

楼主是不是说用ATL做的控件和用MFC ActiveX wizard的控件有什么区别吧依存的动态库不一样, 一个是ATL.DLL吧, 一个是MFC42.DLL。 ATL开发的控件代码少,轻便,便于网上发布;MFC开发的控件笨重,但是MFC类库丰富…

1003 我要通过! (20分)

1003 我要通过! (20分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是:…

推荐20款基于 jQuery CSS 的文本效果插件

jQuery 和 CSS 可以说是设计和开发行业的一次革命。这一切如此简单,快捷的一站式服务。jQuery 允许你在你的网页中添加一些真正令人惊叹的东西而不用付出很大的努力,要感谢那些优秀的 jQuery 插件。 所以今天我们将展示一些很酷的文本效果插件&#xff0…

1004 成绩排名 (20分)

1004 成绩排名 (20分) 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:…

Java反射技术

目录1. 什么是反射,为何用它2. Student类3. Person类4. 反射实现以测试学生类为主1. 什么是反射,为何用它 1.1 什么是反射:允许程序员在程序运行期间动态的获得某个类型的信息(类本身的信息以及类的成员信息),从而开发出更为灵活通用的代码 反射能做什么…

王灏:光音网络致力打造Wi-Fi大生态圈

光音网络,做的是本地网络综合服务。在中国,想把互联网做到覆盖延伸范围之外的最后100米,光音网络是当中一家,也是最坚持的一家。为千万家本地生活商户提供帮助,为数亿本地用户提供最佳的本地网络体验,这是光…

1005 继续(3n+1)猜想 (25分)

1005 继续(3n1)猜想 (25分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候,我们需…

利用反射对dao层进行重写

反射写一个通用的dao层1. 学了反射,就得学会搞事情2. 反射写dao具体实现1. 学了反射,就得学会搞事情 我想怎么对实体类操作,就对实体类操作 想实现通用的dao,要满足的条件: 实体类名与表名一样实体字段名与表字段名一…

Replication--查看未分发命令和预估所需时间

当复制有延迟时,我们可以使用复制监视器来查看各订阅的未分发命令书和预估所需时间,如下图: 但是当分发和订阅数比较多的时候,依次查看比较费时,我们可以使用sys.sp_replmonitorsubscriptionpendingcmds来查看&#xf…

1006 换个格式输出整数 (15分)

1006 换个格式输出整数 (15分) 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 2…

利用反射和xml配置文件手写一个小型的框架

通用的增删改查1. 利用xml配置实体类和数据库表名的映射关系2. 根据xml设计&#xff0c;用正确的数据结构映射类封装好xml信息3. 得到数据库连接前&#xff0c;读取xml信息&#xff0c;用map封装成映射数据4. 写dao时根据反射和map生成sql语句&#xff0c;拿到属性值测试为了解…

DPtoLP/LPtoDP 和 ScreenToClient/ClientToScreen

设备坐标&#xff08;Device Coordinate&#xff09;又称为物理坐标&#xff08;Physical Coordinate&#xff09;&#xff0c;是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置&#xff0c;是以…

前端学习(1126):递归求数学题

阶乘1*2*3.....*n <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…