机器学习笔记之受限玻尔兹曼机——推断任务[边缘概率]
- 引言
- 回顾:场景构建
- 推断任务——边缘概率求解
- 边缘概率与Softplus函数
引言
上一节介绍了受限玻尔兹曼机中随机变量节点的后验概率,本节将介绍随机变量结点的边缘概率。
回顾:场景构建
已知受限玻尔兹曼机示例表示如下:

将随机变量集合X∈Rp\mathcal X \in \mathbb R^pX∈Rp分成观测变量vvv和隐变量hhh两个部分:
X=(x1,x2,⋯,xp)T=(hv)p×1{h=(h1,h2,⋯,hm)m×1Tv=(v1,v2,⋯,vn)n×1Tm+n=p\mathcal X = (x_1,x_2,\cdots,x_p)^T = \begin{pmatrix} h \\ v \end{pmatrix}_{p \times 1} \quad \begin{cases} h = (h_1,h_2,\cdots,h_m)_{m \times 1}^T \\ v = (v_1,v_2,\cdots,v_n)_{n \times 1}^T \end{cases} \quad m + n = pX=(x1,x2,⋯,xp)T=(hv)p×1{h=(h1,h2,⋯,hm)m×1Tv=(v1,v2,⋯,vn)n×1Tm+n=p
并且观测变量vvv、隐变量hhh中的每一个随机变量均服从伯努利分布:
hj(j=1,2,⋯,m)∈{0,1}vi(i=1,2,⋯,n)∈{0,1}\begin{aligned} h_j(j=1,2,\cdots,m) \in \{0,1\} \\ v_i (i=1,2,\cdots,n) \in \{0,1\} \end{aligned}hj(j=1,2,⋯,m)∈{0,1}vi(i=1,2,⋯,n)∈{0,1}
基于该模型,随机变量集合X\mathcal XX的联合概率分布表示如下:
P(X)=P(v,h)=1Zexp{−E(h,v)}=1Zexp(vTWh+bTv+cTh)=1Zexp[∑j=1m∑i=1nvi⋅wij⋅hj+∑i=1nbivi+∑j=1mcjhj]\begin{aligned} \mathcal P(\mathcal X) = \mathcal P(v,h) & = \frac{1}{\mathcal Z} \exp \{- \mathbb E(h,v)\} \\ & = \frac{1}{\mathcal Z} \exp \left(v^T\mathcal W h + b^Tv + c^Th\right) \\ & = \frac{1}{\mathcal Z} \exp \left[\sum_{j=1}^m\sum_{i=1}^n v_i \cdot w_{ij} \cdot h_j + \sum_{i=1}^n b_i v_i + \sum_{j=1}^m c_j h_j\right] \end{aligned}P(X)=P(v,h)=Z1exp{−E(h,v)}=Z1exp(vTWh+bTv+cTh)=Z1exp[j=1∑mi=1∑nvi⋅wij⋅hj+i=1∑nbivi+j=1∑mcjhj]
推断任务——边缘概率求解
- 在受限玻尔兹曼机中,仅对观测变量vvv的边缘概率分布进行求解。边缘概率P(v)\mathcal P(v)P(v)本质上就是对联合概率分布关于隐变量hhh的积分操作:
P(v)=∑hP(v,h)\mathcal P(v) = \sum_{h}\mathcal P(v,h)P(v)=h∑P(v,h) - 由于模型已知,即模型参数W,b,c\mathcal W,b,cW,b,c是已知的。将上式沿P(v,h)\mathcal P(v,h)P(v,h)展开:
再写一遍~
化简目标是:将
P(v,h)\mathcal P(v,h)P(v,h)中关于隐变量
hhh中的项积分掉,使其变为‘仅包含观测变量’
vvv的式子。
P(v)=∑h[1Zexp(∑j=1m∑i=1nvi⋅wij⋅hj+∑i=1nbivi+∑j=1mcjhj)]=∑h1,⋯∑hm[1Zexp(∑j=1m∑i=1nvi⋅wij⋅hj+∑i=1nbivi+∑j=1mcjhj)]\begin{aligned} \mathcal P(v) & = \sum_{h} \left[\frac{1}{\mathcal Z} \exp \left(\sum_{j=1}^m\sum_{i=1}^n v_i \cdot w_{ij} \cdot h_j + \sum_{i=1}^n b_i v_i + \sum_{j=1}^m c_j h_j\right)\right] \\ & = \sum_{h_1},\cdots \sum_{h_m}\left[\frac{1}{\mathcal Z} \exp \left(\sum_{j=1}^m\sum_{i=1}^n v_i \cdot w_{ij} \cdot h_j + \sum_{i=1}^n b_i v_i + \sum_{j=1}^m c_j h_j\right)\right] \\ \end{aligned}P(v)=h∑[Z1exp(j=1∑mi=1∑nvi⋅wij⋅hj+i=1∑nbivi+j=1∑mcjhj)]=h1∑,⋯hm∑[Z1exp(j=1∑mi=1∑nvi⋅wij⋅hj+i=1∑nbivi+j=1∑mcjhj)] - 观察上述中括号内的项,其中1Z,∑i=1nbivi\frac{1}{\mathcal Z},\sum_{i=1}^n b_iv_iZ1,∑i=1nbivi与随机变量hj(j=1,2,⋯,m)h_j(j=1,2,\cdots,m)hj(j=1,2,⋯,m)无关;因而将它们提到公式前端:
为了方便观看,将
vi(i=1,2,⋯,n)v_i(i=1,2,\cdots,n)vi(i=1,2,⋯,n)的部分进行合并
P(v)=1Zexp(bTv)⋅∑h1,⋯,∑hmexp{∑j=1m[(hjWj)Tv+cjhj]}=1Zexp(bTv)⋅∑h1,⋯,∑hmexp{[(h1W1)Tv+c1h1]+⋯+(hmWm+cmhm)Tv}\begin{aligned} \mathcal P(v) & = \frac{1}{\mathcal Z} \exp (b^Tv) \cdot \sum_{h_1},\cdots,\sum_{h_m} \exp\left\{\sum_{j=1}^m \left[(h_j \mathcal W_j)^T v + c_jh_j\right]\right\} \\ & = \frac{1}{\mathcal Z} \exp (b^Tv) \cdot \sum_{h_1},\cdots,\sum_{h_m} \exp\left\{[(h_1\mathcal W_1)^Tv + c_1h_1] + \cdots + (h_m\mathcal W_m + c_mh_m)^Tv\right\} \end{aligned}P(v)=Z1exp(bTv)⋅h1∑,⋯,hm∑exp{j=1∑m[(hjWj)Tv+cjhj]}=Z1exp(bTv)⋅h1∑,⋯,hm∑exp{[(h1W1)Tv+c1h1]+⋯+(hmWm+cmhm)Tv}
以大括号第一项为例:(h1W1)Tv+c1h1(h_1\mathcal W_1)^Tv + c_1h_1(h1W1)Tv+c1h1中只和隐变量h1h_1h1相关,与其他隐变量无关。因此,上式可改写为:
P(v)=1Zexp(bTv)⋅{∑h1exp[(h1W1)Tv+c1h1]}⋯{∑hmexp[(hmWm)Tv+cmhm]}\mathcal P(v) = \frac{1}{\mathcal Z} \exp (b^Tv) \cdot \left \{\sum_{h_1} \exp [(h_1\mathcal W_1)^Tv + c_1h_1]\right\} \cdots \left \{\sum_{h_m} \exp [(h_m\mathcal W_m)^Tv + c_mh_m]\right\}P(v)=Z1exp(bTv)⋅{h1∑exp[(h1W1)Tv+c1h1]}⋯{hm∑exp[(hmWm)Tv+cmhm]}
由于hj(j=1,2,⋯,m)∈{0,1}h_j(j=1,2,\cdots,m) \in \{0,1\}hj(j=1,2,⋯,m)∈{0,1},因此上式每个大括号中的项可继续展开,表示为如下形式。这里以第一项为例:
∑h1exp[(h1W1)Tv+c1h1]=∑h1∈{0,1}exp[(h1W1)Tv+c1h1]=exp(0)+exp(W1Tv+c1)=1+exp(W1Tv+c1)\begin{aligned} \sum_{h_1} \exp [(h_1\mathcal W_1)^Tv + c_1h_1] & = \sum_{h_1 \in \{0,1\}}\exp [(h_1\mathcal W_1)^Tv + c_1h_1] \\ & = \exp(0) + \exp(\mathcal W_1^Tv + c_1) \\ & = 1 + \exp(\mathcal W_1^Tv + c_1) \end{aligned}h1∑exp[(h1W1)Tv+c1h1]=h1∈{0,1}∑exp[(h1W1)Tv+c1h1]=exp(0)+exp(W1Tv+c1)=1+exp(W1Tv+c1)
对上式继续化简:
对
1+exp(WjTv+cj)1 + \exp(\mathcal W_j^Tv + c_j)1+exp(WjTv+cj)进行变形,将
logloglog函数引入,从而使
exp,log\exp,\logexp,log相互抵消。
1+exp(WjTv+cj)=exp{log[1+exp(WjTv+cj)]}j=1,2,⋯,m1 + \exp(\mathcal W_j^Tv + c_j) = \exp \left \{\log [1 + \exp(\mathcal W_j^Tv + c_j)]\right\} \quad j=1,2,\cdots,m1+exp(WjTv+cj)=exp{log[1+exp(WjTv+cj)]}j=1,2,⋯,m - 因而原式P(v)\mathcal P(v)P(v)有:
P(v)=1Zexp(bTv)⋅∏j=1mexp{log[1+exp(WjTv+cj)]}\mathcal P(v) = \frac{1}{\mathcal Z} \exp (b^Tv) \cdot \prod_{j=1}^m \exp\left \{\log [1 + \exp(\mathcal W_j^Tv + c_j)]\right\}P(v)=Z1exp(bTv)⋅j=1∏mexp{log[1+exp(WjTv+cj)]}
将
expexpexp提出来,最终有:
P(v)=1Zexp{bTv+∑j=1mlog[1+exp(WjTv+cj)]}\mathcal P(v) = \frac{1}{\mathcal Z} \exp \left\{b^Tv + \sum_{j=1}^m \log[1 + \exp(\mathcal W_j^T v + c_j)]\right\}P(v)=Z1exp{bTv+j=1∑mlog[1+exp(WjTv+cj)]}
观测变量vvv的边缘概率分布即为所求。
边缘概率与Softplus函数
观察上式中的log[1+exp(WjTv+cj)]\log[1 + \exp(\mathcal W_j^T v + c_j)]log[1+exp(WjTv+cj)]部分,它实际上就是softplus的表现形式:
Softplus(x)=log[1+exp(x)]\text{Softplus}(x) = \log [1 + \exp(x)]Softplus(x)=log[1+exp(x)]
Softplus\text{Softplus}Softplus函数图像表示如下:

Softplus也是一种激活函数,它可看做是ReLU函数的平滑效果,其值域为(0,∞)(0,\infty)(0,∞)(不含0)。并且不会像ReLU函数产生神经元挂掉情况。
并且更值得一提的属性是,Softplus函数的导数是Sigmoid函数:
∂Softplus(x)∂x=exp(x)exp(x)+1=11+1exp(x)=11+exp(−x)\begin{aligned}\frac{\partial \text{ Softplus}(x)}{\partial x} & = \frac{\exp(x)}{\exp(x) + 1} \\ & = \frac{1}{1 + \frac{1}{\exp (x)}} \\ & = \frac{1}{1 + \exp(-x)} \end{aligned}∂x∂ Softplus(x)=exp(x)+1exp(x)=1+exp(x)11=1+exp(−x)1
因而上述公式可最终化简为:
Wj\mathcal W_jWj表示
W\mathcal WW矩阵第
jjj行的行向量。
P(v)=1Zexp{bTv+∑j=1mSoftplus(WjTv+cj)}\mathcal P(v) = \frac{1}{\mathcal Z} \exp \{b^Tv + \sum_{j=1}^m \text{Softplus}(\mathcal W_j^T v + c_j)\} P(v)=Z1exp{bTv+j=1∑mSoftplus(WjTv+cj)}
至此,受限玻尔兹曼机介绍结束(Learning问题的坑后续补)。下一节将介绍配分函数(Partition Function)。
相关参考:
机器学习-受限玻尔兹曼机(6)-模型推断(Inference)-边缘概率
速用笔记 | Sigmoid/Tanh/ReLu/Softplus 激活函数的图形、表达式、导数、适用条件