能量模型

RBM用到了能量模型。

简单的概括一下能量模型。假设一个孤立系统(总能量$E$一定,粒子个数$N$一定),温度恒定为1,每个粒子有$m$个可能的状态,每个状态对应一个能量$e_i$。那么,在这个系统中随机选出一个粒子,这个粒子处在状态$k$的概率,或者说具有状态$k$的粒子所占的比例为:

$$p(state=k)=\frac{e^{-e_k}}{Z}$$

其中$Z=\sum e^{-e_i}$称为配分函数。

扩展开来,在一个正则系综中,系统$i$处在状态$S_i$的概率为:

$$P(state=i)=\frac{e^{-E_i}}{\sum e^{-E_i}}$$

当这个系统有个宏观的状态,对应的宏观测量值为$Q$,状态是微观状态的集合$S_Q=\{s_1,s_4,...\}$,则该宏观状态出现的概率为

$$P(S_Q)=\frac{\sum_{k\in S_Q} e^{-e_k}}{Z}$$

比照粒子,我们定义一个宏观状态对应的能量为$E_Q$,改写上式为

$$P(S_Q)=\frac{e^{-E_Q}}{Z}~~where~~Z=\sum_Q e^{-E_Q}$$

与微观态的关系为

$$E_Q=-ln\sum_{k\in S_Q} e^{-e_k}$$

受限玻尔兹曼机

受限玻尔兹曼机是这么一个系统,系统结构为一个二分网络。一种节点类型为可视节点,另一种为隐含节点,所有节点都为二值节点(0,1)。如下图。

定义该系统的能量为

$$E=-(\sum a_iv_i+\sum w_{i,j}v_i h_j+\sum b_ih_j)~~where~~w_{i,j}=w_{j,i} ~~~~~~~~~(1)$$

即系统能量为各节点能量与耦合能量(边能量)之和。系统处在状态${V,H}$的概率为:

$$P(V,H)=\frac{e^{-E(V,H)}}{\sum_{V,H} e^{-E(V,H)}}=\frac{e^{-E(V,H)}}{Z}$$

$Z$为配分函数。

可视层节点处在状态$x$的概率为:

$$P(V=x)=\frac{\sum _He^{-E(x,H)}}{Z} \equiv \frac{e^{-E_x}}{\sum e^{-E_x}}~~~~~~~~~~(2)$$

其中

$$E_x=-ln(\sum _He^{-E(x,H)})~~~~~~(3)$$

由于同一类节点是不相连的,因此同类节点之间相互独立,因此每个隐含层节点以及与它相连的边组成的一个小系统是一个独立系统。当可视层状态给定为$x$时,该小系统只有两个状态(隐含节点为0或者1),或者说具有两个能阶。

$$-E(h_i;x)=b_ih_i+\sum w_ix_ih_i=(b_i+\sum w_ix_i)h_i=B_ih_i~~where~~B_i=b_i+\sum w_ix_i$$

因此

$$E(h_i=0;x)=0,E(h_i=1;x)=-B_i$$

$$P(h_i=1;x)=\frac{e^{B_i}}{e^0+e^{B_i}}=sigmoid(B_i)$$

我们重写公式(1)的系统能量表示

$$E(x,h)=-(\sum a_iv_i+\sum B_jh_j)=-(A^Tx+B^Th)~~~(4)$$

并且得出

$$E_x=-ln(e^{A^Tx}\sum_h \prod_j e^{B_j h_j})=-A^Tx- ln\sum_h \prod_j e^{B_j h_j}=-A^Tx-ln \prod_j \sum_h e^{B_j h_j}=-A^Tx-\sum_j ln \sum_{h_j \in \{0,1\}} e^{B_j h_j}=-A^Tx-\sum_j ln(1+e^{B_j})$$

为了计算方便,我们要优化的目标函数是

$$J=-ln P(x)=E_x+ln Z$$

对某一参数 $\theta$,我们得出

$$\frac{\partial J}{\partial \theta}=\frac{\partial E_x}{\partial \theta}-\sum_v P(v)\frac{\partial E_v}{\partial \theta}$$

参考文献

http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine

