沉默的树分享 http://blog.sciencenet.cn/u/jiangqiuhua 做自己喜欢做的事!

博文

RBM原理的理解

已有 28952 次阅读 2015-3-22 11:04 |个人分类:统计学习|系统分类:科研笔记|关键词:学者| RBM

网络上资料关于深度学习的入门,好多都是从RBM开始,如果没有一定的相关背景知识的话,这些资料让人看得很是摸不着头脑!我是主要参考了Asja Fischer和Christian Igel的介绍性论文《An Introduction to Restricted Boltzmann Machines》进行学习。大家可以从google学术中下载(网上知道的,真的很方便)。
下面是我整理的相关背景知识,以及自己对这些知识的理解。希望能帮助到大家,有不对的地方多交流,同时也提高自己的理解。
一、Graphical Model、MRF、BM和RBM
图模型(Graphical Model)是将随机变量用节点来表示,随机变量之间的相互依赖关系用连接线来表示,一般记为G(V,E)。该模型用来表示多个变量之间的联合分布,这点在刚接触图模型的特别不了解,弄得云里雾里。
随机变量之间最简单关系就是相互独立(朴素贝叶斯估计就是这样假定的),也即联合分布满足:
p(v1,v2,...,vn)=p(v1)p(v2)...p(vn).  其中v1,v2,..vn表示单个随机变量。
但是现实中随机变量之间关系具有很复杂的相互依赖性,即上式不成立。于是需要将复杂问题简单化,即寻找满足部分独立的情况进行简化研究。
首先对一种相对简单的依赖关系进行研究,这就是条件独立的依赖关系。即:
p(V1,V2|V3)=p(V1|V3)p(V2|V3).  其中V1,V2,V3表示任意的随机变量集合。
这实际上是随机变量之间的Marcov property(马尔科夫性,刚接触这个名字时真的很晕),表示相互之间的独立性。
马尔科夫性就是marcov提出的,将随机变量之间相互依赖关系进行简化。随机变量只与相邻(时间上或空间上)的随机变量有关系,而与不相邻的随机变量之间是条件独立的。当在时间上进行简化时,就得到了Marcov链。因此满足Marcov性的图模型就是Marcov Random Field,简称为MRF。
玻尔兹曼机(Boltzman Machine,简记为BM)是1985年由深度学习鼻祖Hinton提出的。用来解决Hopfield确定性神经网梯度下降法学习容易陷入局部极小点问题的。BM就是一种特殊的MRF。一般神经变量的取值范围是{0,1}。
BM的核心包括两点:
1)网络的状态服从Boltzman分布;
2)学习算法采样模拟退火方法(Simulated Annealing),这是一种随机学习算法,较好地解决了局部极小陷阱问题。
Boltzman分布是统计热力学中的概念,即多粒子系统中,系统的确切状态和能量很难测量,但在温度T时系统的热平衡满足于Boltzman分布,即:


$p\left ( A \right )=\frac{1}{Z}e^{-\frac{E(A)}{kT}}$      (1)

其中,T为温度,E(A)为系统在状态A对应的能量,也称为能量函数,k为玻尔兹曼常数,Z为归一化因子。
可见能量函数的选择也是BM的一个关键点,能量函数决定了系统的概率分布。一般的BM选择的能量函数是:

$E\left ( X \right )=-\sum_{i}\sum_{j}w_{ij}x_{i}x_{j}-\sum_{i}\theta _{i}x_{i}$      (2)

但在实际的学习过程中,有的随机变量是不可观测的,因此将BM中神经元分为可视变量v和不可视变量h,进一步假设,可视变量v之间条件独立,不可视变量h之间条件独立,这就是受限玻尔兹曼机(简称RBM)。
对应RBM能量函数为:

$E\left ( v,h \right )=-\sum_{i}\sum_{j}w_{ij}h_{i}v_{j}-\sum_{j}b_{j}v_{j}-\sum_{i}c_{i}h_{i}$      (3)

因此,RBM系统随机变量的概率分布为:

$p\left ( v,h \right )=\frac{1}{Z}e^{\sum_{i}\sum_{j}w_{ij}h_{i}v_{j}+\sum_{j}b_{j}v_{j}+\sum_{i}c_{i}h_{i}}$       (4)

二、RBM参数的基本学习算法
从已知RBM的观测数据集 $\left \{ v \right \}_{S}$ 来估计数据集的概率分布一般采用极大似然函数方法,即寻找在最优的参数(wij、bj、ci),使得似然函数最大:

$ln\prod_{s}p(v)=\sum_{S}\left \{ ln\sum_{h}p(v,h)\right \}=\sum_{S}\left \{ ln\sum_{h}e^{-E(v,h)}-ln\sum_{x,h}e^{-E(x,h)} \right \}$     (5)

大家注意,为了简单清晰,这里记号有点要注意,其中v是已经观测的数据,x表示可观测的状态变量取值,大家要注意区分开来,都由v来表示容易搞混,第二项其实是归一因子,与具体的观测数据v无关。可以采用梯度下降算法来求取参数。

似然函数关于wij、bj、ci的梯度如下。

$\frac{\partial lnp(v)}{\partial w_{ij}}=\sum_{h}\left \{ p(h|v)\cdot h_{i}v_{j} \right \}-\sum_{x}\left \{ \sum_{h} p(h|x)\cdot h_{i}x_{j}\right \}$  (6)

