受限玻尔兹曼机_玻尔兹曼分布,受限玻尔兹曼机

想写一点儿关于玻尔兹曼分布(一个统计力学的概念)是如何与受限玻尔兹曼机(一个机器学习模型)联系在一起的。其中涉及两者的一些推导。

玻尔兹曼分布

玻尔兹曼分布(Boltzmann distribution)描述在一定温度下,微观粒子运动速率的分布。其形式为

其中

为粒子的动能,
为玻尔兹曼常数。下面我们来推导这个分布。

考虑N个质量为m的粒子,第i个粒子的速度为

。假设我们不考虑粒子间的势能,根据能量守恒,粒子群的总动能
守恒(D为维度数)。因此变量
分布在一个ND维的超球面上,其半径为
。又根据等概率定律,这些变量在超球面上的分布是各向同性的(isotropic)。

如何在这个超球面上的均匀分布进行采样呢?我们先考虑在一个三维球面上的均匀分布进行采样的的问题。我们从高斯分布

中对三个变量x, y, z进行独立取样,它们的联合分布也是各向同性的:

所以,我们只需对采样结果

进行模归一化,得到的样本即是在三位球面上均匀分布的。显然,这个方法可以推广到N维。

到现在为止,我们知道了如何对每个粒子在每个维度上的速度分量进行采样,使得系统的总动能为定值。但这还并不能告诉我们这些变量是服从高斯分布的,因为独立采样后我们还要进行归一化。幸运的是,我们可以证明,当变量数N足够大时,未经归一化的样本的半径会收敛到一个固定值

。所以,对于单一粒子的任一维度(WLOG我们设为x),
。其中
为粒子在单一维度上的平均动能,因此也可以写作
。这就是粒子在单一维度上的速度分布,也即麦克斯韦分布:

通过这个分布可以得出粒子的速率分布。在二维空间中,

而在三维空间中,

,或者简单理解为
,其中E为粒子的动能。这便是玻尔兹曼分布。

受限玻尔兹曼机

下面我们来介绍受限玻尔兹曼机。一般的玻尔兹曼机(Boltzmann Machine)是一个马尔可夫随机场(MRF),它将变量节点分为隐藏节点和可见节点两种。但是在一般的玻尔兹曼机中,精确推断(exact inference)的复杂度很高,就连吉布斯采样推断也会变得很慢。而受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)在此基础上增加了一个条件:同类节点之间没有连接,所以它退化为一个二分图。在这个图中,每个隐藏节点和和每个可见节点之间有连接。稍后我们还会给每个连接赋一个权重。我们把这个图的两层分别记作隐藏层(H)和可见层(V)。

b961f0316a11bcd4fe6fd7ff5cc3ff4c.png
受限玻尔兹曼机(RBM),图源:MLAPP Chapter 27

RBM定义隐藏层和可见层的联合分布为

其中E为能量函数,Z为归一化因子。RBM之所以沿用了玻尔兹曼的名字,正是因为它定义了系统状态的能量,并将玻尔兹曼分布用作采样函数。

乍一看RBM很像一个两层的全连接前馈神经网络(FFN)。但是我们将看到,在RBM中,连接权重是可以在两个方向上使用的,而在FFN中连接权重只在forward时有意义。另一个重要的区别是,因为RBM的连接是无向的,所以在给定可见层变量的条件下,隐藏层变量是相互独立的(conditionally independent),因此后验分布可以分解成

这方便了我们在给定可见层时对隐藏层进行采样。如果我们将隐藏层作为输入,可见层作为输出,那么就能从标签反推输入数据。相比较而言,FFN中的连接是有向的。在给定输入层变量时,输出层变量是相互独立的,也正是有赖于此我们才能在神经网络中进行并行计算。但是,在给定输出层变量时,输入层变量不是相互独立的(回忆Markov blanket的定义),所以也就不能反过来对输入层进行高效采样。

考虑一个隐藏变量和可见变量均为binary的RBM,其能量函数

注意,我们已经把bias项纳入到W中了。我们在推导其后验分布时还能顺手推出我们为什么用sigmoid函数作为二分类的激活函数:

根据对称性,我们有后验分布

(有一个想法,既然sigmoid是softmax在二分类时的退化,那如果我们把RBM中的隐藏变量设为Categorical的,那是不是也能推导出softmax呢?感觉上是可以的,有时间准备推一下。)

应用方面,RBM可以用于document retrieval和collaborative filtering,也可以叠起来成为深度玻尔兹曼机(DBM)。在最近几年并没有进入深度学习的主要流派。

参考资料

Machine Learning: A Probabilistic Perspective, Chapter 27, by Kevin P. Murphy

Statistical Mechanics: Algorithms and Computations, Lecture 4, by Werner Krauth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值