http://deeplearning.net/tutorial/rbm.html

受限玻尔兹曼机(RBM)的更多相关文章

  1. 基于受限玻尔兹曼机(RBM)的协同过滤

    受限玻尔兹曼机是一种生成式随机神经网络(generative stochastic neural network), 详细介绍可见我的博文<受限玻尔兹曼机(RBM)简介>, 本文主要介绍R ...

  2. 深度学习方法:受限玻尔兹曼机RBM(一)基本概念

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 最近在复习经典机器学习算法的同 ...

  3. 深度学习方法:受限玻尔兹曼机RBM(四)对比散度contrastive divergence,CD

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上篇讲到,如果用Gibbs Sa ...

  4. 深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 接下来重点讲一下RBM模型求解 ...

  5. 深度学习方法:受限玻尔兹曼机RBM(二)网络模型

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上解上一篇RBM(一)基本概念, ...

  6. 受限玻尔兹曼机RBM

    相关算法 python代码参考http://blog.csdn.net/zc02051126/article/details/9668439#(作少量修改与注释) #coding:utf8 impor ...

  7. 受限玻尔兹曼机RBM—简易详解

  8. 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)

    这篇写的主要是翻译网上一篇关于受限玻尔兹曼机的tutorial,看了那篇博文之后感觉算法方面讲的很清楚,自己收获很大,这里写下来作为学习之用. 原文网址为:http://imonad.com/rbm/ ...

  9. 受限玻尔兹曼机(RBM)原理总结

    在前面我们讲到了深度学习的两类神经网络模型的原理,第一类是前向的神经网络,即DNN和CNN.第二类是有反馈的神经网络,即RNN和LSTM.今天我们就总结下深度学习里的第三类神经网络模型:玻尔兹曼机.主 ...

随机推荐

  1. BZOJ1602: [Usaco2008 Oct]牧场行走

    1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1084  Solved: 556[Submit][St ...

  2. -_-#gb2312解码

    百度视频采用gb2312编码,点击出来的链接中的中文转成了gb2312,而gb2312无法解码 如果链接中的中文直接utf-8编码,就没问题,但编辑后台有长度限制 关于URL编码 JS(Unicode ...

  3. Android问题:设置了requestWindowfeature(window.feature_no_title)后,为什么还要getwindow.setFlags?

    //设置窗体全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams. ...

  4. web页面布局思想

    一.盒子模型 网页可以看成由一个个"盒子"组成,如图: 由上图可以看出,页面分为上(网站导航).中.下(版权声明)三个部分,中间部分又分为左(商品分类).中(主要部分).右,这些版 ...

  5. Delphi Webservice 杂谈

    用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性 WebService可用基于XML的SOAP来表示数据和调用请求,并且通过HTTP协议来传输这些XML格式的数据,因为此时的调 ...

  6. Unity3d 超级采样抗锯齿 Super Sampling Anti-Aliasing

    Super Sampling Anti-AliasingSSAA算是在众多抗锯齿算法中比较昂贵的一种了,年代也比较久远,但是方法比较简单,主要概括为两步1.    查找边缘2.    模糊边缘这是一种 ...

  7. netcat运行出错

    今天项目上利用运行netca创建监听时报错,(运行netmgr可以弹出窗口,未测试是否可以建立监听) 报错信息: [oracle@BSS-WG2 ~]$netca Oracle Net Service ...

  8. 在word 2013中输入latex公式

    注意:版权所有,转载请注明出处 向word输入LaTeX公式,插件有很多,前面在使用的是一个叫做Aurora的插件,结果不是免费的,用了一段时间就要收费是,所以就不用了,从网上找到别人的介绍,可以使用 ...

  9. 虚拟机linux系统下ifconfig获取不到ip

    原因:网卡未激活 1.输入ifup eth0命令激活网卡 2.输入ifconfig查询ip

  10. bzoj4443 SCOI2015 小凸玩矩阵 matrix

    传送门:bzoj4443 题解 很水的一道网络流,显然可以二分答案,然后我们希望第\(k\)大尽量小,那么对于一个\(mid\),我们应尽量选择更小的,然后跑二分图最大匹配来验证. code