$\frac{\partial lnp(v)}{\partial b_{j}}=\sum_{h}\left \{ p(h|v)\cdot v_{j} \right \}-\sum_{x}\left \{ \sum_{h} p(h|x)\cdot x_{j}\right \}$   (7)

$\frac{\partial lnp(v)}{\partial c_{i}}=\sum_{h}\left \{ p(h|v)\cdot h_{i} \right \}-\sum_{x}\left \{ \sum_{h} p(h|x)\cdot h_{i}\right \}$   (8)

因为:

      $\sum_{h} p(h|v)\cdot h_{i}v_{j} = \sum_{h_{i}}\left \{ \sum_{h_{-i}}p(h_{i}|v)\cdot p(h_{-i}|v)h_{i}v_{j} \right \}=\sum_{h_{i}}\left \{ p(h_{i}|v)h_{i}v_{j} \sum_{h_{-i}}\cdot p(h_{-i}|v)\right \}=\sum_{h_{i}}p(h_{i}|v)h_{i}v_{j}$ (9)

其中, $h_{-i}$ 表示随机状态h的除第i个分量以外的其它随分量,所以

$\sum_{h_{-i}}p(h_{-i}|v)=1$

因此(9)式成立。仿照(9)进一步还可以对(6)、(7)和(8)进行简化:

$\frac{\partial lnp(v)}{\partial w_{ij}}=\sum_{h_i}p(h_i|v)h_iv_j-\sum_{x}p(x,h)h_iv_j$ (10)

$\frac{\partial lnp(v)}{\partial b_{j}}=v_{j}-\sum_{x}p(x)x_{j}$  (11)

$\frac{\partial lnp(v)}{\partial c_j}=\sum_{h_i}p(h_i|v)h_i-\sum_{x}p(x,h)h_i$   (12)

(10)-(12)式中第二项其实都是条件概率对可观测状态的期望值。

在学习过程中计算上述参数的梯度时,(10)(11)(12)式中第二项的计算复杂性是随机状态分变量数的指数函数,因此直接计算效率太低。可采用马尔科夫蒙特卡罗模拟法(MCMC)来计算这些第二项的期望值(未加深入考察,线性函数的期望值等于期望值的线性函数)。即

$\sum_{x}p(x)\sum_{h_{i}}p(h_{i}|x)h_{i}x_{j}=\sum_{h_{i}}p(h_{i}|\bar{x})h_{i}\bar{x_{j}}$

MCMC采用的是Gibbs采样方法,其想法是从已知的随机变量的条件分布(边缘分布),模拟生成随机变量的序列(Marcov链),通过统计的方法可得到一个随机变量的联合分布估计,也可以得到随机变量的期望值估计(这点也很重要,提高了计算效率)。
Gibbs采样背后的原理就是Marcov链的细致平稳条件,即:

$\pi _{i}p_{ij}=\pi_{j}p_{ji}$    (13)

从状态i转移到状态j的概率与从状态j转移到状体j的概率相等。
Gibbs采样满足Marcov链的细致平稳条件,即:

$\pi_{x}p_{xy}=\pi_{y}p_{yx}$  (14)

记状态x为 $[x_{i}\, x_{-i}]$ ,状态y为 $[y_{i}\, x_{-i}]$ ,因此,Gibbs采样满足如下公式:

$\pi_{x}p_{xy}=\pi(x_{i},x_{-i})\pi(y_{i}|x_{-i})=\pi(x_{-i})\pi(x_{i}|x_{-i})\pi(y_{i}|x_{-i})$  (15)

$\pi_{y}p_{yx}=\pi(y_{i},x_{-i})\pi(x_{i}|x_{-i})=\pi(x_{-i})\pi(y_{i}|x_{-i})\pi(x_{i}|x_{-i})$  (16)

可以看出(15)与(16)式相等,从而Gibbs采样模拟的稳态序列的统计满足于联合分布。

将Gibbs采样应用于公式(10)-(12),当参数wij,bj,ci确定时,p(x,h)可以计算出来,从而可以计算出条件概率,从而可以模拟采样得到在当前参数下的p(x)的概率分布和变量的期望值。将期望值代入公式(10)-(12)即得到了似然函数关于参数的梯度。

三、RBM的CD学习算法
在实际计算梯度时,Gibbs采用的步数不可能趋向无穷大,因此k取多少合适是CD算法要研究的问题,最简单的k取值为1,在k取有限值时,这时梯度的估计就有偏估计了,在《An Introduction to Restricted Boltzmann Machines》的(37)式中Fischer and Igel给出了估计误差的上界。


好了,花了一个周日整理了将近一个月来对RBM的学习理解,还是很有成就感的。只是本文中对RBM的条件概率公式 $p(H_{i}=1|v)$ 没有细写,希望大家能够从p(v,h)的公式中推导,只是要注意h之间相互独立就好了,如果确实有不通的地方请提出来,我继续完善。

初步对博客中写数学公式也熟悉多了,感觉比word还是方便多了,原来时候就是自己太懒,因此总是将笔记写在word中。学习还真是不能太懒,不能象小时候学初级数学似的!



https://m.sciencenet.cn/blog-110554-876316.html

上一篇:PLDA模型的理解
下一篇:DBN的理解

1 罗汉江

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 15:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部