玻尔兹曼机是一种存在隐节点的无向图模型。在图模型中最简单的是朴素贝叶斯模型(朴素贝叶斯假设),引入单个隐变量后,发展出了 GMM,如果单个隐变量变成序列的隐变量,就得到了状态空间模型(引入齐次马尔可夫假设和观测独立假设就有HMM,Kalman Filter,Particle Filter),为了引入观测变量之间的关联,引入了一种最大熵模型-MEMM,为了克服 MEMM 中的局域问题,又引入了 CRF,CRF 是一个无向图,其中,破坏了齐次马尔可夫假设,如果隐变量是一个链式结构,那么又叫线性链 CRF。
在无向图的基础上引入隐变量,即:把无向图的节点分为观测变量和隐变量两类,就是玻尔兹曼机,其实也就是含隐变量的马尔科夫随机场。这个图模型的概率密度函数是一个指数族分布。对隐变量和观测变量作出一定的限制,就得到了受限玻尔兹曼机(RBM)。
不同的概率图模型对下面几个特点作出假设:
将观测变量和隐变量记为 h = ( h 1 , ⋯ , h m ) T h={(h_1,\cdots,h_m)^T} h=(h1,⋯,hm)T, v = ( v 1 , ⋯ , v n ) T v={(v_1,\cdots,v_n)^T} v=(v1,⋯,vn)T,其中 p = m + n p=m+n p=m+n,无向图根据最大团的分解,可以写为玻尔兹曼分布的形式(也是一个指数族分布):
p ( x ) = 1 Z ∏ i = 1 K ψ i ( x c i ) = 1 Z exp ( − ∑ i = 1 K E ( x c i ) ) p(x)=\frac{1}{Z}\prod\limits_{i=1}^K\psi_i(x_{ci})=\frac{1}{Z}\exp(-\sum\limits_{i=1}^KE(x_{ci})) p(x)=Z1i=1∏Kψi(xci)=Z1exp(−i=1∑KE(xci))
K K K 为最大团个数, c i c_i ci 为最大团的节点集合, x c i x_{ci} xci 为最大团对应的随机变量集合, ψ i ( x c i ) = exp { − E ( x c i ) } \psi_i(x_{ci})=\exp\{-E(x_{c_i})\} ψi(xci)=exp{−E(xci)} 为势函数(严格大于 0,所以一般取指数函数, E E E 表示能量函数), Z = ∑ X ∏ i = 1 K ψ i ( x c i ) = ∑ X 1 ⋯ ∑ X p ∏ i = 1 K ψ i ( x c i ) Z=\sum\limits_X\prod\limits_{i=1}^K\psi_i(x_{ci})=\sum\limits_{X_1}\cdots\sum\limits_{X_p}\prod\limits_{i=1}^K\psi_i(x_{ci}) Z=X∑i=1∏Kψi(xci)=X1∑⋯Xp∑i=1∏Kψi(xci) 为归一化因子(partition function也叫配分函数,这里假设有 p p p 个随机变量)。
玻尔兹曼机节点间关系过于复杂,计算难度和计算量都较高(即使是近似推断难度也很大),因此需要对其做一定程度的简化:假设所有隐变量内部以及观测变量内部没有连接,只在隐变量和观测变量之间有连接(类似神经网络的连接形式),则:
p ( x ) ↓ = 1 Z exp ( − E ( X ) ) 指数部分进行了简化表示 p ( h , v ) = 1 Z exp ( − E ( v , h ) ) \begin{aligned} &\mathop{p(x)}\limits_{\color{blue}\downarrow}=\frac{1}{Z}\exp(-E(X)) {\color{blue}\quad_\text{指数部分进行了简化表示}}\\ &p(h,v)=\frac{1}{Z}\exp(-E(v,h)) \end{aligned} ↓p(x)=Z1exp(−E(X))指数部分进行了简化表示p(h,v)=Z1exp(−E(v,h))
其中能量函数 E ( v , h ) E(v,h) E(v,h) 可以写出三个部分,包括与节点集合相关的两项以及与边 w w w 相关的一项,记为:
E ( v , h ) = − ( h T w v ⏟ e d g e + α T v ⏟ n o d e + β T h ⏟ n o d e ) E(v,h)=-(\underbrace{h^Twv}_{\color{blue}edge}+\underbrace{\alpha^T v}_{\color{blue}node}+\underbrace{\beta^T h}_{\color{blue}node}) E(v,h)=−(edge hTwv+node αTv+node βTh)
所以RBM的 pdf:
p ( x ) = 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 ) ∏ j = 1 n exp ( α j v j ) ∏ i = 1 m exp ( β i h i ) \begin{aligned} p(x)&=\frac{1}{Z}\exp(h^Twv)\exp(\alpha^T v)\exp(\beta^T h)\\ &=\frac{1}{Z}\prod_{i=1}^m\prod_{j=1}^n\exp(h_iw_{ij}v_j)\prod_{j=1}^n\exp(\alpha_jv_j)\prod_{i=1}^m\exp(\beta_ih_i) \end{aligned} p(x)=Z1exp(hTwv)exp(αTv)exp(βTh)=Z1i=1∏mj=1∏nexp(hiwijvj)j=1∏nexp(αjvj)i=1∏mexp(βihi)
上式和 RBM 的因子图一一对应。
推断任务包括求后验概率 p ( v ∣ h ) , p ( h ∣ v ) \color{blue}\boxed{p(v|h)},\boxed{p(h|v)} p(v∣h),p(h∣v) 以及边缘概率 p ( v ) \color{blue}\boxed{p(v)} p(v)
对于一个无向图,满足局域的 Markov 性质,即内部无连接
p ( h 1 ∣ h − h 1 , v ) = p ( h 1 ∣ N e i g h b o u r ( h 1 ) ) = p ( h 1 ∣ v ) p(h_1|h-{h_1},v)=p(h_1|Neighbour(h_1))=p(h_1|v) p(h1∣h−h1,v)=p(h1∣Neighbour(h1))=p(h1∣v)
所以可以得到:
p ( h ∣ v ) = ∏ i = 1 m p ( h i ∣ v ) p(h|v)=\prod_{i=1}^mp(h_i|v) p(h∣v)=i=1∏mp(hi∣v)
考虑 Binary RBM,所有的隐变量只有两个取值 h i ∈ { 0 , 1 } \color{blue}h_i\in\{0,1\} hi∈{0,1}: p ( h l = 1 ∣ v ) = p ( h l = 1 , h − l , v ) p ( h − l , v ) = p ( h l = 1 , h − l , v ) p ( h l = 1 , h − l , v ) + p ( h l = 0 , h − l , v ) {\color{blue}p(h_l=1|v)}=\frac{p(h_l=1,h_{-l},v)}{p(h_{-l},v)}=\frac{p(h_l=1,h_{-l},v)}{p(h_l=1,h_{-l},v)+p(h_l=0,h_{-l},v)} p(hl=1∣v)=p(h−l,v)p(hl=1,h−l,v)=p(hl=1,h−l,v)+p(hl=0,h−l,v)p(hl=1,h−l,v)
将能量函数写成和 l l l 相关或不相关的两项:
E ( v , h ) = − ( ∑ i = 1 , i ≠ l m ∑ j = 1 n h i w i j v j + h l ∑ j = 1 n w l j v j + ∑ j = 1 n α j v j + ∑ i = 1 , i ≠ l m β i h i + β l h l ) \begin{aligned} &E(v,h)=-\left(\sum\limits_{i=1,i\ne l}^m\sum\limits_{j=1}^nh_iw_{ij}v_j+{\color{blue}h_l}\sum\limits_{j=1}^nw_{lj}v_j+\sum\limits_{j=1}^n\alpha_j v_j+\sum\limits_{i=1,i\ne l}^m\beta_ih_i+\beta_l{\color{blue}h_l}\right) \end{aligned} E(v,h)=−⎝⎛i=1,i=l∑mj=1∑nhiwijvj+hlj=1∑nwljvj+j=1∑nαjvj+i=1,i=l∑mβihi+βlhl⎠⎞
定义: E ( v , h ) = h l H l ( v ) + H ‾ ( h − l , v ) E(v,h)={\color{blue}h_l}H_l(v)+\overline{H}(h_{-l},v) E(v,h)=hlHl(v)+H(h−l,v)
{ h l H l ( v ) = h l ∑ j = 1 n w l j v j + β l h l h l 相关项 H ‾ ( h − l , v ) = ∑ i = 1 , i ≠ l m ∑ j = 1 n h i w i j v j + ∑ j = 1 n α j v j + ∑ i = 1 , i ≠ l m β i h i h l 无关项 \left\{\begin{aligned} &{\color{blue}h_l}H_l(v)={\color{blue}h_l}\sum\limits_{j=1}^nw_{lj}v_j+\beta_l{\color{blue}h_l}{\color{blue}\qquad\qquad\qquad\qquad\qquad\qquad\ \ _\text{$h_l$相关项}}\\ &\overline{H}(h_{-l},v)=\sum\limits_{i=1,i\ne l}^m\sum\limits_{j=1}^nh_iw_{ij}v_j+\sum\limits_{j=1}^n\alpha_j v_j+\sum\limits_{i=1,i\ne l}^m\beta_ih_i{\color{blue}\qquad_\text{$h_l$无关项}} \end{aligned}\right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧hlHl(v)=hlj=1∑nwljvj+βlhl hl相关项H(h−l,v)=i=1,i=l∑mj=1∑nhiwijvj+j=1∑nαjvj+i=1,i=l∑mβihihl无关项
则有:
p ( h l = 1 ∣ v ) = 1 Z exp { 1 H l ( v ) + H ‾ ( h − l , v ) } 1 Z exp { 1 H l ( v ) + H ‾ ( h − l , v ) } + exp { H ‾ ( h − l , v ) } = 1 1 + exp { − H l ( v ) } = σ ( H l ( v ) ) \begin{aligned} {\color{blue}p(h_l=1|v)}&=\frac{\frac1Z\exp\{{\color{blue}1}H_l(v)+\overline{H}(h_{-l},v)\}}{\frac1Z\exp\{{\color{blue}1} H_l(v)+\overline{H}(h_{-l},v)\}+\exp\{\overline{H}(h_{-l},v)\}}\\ &=\frac{1}{1+\exp\{-H_l(v)\}}\\ &=\color{blue}\sigma(H_l(v)) \end{aligned} p(hl=1∣v)=Z1exp{1Hl(v)+H(h−l,v)}+exp{H(h−l,v)}Z1exp{1Hl(v)+H(h−l,v)}=1+exp{−Hl(v)}1=σ(Hl(v))
于是就得到了后验概率 p ( h ∣ v ) \color{blue}\boxed{p(h|v)} p(h∣v), 而后验概率 p ( v ∣ h ) \color{blue}\boxed{p(v|h)} p(v∣h) 与其是对称的,可直接写出
求边缘概率 p ( v ) \color{blue}\boxed{p(v)} p(v) 要消除 h \color{blue}h h:
p ( v ) = ∑ h p ( h , v ) = ∑ h 1 Z exp ( h T w v + α T v + β T h ) = exp ( α T v ) 1 Z ∑ h 1 exp ( h 1 w 1 v + β 1 h 1 ) ⋯ ∑ h m exp ( h m w m v + β m h m ) 展开 h = exp ( α T v ) 1 Z ( 1 + exp ( w 1 v + β 1 ) ) ⋯ ( 1 + exp ( w m v + β m ) ) h 取0和1 = 1 Z exp { α T v + ∑ i = 1 m log ( 1 + exp ( w i v + β i ) ) ⏟ s o f t p l u s : log ( 1 + exp ( x ) ) } \begin{aligned} \color{blue}p(v)&=\sum\limits_hp(h,v)=\sum\limits_h\frac{1}{Z}\exp(h^Twv+\alpha^Tv+\beta^Th)\\ &=\exp(\alpha^Tv)\frac{1}{Z}\sum\limits_{h_1}\exp(h_1w_1v+\beta_1h_1)\cdots\sum\limits_{h_m}\exp(h_mw_mv+\beta_mh_m)\color{blue}\quad_\text{展开$h$}\\ &=\exp(\alpha^Tv)\frac{1}{Z}(1+\exp(w_1v+\beta_1))\cdots(1+\exp(w_mv+\beta_m))\color{blue}\quad_\text{$h$取0和1}\\ &=\frac{1}{Z}\exp\left\{\alpha^Tv+\sum\limits_{i=1}^m\underbrace{\log(1+\exp(w_iv+\beta_i))}_{\color{blue}softplus:\ \log(1+\exp(x))}\right\} \end{aligned} p(v)=h∑p(h,v)=h∑Z1exp(hTwv+αTv+βTh)=exp(αTv)Z1h1∑exp(h1w1v+β1h1)⋯hm∑exp(hmwmv+βmhm)展开h=exp(αTv)Z1(1+exp(w1v+β1))⋯(1+exp(wmv+βm))h取0和1=Z1exp⎩⎪⎨⎪⎧αTv+i=1∑msoftplus: log(1+exp(x)) log(1+exp(wiv+βi))⎭⎪⎬⎪⎫
其中 w i w_i wi 为 w w w 的行向量
【1】受限玻尔兹曼机
【2】深度学习 — 受限玻尔兹曼机详解(RBM)