此文章主要是结合哔站shuhuai008大佬的白板推导视频:受限玻尔兹曼机_155min
全部笔记的汇总贴:机器学习-白板推导系列笔记
玻尔兹曼机介绍:白板推导系列笔记(二十八)-玻尔兹曼机
一、背景介绍
RBM(Restricted Boltzmann Machine)
(一)玻尔兹曼机
玻尔兹曼机(Boltzmann Machine)可以说它就是一个马尔科夫随机场(Markov Random Field),简单来说就是一个无向图模型,是一种随机神经网络,借鉴了模拟退火思想,因为使用了玻尔兹曼分布作为激活函数,所以称为玻尔兹曼机。
如下图所示,将无向图中的节点分为两类,阴影的节点为Observed Variable(用 v v v表示),另一类为Hidden Variable(用 h h h表示)
(二)因子分解
既然说玻尔兹曼机是一种特殊的马尔科夫随机场,我们首先回顾一下马尔科夫随机场的因子分解。
马尔科夫随机场的因子分解是基于最大团的,其中:
C i : 最 大 团 , ψ i ( x c i ) : 势 函 数 ( p o t e n t i a l f u n c t i o n ) Z : 归 一 化 因 子 ( 配 分 函 数 p a r t i t i o n f u n c t i o n ) C_i:最大团,\psi_i(x_{ci}):势函数(potential\;function) Z:归一化因子(配分函数partition\;function) Ci:最大团,ψi(xci):势函数(potentialfunction)Z:归一化因子(配分函数partitionfunction)
P ( x ) = 1 Z ∏ i = 1 K ψ i ( x c i ) P(x)=\frac1Z\prod^K_{i=1}\psi_i(x_{ci}) P(x)=Z1i=1∏Kψi(xci) S . t . : ψ i 严 格 大 于 0 Z = ∑ x ∏ i = 1 K ψ i ( x c i ) = ∑ x 1 ∑ x 2 ⋯ ∑ x p ∏ i = 1 K ψ i ( x c i ) S.t.:\psi_i严格大于0\\Z=\sum_x\prod^K_{i=1}\psi_i(x_{ci})=\sum_{x_1}\sum_{x_2}\cdots\sum_{x_p}\prod^K_{i=1}\psi_i(x_{ci}) S.t.:ψi严格大于0Z=x∑i=1∏Kψi(xci)=x1∑x2∑⋯xp∑i=1∏Kψi(xci)
因 为 ψ i 严 格 大 于 0 , 所 以 我 们 取 ψ i ( x c i ) = exp { − E ( x c i ) } , 其 中 E 为 能 量 函 数 ( E n e r g y F u n c t i o n ) 因为\psi_i严格大于0,所以我们取\psi_i(x_{ci})=\exp\{-E(x_{ci})\},其中E为能量函数(Energy\;Function) 因为ψi严格大于0,所以我们取ψi(xci)=exp{ −E(xci)},其中E为能量函数(EnergyFunction)
所以, P ( x ) = 1 Z ∏ i = 1 K ψ i ( x c i ) = 1 Z exp { − ∑ i = 1 K E ( x c i ) } ⏟ 指 数 族 分 布 P(x)=\frac1Z\prod^K_{i=1}\psi_i(x_{ci})=\underset{指数族分布}{\underbrace{\frac1Z\exp\{-\sum^K_{i=1}E(x_{ci})\}}} P(x)=Z1i=1∏Kψi(xci)=指数族分布 Z1exp{ −i=1∑KE(xci)}
所以,我们将最大团结合到 x x x中去,可以得到, P ( x ) = 1 Z exp { − E ( x ) } P(x)=\frac1Z\exp\{-E(x_{})\} P(x)=Z1exp{
−E(x)}
这就是玻尔兹曼分布(Boltzmann Distribution)或者吉布斯分布(Gibbs Distribution)
(三)玻尔兹曼分布
这是一个统计物理学的概念,是一个物理系统,具体可以看看视频的讲解,这篇文章也可以看看:玻尔兹曼机。
二、模型表示
(一)RBM的模型推导
对于 x x x,我们可以令 x = ( x 1 , x 2 , ⋯ , x p ) T x=(x_1,x_2,\cdots,x_p)^T x=(x1,x2,⋯,xp)T,也可以将 x x x分为隐变量和观测变量两部分,即 x = ( h v ) x=\left(\begin{matrix} h\\v\end{matrix}\right ) x=(hv),其中,
h = ( h 1 , h 2 , ⋯ , h m ) T v = ( v 1 , v 2 , ⋯ , v p ) T m + n = p h=(h_1,h_2,\cdots,h_m)^T\\v=(v_1,v_2,\cdots,v_p)^T\\m+n=p h=(h1,h2,⋯,hm)Tv=(v1,v2,⋯,vp)Tm+n=p
Boltzmann machine的问题:Inference。精确推断几乎不可能,近似推断计算量过大。因此需要对这个模型进行简化,也就引出了受限玻尔兹曼机(Restricted Boltzmann Machine),即只在 h , v h,v h,v之间有连接, h , v h,v h,v内部无连接。
所以, P ( x ) = 1 Z exp { − E ( x ) } P(x)=\frac1Z\exp\{-E(x_{})\} P(x)=Z1exp{ −E(x)}可以化为:
P ( v , h ) = 1 Z exp { − E ( v , h ) } P(v,h)=\frac1Z\exp\{-E(v,h)\} P(v,h)=Z1exp{ −E(v,h)}
我们假设 E ( v , h ) = − ( h T w v + α T v + β T h ) E(v,h)=-(h^Twv+\alpha^T v+\beta^T h) E(v,h)=−(hTwv+αTv+βTh),所以,
P ( v , h ) = 1 Z exp { h T w v + α T v + β T h } = 1 Z exp { h T w v } ⋅ exp { α T v } ⋅ exp { β T h } P(v,h)=\frac1Z\exp\{h^Twv+\alpha^T v+\beta^T h\}\\=\frac1Z\exp\{h^Twv\}\cdot\exp\{\alpha^T v\}\cdot\exp\{\beta^T h\} P(v,h)=Z1exp{ hTwv+αTv+βTh}=Z1exp{ hTwv}⋅exp{ αTv}⋅exp{ βTh}
可以参考白板推导系列笔记(九)-概率图模型中的因子图(factor graph view),可以发现上式中的每一项都对应一个因子。
所以,RBM的pdf为:
P ( v , h ) = 1 Z exp ( h T w v ) ⋅ exp ( α T v ) ⋅ exp ( β T h ) = 1 Z ∏ i = 1 m ∏ j = 1 n exp ( h i w i j v j ) ⏟ e d g e ∏ j = 1 n exp ( α j v j ) ⏟ n o d e v ∏ i = 1 m exp ( β i h i ) ⏟ n o d e h ⏟ f a c t o r 其 中 , w , α , β 均 为 参 数 P(v,h)=\frac1Z\exp(h^Twv)\cdot\exp(\alpha^T v)\cdot\exp(\beta^T h)\\=\frac1Z\underset{factor}{\underbrace{\underset{edge}{\underbrace{\prod^m_{i=1}\prod^n_{j=1}\exp(h_iw_{ij}v_j)}}\underset{node\;v}{\underbrace{\prod^n_{j=1}\exp(\alpha_jv_j)}}\underset{node\;h}{\underbrace{\prod^m_{i=1}\exp(\beta_ih_i)}}}}\\其中,w,\alpha,\beta均为参数 P(v,h)=Z1exp(hTwv)⋅exp(αTv)⋅exp(βTh)=Z