28 玻尔兹曼机 Boltzmann Machine

玻尔兹曼机(Boltzmann Machine)在“受限玻尔兹曼机”那一章就有了简单的描述。在那一章我们就较为详细的分析过了,由于Boltzmann machine 中的依赖关系过于复杂,它的Learning 和Inference问题基本是intractable。所以,为了简化而提出了受限玻尔兹曼机(Restricted Boltzmann Machine)。
但是,为什么又重新谈谈这个似乎不太好的模型呢?主要原因是Boltzmann Machine 是深度信念网络(DBN),前馈神经网络等网络结构的基础,大名鼎鼎的变分推断(Variational Inference)也是Hinton为求解Boltzmann machine 而提出的。

1 Introduction

Boltzmann machine 节点之间为任意连接,节点可以分为可观测变量 v v v 和不可观测变量 h h h。每个节点都符合{0, 1} 的伯努利分布。Boltzmann machine 模型的概率图示意图如下所示:
在这里插入图片描述
其中, v D × 1 ∈ { 0 , 1 } D , h P × 1 ∈ { 0 , 1 } P v_{D \times 1} \in\{0,1\}^{D}, h_{P \times 1} \in\{0,1\}^{P} vD×1{0,1}D,hP×1{0,1}P 。根据“受限玻尔兹曼" 那节的知识,可以得出,概率图的联合概率分布为:
{ P ( v , h ) = 1 2 exp ⁡ { − E ( v , h ) } E ( v , h ) = − ( v ⊤ ⋅ W ⋅ h + 1 2 v ⊤ ⋅ L v + 1 2 h ⊤ ⋅ J ⋅ h )         ( 1 ) \left\{\begin{array}{l} P(v, h)=\frac{1}{2} \exp \{-\mathrm{E}(v, h)\} \\ \mathrm{E}(v, h)=-\left(v^{\top} \cdot W \cdot h+\frac{1}{2} v^{\top} \cdot L v+\frac{1}{2} h^{\top} \cdot J \cdot h\right) \end{array}\right. \ \ \ \ \ \ \ (1) {P(v,h)=21exp{E(v,h)}E(v,h)=(vWh+21vLv+21hJh)       (1)
其中, L = [ L i j ] D × D , J = [ J i j ] P × P , W = [ w i j ] D × P L=\left[L_{i j}\right]_{D \times D}, \quad J=\left[J_{i j}\right]_{P \times P}, \quad W=\left[w_{i j}\right]_{D \times P} L=[Lij]D×D,J=[Jij]P×P,W=[wij]D×P 。我相信坚持学到这里的同学们,对于机器学习的数学推导变换一定有了较好的基础。实际上矩阵的相乘就是用简单的方式来表示连加,在涉及到求导运算时,矩阵相乘来代替连加符号,可以简化推导过程。比如, v ⊤ ⋅ W ⋅ h = ∑ i = 1 D ∑ j = 1 P v i w i j h j v^{\top} \cdot W \cdot h=\sum_{i=1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j} vWh=i=1Dj=1Pviwijhj. 而 1 2 v ⊤ ⋅ L v \frac{1}{2} v^{\top} \cdot L v 21vLv 前面为什么光乘上 1 / 2 1 / 2 1/2 呢? 实际上打开就知道了 , v ⊤ ⋅ L v = ∑ i = 1 D ∑ j = 1 D v i w i j v j , , v^{\top} \cdot L v=\sum_{i=1}^{D} \sum_{j=1}^{D} v_{i} w_{i j} v_{j}, ,vLv=i=1Dj=1Dviwijvj, 那么很显然 v i w i j v j = v j w j i v i v_{i} w_{i j} v_{j}=v_{j} w_{j i} v_{i} viwijvj=vjwjivi。 所以,所有的值都被加了两次,而我们的目的只翠求 v v v 集合中的任意两个点的 邦积,只需要加一次即可,当然需要乘上 1 2 \frac{1}{2} 21
而这个 1 2 \frac{1}{2} 21 又乘与不乘都没有关系,因为 1 2 \frac{1}{2} 21 可以藏在 L L L 里面,在 Learning 的过程中,自动的缩小 1 2 \frac{1}{2} 21 就可以了。在此问题中,要学习的參数集合为 θ = { W , L , J } \theta=\{W, L, J\} θ={W,L,J}

2 基于极大似然的梯度上升

既然是基于极大似然的梯度上升,显然离不开两个部分,极大似然函数和梯度。总所周知,极大化然估计的主要思路是,使极大似然函数最大时的参数。首先明确一下,要求的参数为 θ = { W , L , J } \theta=\{W, L, J\} θ={W,L,J} 样本與合 v , ∣ v ∣ = D . v,|v|=D . v,v=D. 那么,似然函数为:
∑ v P ( v ) = ∑ v ∑ h P ( v , h ) \sum_{v} P(v)=\sum_{v} \sum_{h} P(v, h) vP(v)=vhP(v,h)

那么对数似然函数为(实际上 1 D \frac{1}{D} D1 加不加对于求解没有什么关系,为了严谨起见还是加上):
1 D ∑ v log ⁡ P ( v ) \frac{1}{D} \sum_{v} \log P(v) D1vlogP(v)

2.1 似然导数求解

那么,下一步就是对对数似然函数求导,即为:
∂ ∂ θ 1 D ∑ v log ⁡ p ( v ) = 1 D ∑ v ∂ log ⁡ p ( v ) ∂ θ        ( 2 ) \frac{\partial}{\partial \theta} \frac{1}{D} \sum_{v} \log p(v)=\frac{1}{D} \sum_{v} \frac{\partial \log p(v)}{\partial \theta} \ \ \ \ \ \ (2) θD1vlogp(v)=D1vθlogp(v)      (2)
在“直面配分函数”那章的公式(27),我们已经详细的推导了Boltzmann Distribution 的log 似然梯度,
1 D ∂ ∂ θ log ⁡ P ( v ) = 1 D ( ∑ h ∑ v P ( h , v ) ∂ ∂ θ E ( h , v ) − ∑ h P ( h ∣ v ) ∂ ∂ θ E ( h , v ) ) \frac{1}{D} \frac{\partial}{\partial \theta} \log P(v)=\frac{1}{D}\left(\sum_{h} \sum_{v} P(h, v) \frac{\partial}{\partial \theta} \mathrm{E}(h, v)-\sum_{h} P(h | v) \frac{\partial}{\partial \theta} \mathrm{E}(h, v)\right) D1θlogP(v)=D1(hvP(h,v)θE(h,v)hP(hv)θE(h,v))
我们主要研究的是对 w w w 的求导,对其他两个参数矩阵的求导都一样,而且比 w w w 要更简单一点,这里主要是对 w w w 求导。小编狠下心来,系统的看了一下矩阵求导,迟早都要学的,建议大家也可以系统的看看,挺有帮助的。那么对 w w w 参数矩阵的求导如下所示:
∂ log ⁡ p ( v ) ∂ W = ∑ v ∑ h p ( v , h ) ⋅ − ( v h ⊤ ) − ∑ h p ( h ∣ v ) ⋅ − ( v h ⊤ ) = ∑ i p ( h ∣ v ) ⋅ v h ⊤ − ∑ T ∑ h p ( v , h ) ⋅ v h ⊤ \begin{aligned} \frac{\partial \log p(v)}{\partial W} &=\sum_{v} \sum_{h} p(v, h) \cdot-\left(v h^{\top}\right)-\sum_{h} p(h | v) \cdot-\left(v h^{\top}\right) \\ &=\sum_{i} p(h | v) \cdot v h^{\top}-\sum_{T} \sum_{h} p(v, h) \cdot v h^{\top} \end{aligned} Wlogp(v)=vhp(v,h)(vh)hp(hv)(vh)=ip(hv)vhThp(v,h)vh
其中, E ( v , h ) = − ( v ⊤ W h + 1 2 v ⊤ L v + 1 2 h ⊤ J h ) \mathrm{E}(v, h)=-\left(v^{\top} W h+\frac{1}{2} v^{\top} L v+\frac{1}{2} h^{\top} J h\right) E(v,h)=(vWh+21vLv+21hJh) 。注意一下,这里的 v v v h h h 矩阵的大小分别为 , D × 1 , D \times 1 ,D×1 P × 1 P \times 1 P×1 v ⊤ W h v^{\top} W h vWh 是一个一维的,那么对 W D × P W_{D \times P} WD×P 求导,得到的也必然是一个 D × P D \times P D×P 的矩阵。那么,很简单可以得到:
1 D ∑ v ∂ log ⁡ P ( v ) ∂ W = 1 D ∑ v ∑ h p ( h ∣ v ) ⋅ v h T − 1 D ∑ v ∑ v ∑ h P ( v , h ) ⋅ v h T         ( 5 ) \frac{1}{D} \sum_{v} \frac{\partial \log P(v)}{\partial W}=\frac{1}{D} \sum_{v} \sum_{h} p(h | v) \cdot v h^{T}-\frac{1}{D} \sum_{v} \sum_{v} \sum_{h} P(v, h) \cdot v h^{T} \ \ \ \ \ \ \ (5) D1vWlogP(v)=D1vhp(hv)vhTD1vvhP(v,h)vhT       (5)
看到其中的 1 D ∑ v ∑ v ∑ h P ( v , h ) ⋅ v h T , \frac{1}{D} \sum_{v} \sum_{v} \sum_{h} P(v, h) \cdot v h^{T}, D1vvhP(v,h)vhT, v v v h h h 求完和以后,显然 ∑ v ∑ h P ( v , h ) ⋅ v h T \sum_{v} \sum_{h} P(v, h) \cdot v h^{T} vhP(v,h)vhT 是一个常数 C C C。 所以 f r a c 1 D ∑ v ∑ v ∑ h P ( v , h ) ⋅ v h T = 1 D ∑ v C = 1 D D ⋅ C = ∑ v ∑ h P ( v , h ) ⋅ v h T ⋅ f r a c 1 D \sum_{v} \sum_{v} \sum_{h} P(v, h) \cdot v h^{T}=\frac{1}{D} \sum_{v} C=\frac{1}{D} D \cdot C=\sum_{v} \sum_{h} P(v, h) \cdot v h^{T} \cdot frac1DvvhP(v,h)vhT=D1vC=D1DC=vhP(v,h)vhT 所公式(5) 可以改写为:
1 D ∑ v ∂ log ⁡ P ( v ) ∂ W = 1 D ∑ v ∑ h P ( h ∣ v ) ⋅ v h T − ∑ v ∑ h P ( v , h ) ⋅ v h T         ( 6 ) \frac{1}{D} \sum_{v} \frac{\partial \log P(v)}{\partial W}=\frac{1}{D} \sum_{v} \sum_{h} P(h | v) \cdot v h^{T}-\sum_{v} \sum_{h} P(v, h) \cdot v h^{T} \ \ \ \ \ \ \ (6) D1vWlogP(v)=D1vhP(hv)vhTvhP(v,h)vhT       (6)
而公式(6)可以被简写为:
1 D ∑ v ∂ log ⁡ P ( v ) ∂ W = E P ant  [ v h ⊤ ] − E P model  [ v h ⊤ ] \frac{1}{D} \sum_{v} \frac{\partial \log P(v)}{\partial W}=\mathbb{E}_{P_{\text {ant }}}\left[v h^{\top}\right]-\mathbb{E}_{P_{\text {model }}}\left[v h^{\top}\right] D1vWlogP(v)=EPant [vh]EPmodel [vh]
其中,
P data  = P data  ( v ) ⋅ P model  ( h ∣ v ) P model  = P model  ( v , h )       ( 8 ) \begin{array}{l} P_{\text {data }}=P_{\text {data }}(v) \cdot P_{\text {model }}(h | v) \\ P_{\text {model }}=P_{\text {model }}(v, h) \end{array} \ \ \ \ \ (8) Pdata =Pdata (v)Pmodel (hv)Pmodel =Pmodel (v,h)     (8)
为什么这样表达呢? 实际上老师说的很模糊,我谈谈自己的理解。在 ∑ v ∑ h P ( v , h ) \sum_{v} \sum_{h} P(v, h) vhP(v,h) 中, P ( v , h ) P(v, h) P(v,h) 是生成 模型,本身就是我们建立的模型,所以被称为 Pmodel。而在 ∑ v ∑ h P ( h ∣ v ) \sum_{v} \sum_{h} P(h | v) vhP(hv) 首先从经验分布 P ( v ) P(v) P(v) 从采 样得到 v , v, v, 然后利用模型分布来求解 P ( h ∣ v ) , P(h | v), P(hv), 所以 P data  = P data  ( v ) ⋅ P model  ( h ∣ v ) ∘ P_{\text {data }}=P_{\text {data }}(v) \cdot P_{\text {model }}(h | v)_{\circ} Pdata =Pdata (v)Pmodel (hv) 采样出 P model  ( h ∣ v ) P_{\text {model }}(h | v) Pmodel (hv) P model  ( v ) P_{\text {model }}(v) Pmodel (v) 就可以求解出 P model  ( h , v ) P_{\text {model }}(h, v) Pmodel (h,v) 了。按照同样的方法可以求得对 { L , J } \{L, J\} {L,J} 的导数。

2.2 似然梯度下降法汇总

  • Boltzmann Machines 中的节点可以分为可观测变量集合 v 和不可观测变量集合 h . h . h. 每个节点属 于 0 / 1 0 / 1 0/1 分布, v D × 1 ∈ { 0 , 1 } D , h P × 1 ∈ { 0 , 1 } P v_{D \times 1} \in\{0,1\}^{D}, h_{P \times 1} \in\{0,1\}^{P} vD×1{0,1}D,hP×1{0,1}P
  • 参数集合为: θ = { W , L , J } \theta=\{W, L, J\} θ={W,L,J} 。参数矩阵的大小为: L = [ L i j ] D × D , J = [ J i j ] P × P , W = [ w i j ] D × P L=\left[L_{i j}\right]_{D \times D}, J=\left[J_{i j}\right]_{P \times P}, W=\left[w_{i j}\right]_{D \times P} L=[Lij]D×D,J=[Jij]P×P,W=[wij]D×P
  • Boltzmann Distribution 的模型表示为:
    { P ( v , h ) = 1 2 exp ⁡ { − E ( v , h ) } E ( v , h ) = − ( v ⊤ ⋅ W ⋅ h + 1 2 v ⊤ ⋅ L v + 1 2 h ⊤ ⋅ J ⋅ h ) \left\{\begin{array}{l} P(v, h)=\frac{1}{2} \exp \{-\mathrm{E}(v, h)\} \\ \mathrm{E}(v, h)=-\left(v^{\top} \cdot W \cdot h+\frac{1}{2} v^{\top} \cdot L v+\frac{1}{2} h^{\top} \cdot J \cdot h\right) \end{array}\right. {P(v,h)=21exp{E(v,h)}E(v,h)=(vWh+21vLv+21hJh)
  • 求解参数用到极大似然估计,Log-Likelihood Function 为:
    1 D ∑ v log ⁡ P ( v ) \frac{1}{D} \sum_{v} \log P(v) D1vlogP(v)
  • 通过计算可以得到每个参数矩阵的似然梯度为:
    { Δ W = α ( E p data  [ v h ⊤ ] − E p moaca  [ v h ⊤ ] ) Δ L = α ( E p data  [ v v ⊤ ] − E p maadet  [ v v ⊤ ] ) Δ J = α ( E pdata  [ h h ⊤ ] − E p moaci  [ h h ⊤ ] ) \left\{\begin{array}{l} \Delta W=\alpha\left(\mathbb{E}_{p_{\text {data }}}\left[v h^{\top}\right]-\mathbb{E}_{p_{\text {moaca }}}\left[v h^{\top}\right]\right) \\ \Delta L=\alpha\left(\mathbb{E}_{p_{\text {data }}}\left[v v^{\top}\right]-\mathbb{E}_{p_{\text {maadet }}}\left[v v^{\top}\right]\right) \\ \Delta J=\alpha\left(\mathbb{E}_{\text {pdata }}\left[h h^{\top}\right]-\mathbb{E}_{p_{\text {moaci }}}\left[h h^{\top}\right]\right) \end{array}\right. ΔW=α(Epdata [vh]Epmoaca [vh])ΔL=α(Epdata [vv]Epmaadet [vv])ΔJ=α(Epdata [hh]Epmoaci [hh])
    其中:
    { P data  = P data  ( v ) ⋅ P model  ( h ∣ v ) P model  = P model  ( v , h )       ( 12 ) \left\{\begin{array}{l} P_{\text {data }}=P_{\text {data }}(v) \cdot P_{\text {model }}(h | v) \\ P_{\text {model }}=P_{\text {model }}(v, h) \end{array}\right. \ \ \ \ \ (12) {Pdata =Pdata (v)Pmodel (hv)Pmodel =Pmodel (v,h)     (12)

2.3 小结

通过上述的求解发现,梯度的统计量只和 v , h v, h v,h 相关,只不过分布不一样而已。RBM 也是一种特殊的Boltzmann Machines,RBM 的求解比较的简单。在“直面配分函数”那一章中可以看到,RBM在化简完毕后, P d a t a = P d a t a ( v ) P_{data} = P_{data}(v) Pdata=Pdata(v) 不需要考虑 P m o d e l ( h ∣ v ) P_{model} (h|v) Pmodel(hv),这样计算起来就非常简单,梯度在理论上很干净。在前馈神经网络中Gradient 需要使用链式求导法则,计算起来非常的复杂。而这里就不一样,只要解决了后验 P m o d e l ( h ∣ v ) P_{model} (h|v) Pmodel(hv) 就可以了。那么,下一个重点就是如何从后验 P m o d e l ( h ∣ v ) P_{model} (h|v) Pmodel(hv)中进行采样。

3 基于MCMC 的似然梯度下降

3.1 MCMC 似然梯度求解总述

在第二小节中,我们已经讲到了,使用梯度上升法来使log 似然函数达到最大,从而求解对应的最优参数。参数更新公式为:

θ ( t + 1 ) = θ ( t ) + Δ θ \begin{array}{l} \qquad \theta^{(t+1)}=\theta^{(t)}+\Delta \theta \end{array} θ(t+1)=θ(t)+Δθ
其中, △ θ = △θ = θ={ △ W , △ L , △ J △W,△L,△J W,L,J }。以 △ W △W W 为例, △ W △W W 是一个矩阵 △ W = [ △ w i j ] △W = [△w_{ij} ] W=[wij]。其中,
Δ w i j = α [ E P Pata  [ v i h j ] ⏟ Postive phase  − E P modati  [ v i h j ] ⏟ Negative phase  ] \begin{array}{l} \Delta w_{i j}=\alpha[\underbrace{\mathbb{E}_{P_{\text {Pata }}}\left[v_{i} h_{j}\right]}_{\text {Postive phase }}-\underbrace{\mathbb{E}_{P_{\text {modati }}\left[v_{i} h_{j}\right]}}_{\text {Negative phase }}] \end{array} Δwij=α[Postive phase  EPPata [vihj]Negative phase  EPmodati [vihj]]
这个 Postive 和 Negative phase 巾说法,我们在“直面配分所数”那章有详细的描述。那么,现 在的难点就是 v i h j v_{i} h_{j} vihj 从何而来。 回忆一下,在 RBM 中, P ( h ∣ v ) P(h | v) P(hv) 是可以直接求出来的。
P ( h ∣ v ) = ∏ l = 1 m P ( h l ∣ v ) = ( σ ( ∑ j = 1 n w l j v i + β l ) ) k ( 1 − σ ( ∑ j = 1 n w l j v i + β l ) ) m − k P(h | v)=\prod_{l=1}^{m} P\left(h_{l} | v\right)=\left(\sigma\left(\sum_{j=1}^{n} w_{l j} v_{i}+\beta_{l}\right)\right)^{k}\left(1-\sigma\left(\sum_{j=1}^{n} w_{l j} v_{i}+\beta_{l}\right)\right)^{m-k} P(hv)=l=1mP(hlv)=(σ(j=1nwljvi+βl))k(1σ(j=1nwljvi+βl))mk
P data  P_{\text {data }} Pdata  直接从样本中进行采样就可ル了,而 P model  ( v , h ) P_{\text {model }}(v, h) Pmodel (v,h) 为:
P ( h , v ) h i v j = ∑ h ∑ v P ( v ) P ( h ∣ v ) h i v j = ∑ v P ( v ) ∑ h P ( h ∣ v ) h i v j = 1 Z exp ⁡ ( α T v + ∑ i = 1 m log ⁡ ( 1 + exp ⁡ ( w i v + β i ) ) ) σ ( ∑ j = 1 n w i j v i + β i ) v j        ( 16 ) \begin{aligned} P(h, v) h_{i} v_{j} &=\sum_{h} \sum_{v} P(v) P(h | v) h_{i} v_{j} \\ &=\sum_{v} P(v) \sum_{h} P(h | v) h_{i} v_{j} \\ &=\frac{1}{Z} \exp \left(\alpha^{T} v+\sum_{i=1}^{m} \log \left(1+\exp \left(w_{i} v+\beta_{i}\right)\right)\right) \sigma\left(\sum_{j=1}^{n} w_{i j} v_{i}+\beta_{i}\right) v_{j} \end{aligned} \ \ \ \ \ \ (16) P(h,v)hivj=hvP(v)P(hv)hivj=vP(v)hP(hv)hivj=Z1exp(αTv+i=1mlog(1+exp(wiv+βi)))σ(j=1nwijvi+βi)vj      (16)
这个分布过于复杂,当时采用的是基于对于散度的 Gibbs 采样来解决。而在 Boltzmann Machines 中,Postive phase 和 Negative phase 都是 Intractable。所以,Hinton 捉出了用 MCMC 来对 P ( h ∣ v ) P(h | v) P(hv) 进行采样。

这里再明确一下逻辑,在求解 △ W △W W 中,主要是解决三个部分, P d a t a ( v ) , P m o d e l ( h ∣ v ) , P m o d e l ( v , h ) P_{data}(v), P_{model} (h|v), P_{model} (v, h) Pdata(v),Pmodel(hv),Pmodel(v,h),其中 P model  ( v , h ) = P model  ( h ∣ v ) ⋅ P model  ( v ) . P_{\text {model }}(v, h)=P_{\text {model }}(h | v) \cdot P_{\text {model }}(v) . Pmodel (v,h)=Pmodel (hv)Pmodel (v). 所以, 而 P data  ( v ) P_{\text {data }}(v) Pdata (v) P modol  ( v ) P_{\text {modol }}(v) Pmodol (v) 相对比较简单,所以 难点在于 P m o d e l ( h ∣ v ) P_{model} ( h | v) Pmodel(hv) 的求解。而在RBM 中Pmodel (h|v) 比较容易求解,而 P m o d e l ( v , h ) P_{model} (v, h) Pmodel(v,h) 过于复杂,所以要采用MCMC 来解决。而在Boltzmann Machines 中,由于关系过于复杂,没有办法分解,甚至最大团分解都没有用,因为最大团就是自己,那么连 P m o d e l ( h ∣ v ) P_{model} (h|v) Pmodel(hv) 都求不出来,那么Postive phase 和Negative phase 都是Intractable。

很幸运的是,通过推导,可以街到:
P ( v i = 1 ∣ h , v − i ) = σ ( ∑ j = 1 P w i j h j + ∑ k = 1 \ i D L i k v k ) P ( h j = 1 ∣ v , h − j ) = σ ( ∑ i = 1 D w i j v i + ∑ m = 1 p J j m h n )       ( 17 ) \begin{array}{l} P\left(v_{i}=1 | h, v_{-i}\right)=\sigma\left(\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1 \backslash i}^{D} L_{i k} v_{k}\right) \\ P\left(h_{j}=1 | v, h_{-j}\right)=\sigma\left(\sum_{i=1}^{D} w_{i j} v_{i}+\sum_{m=1}^{p} J_{j m} h_{n}\right) \end{array} \ \ \ \ \ (17) P(vi=1h,vi)=σ(j=1Pwijhj+k=1\iDLikvk)P(hj=1v,hj)=σ(i=1Dwijvi+m=1pJjmhn)     17

解释一下,这两个公式是什么意思。公式表达的是,在已知一个节点以外的所有的点的条件下,这个节点的条件概率是可求的。其中 1 1 1 \ i i i 表达的意思是 1 ∼ D 1 ∼ D 1D 但不包括 i i i 的所有节点。
为什么说很幸运呢?因为真实的后验是求不出来的,但是MCMC 提供了一种一维一维的采样的方法(Gibbs 采样法)。而每一个维的概率分布可以求出来,那么Gibbs 采样就可以很愉快的被使用了。而且,这个结论同时也可以在RBM 中使用,下面我们来举个例子,假设有一个RBM,如下图所示:
在这里插入图片描述
由于在已知 v v v 的情况下, h h h 中的节点都是相互独立的,所以:
P ( h ∣ v ) = ∏ j = 1 3 p ( h j ∣ v )      ( 18 ) P(h | v)=\prod_{j=1}^{3} p\left(h_{j} | v\right) \ \ \ \ (18) P(hv)=j=13p(hjv)    (18)同理可得:
P ( h j = 1 ∣ v ) = P ( h j = 1 ∣ v , h − j ) = σ ( ∑ i = 1 D w i j v i + 0 )      ( 19 ) P\left(h_{j}=1 | v\right)=P\left(h_{j}=1 | v, h_{-j}\right)=\sigma\left(\sum_{i=1}^{D} w_{i j} v_{i}+0\right) \ \ \ \ (19) P(hj=1v)=P(hj=1v,hj)=σ(i=1Dwijvi+0)    (19)
为什么 ∑ m = 1 \ j p J j m h n = 0 \sum_{m=1 \backslash j}^{p} J_{j m} h_{n}=0 m=1\jpJjmhn=0 呢? 因为, h h h 节点内部都是相互独立的,没有边,所有都是 0. 0 . 0. 实际上在 RBM 那一章,后验是花了较大的功夫去求的。而使用公式 (17) 给出的结论,我们可以较为简单的写 出。可以看到,由于 RBM 的特殊性质, h h h 集合之间相互独立,分解起来非常简单。在 BM 就没有这
么好了,量然每一维可以求出来,由于无法分解,求解起来根本就不可能。

3.2 条件概率推导

在3.1 节中,给出了两个条件概率分布:
P ( v i = 1 ∣ h , v − i ) = σ ( ∑ j = 1 P w i j h j + ∑ k = 1 \ i D L i k v k ) P ( h j = 1 ∣ v , h − j ) = σ ( ∑ i = 1 D w i j v i + ∑ m = 1 p J j m h n )        ( 20 ) \begin{array}{l} P\left(v_{i}=1 | h, v_{-i}\right)=\sigma\left(\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1 \backslash i}^{D} L_{i k} v_{k}\right) \\ P\left(h_{j}=1 | v, h_{-j}\right)=\sigma\left(\sum_{i=1}^{D} w_{i j} v_{i}+\sum_{m=1}^{p} J_{j m} h_{n}\right) \end{array} \ \ \ \ \ \ (20) P(vi=1h,vi)=σ(j=1Pwijhj+k=1\iDLikvk)P(hj=1v,hj)=σ(i=1Dwijvi+m=1pJjmhn)      (20)

这一节,就来详细的推导一下:
P ( v i ∣ h , v − i ) = P ( v , h ) P ( h , v − i ) = 1 Z exp ⁡ { − E ( v , h ) } ∑ v i 1 Z exp ⁡ ( − E ( v , h ) } = exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v + 1 2 h ⊤ J h } ∑ v i exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v + 1 2 h ⊤ J h } = exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } ⋅ exp ⁡ { 1 2 h ⊤ J h } exp ⁡ { 1 2 h ⊤ J h } ⋅ ∑ v i exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } \begin{aligned} P\left(v_{i} | h, v_{-i}\right) &=\frac{P(v, h)}{P\left(h, v_{-i}\right)}=\frac{\frac{1}{Z} \exp \{-\mathbb{E}(v, h)\}}{\sum_{v_{i}} \frac{1}{Z} \exp (-\mathbb{E}(v, h)\}}=\frac{\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v+\frac{1}{2} h^{\top} J h\right\}}{\sum_{v_{i}} \exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v+\frac{1}{2} h^{\top} J h\right\}} \\ &=\frac{\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\} \cdot \exp \left\{\frac{1}{2} h^{\top} J h\right\}}{\exp \left\{\frac{1}{2} h^{\top} J h\right\} \cdot \sum_{v_{i}} \exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}} \end{aligned} P(vih,vi)=P(h,vi)P(v,h)=viZ1exp(E(v,h)}Z1exp{E(v,h)}=viexp{vWh+21vLv+21hJh}exp{vWh+21vLv+21hJh}=exp{21hJh}viexp{vWh+21vLv}exp{vWh+21vLv}exp{21hJh}
由于 exp ⁡ { 1 2 h ⊤ J h } \exp \left\{\frac{1}{2} h^{\top} J h\right\} exp{21hJh} v v v 没有关系,所以被单独提出来准备约掉。那么有:
P ( v i ∣ h , v − i ) = exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } ∑ v i exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } P\left(v_{i} | h, v_{-i}\right)=\frac{\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}}{\sum_{v_{i}} \exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}} P(vih,vi)=viexp{vWh+21vLv}exp{vWh+21vLv}

v i = 1 v_i = 1 vi=1 和分母部分没有关系,因为 ∑ v i \sum_{v_i} vi 之后,是和 v i v_i vi 无关的部分了。所以,
P ( v 1 = 1 ∣ h , v − 1 ) = exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } ∣ v 1 − 1 exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } ∣ v t − 1 + exp ⁡ { v ⊤ W h + 1 2 v ⊤ L v } ∣ v 1 − 0 P\left(v_{1}=1 | h, v_{-1}\right)=\frac{\left.\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}\right|_{v_{1}-1}}{\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}\left|v_{t}-1+\exp \left\{v^{\top} W h+\frac{1}{2} v^{\top} L v\right\}\right|_{v_{1}-0}} P(v1=1h,v1)=exp{vWh+21vLv}vt1+exp{vWh+21vLv}v10exp{vWh+21vLv}v11
为了简化公式,我们将公式简化为
P ( v i = 1 ∣ h , v − i ) = Δ ∣ v i − 1 Δ ∣ v v − 0 + Δ ∣ ∣ b i − 1     ( 24 ) \boldsymbol{P}\left(v_{i}=1 | \boldsymbol{h}, v_{-i}\right)=\frac{\Delta | v_{i}-1}{\Delta | v_{v}-0}+\left.\Delta\right|_{| \boldsymbol{b}_{i}-1} \ \ \ (24) P(vi=1h,vi)=Δvv0Δvi1+Δbi1   (24)
下一步很自然的想到,将包含 v i v_i vi 的项,从公式中分离,然后赋予相应的值
Δ v i = exp ⁡ { v ⊤ w h + 1 2 v ⊤ L v } = exp ⁡ { ∑ i = 1 D ∑ j = 1 P v i w i j h j + 1 2 ∑ i = 1 D ∑ k = 1 D v i L i ^ k v k } = exp ⁡ { ∑ i = 1 \ 1 D ∑ j = 1 P v i w i j h j + ∑ j = 1 P v i w i j h j + 1 2 ( ∑ i = 1 \ i D ∑ k = 1 D v i L i k v k + v i L i 1 v i + ∑ i = 1 D v i L i 1 v i + ∑ k = 11 D v i L i k v k ) } \begin{aligned} \Delta v_{\mathrm{i}}=& \exp \left\{v^{\top} w h+\frac{1}{2} v^{\top} L v\right\}=\exp \left\{\sum_{i=1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\frac{1}{2} \sum_{i=1}^{D} \sum_{k=1}^{D} v_{i} L_{\hat{i} k} v_{k}\right\} \\ =& \exp \left\{\sum_{i=1 \backslash 1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\sum_{j=1}^{P} v_{i} w_{i j} h_{j}\right.\\ &\left.+\frac{1}{2}\left(\sum_{i=1 \backslash i}^{D} \sum_{k=1}^{D} v_{i} L_{i k} v_{k}+v_{i} L_{i 1} v_{i}+\sum_{i=1}^{D} v_{i} L_{i 1} v_{i}+\sum_{k=11}^{D} v_{i} L_{i k} v_{k}\right)\right\} \end{aligned} Δvi==exp{vwh+21vLv}=exp{i=1Dj=1Pviwijhj+21i=1Dk=1DviLi^kvk}expi=1\1Dj=1Pviwijhj+j=1Pviwijhj+21i=1\iDk=1DviLikvk+viLi1vi+i=1DviLi1vi+k=11DviLikvk
又因为 L n = 0 , L_{n}=0, Ln=0, L L L 矩阵是对称的,所以 ∑ i − 1 \ c D v i L i ^ i v i = ∑ k − 1 \ t D v i L i k v k . \sum_{i-1 \backslash c}^{D} v_{i} L_{\hat{i} i} v_{i}=\sum_{k-1 \backslash t}^{D} v_{i} L_{i k} v_{k} . i1\cDviLi^ivi=k1\tDviLikvk. 所以,
Δ v i = exp ⁡ { ∑ i = 1 \ i D ∑ j = 1 P v i w i j h j + ∑ j = 1 P v i w i j h j + 1 2 ( ∑ i ^ = 1 \ i D ∑ k = 1 D v i L i ^ k v k + 2 ∑ k ^ = 1 \ i D v i L i k v k ) } = exp ⁡ { ∑ i = 1 \ i D ∑ j = 1 P v i w i j h j + ∑ j = 1 P v i w i j h j + 1 2 ∑ i ^ = 1 \ i D ∑ k = 1 D v i L i ^ k v k + ∑ k ^ = 1 \ i D v i L i k v k } \begin{aligned} \Delta v_{i} &=\exp \left\{\sum_{i=1 \backslash i}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\frac{1}{2}\left(\sum_{\hat{i}=1 \backslash i}^{D} \sum_{k=1}^{D} v_{i} L_{\hat{i} k} v_{k}+2 \sum_{\hat{k}=1 \backslash i}^{D} v_{i} L_{i k} v_{k}\right)\right\} \\ &=\exp \left\{\sum_{i=1 \backslash i}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\sum_{j=1}^{P} v_{i} w_{i j} h_{j}+\frac{1}{2} \sum_{\hat{i}=1 \backslash i}^{D} \sum_{k=1}^{D} v_{i} L_{\hat{i} k} v_{k}+\sum_{\hat{k}=1 \backslash i}^{D} v_{i} L_{i k} v_{k}\right\} \end{aligned} Δvi=expi=1\iDj=1Pviwijhj+j=1Pviwijhj+21i^=1\iDk=1DviLi^kvk+2k^=1\iDviLikvk=expi=1\iDj=1Pviwijhj+j=1Pviwijhj+21i^=1\iDk=1DviLi^kvk+k^=1\iDviLikvk

其中, 1 2 ∑ i = 1 D ∑ k = 1 D v i L i k v k \frac{1}{2} \sum_{i=1}^{D} \sum_{k=1}^{D} v_{i} L_{i k} v_{k} 21i=1Dk=1DviLikvk 是按这样的方式进行分解:
{ i ≠ i , k ≠ i ( D − 1 ) ( D − 1 ) i ^ = i , k = i 1 i ^ = i , k ≠ i ( D − 1 ) i ^ ≠ i , k = i ( D − 1 )        ( 27 ) \left\{\begin{array}{ll} i \neq i, k \neq i & (D-1)(D-1) \\ \hat{i}=i, k=i & 1 \\ \hat{i}=i, k \neq i & (D-1) \\ \hat{i} \neq i, k=i & (D-1) \end{array}\right. \ \ \ \ \ \ (27) i=i,k=ii^=i,k=ii^=i,k=ii^=i,k=i(D1)(D1)1(D1)(D1)      (27)
( D − 1 ) ( D − 1 ) + ( D − 1 ) + ( D − 1 ) + 1 = D 2 (D-1)(D-1)+(D-1)+(D-1)+1=D^{2} (D1)(D1)+(D1)+(D1)+1=D2
那么,使用公式(26)的推导结界,可以得到:
Δ v i = 0 = exp ⁡ { ∑ i = 1 \ i D ∑ j = 1 p v i w i j h j + 1 2 ∑ i = 1 \ i D ∑ k = 1 D v i L i k v k } = exp ⁡ { A + B }       ( 28 ) \Delta v_{i=0}=\exp \left\{\sum_{i=1 \backslash i}^{D} \sum_{j=1}^{p} v_{i} w_{i j} h_{j}+\frac{1}{2} \sum_{i=1 \backslash i}^{D} \sum_{k=1}^{D} v_{i} L_{i k} v_{k}\right\}=\exp \{A+B\} \ \ \ \ \ (28) Δvi=0=expi=1\iDj=1pviwijhj+21i=1\iDk=1DviLikvk=exp{A+B}     (28)
其中, A = ∑ i − 1 \ i D ∑ j − 1 P v i w i j h j , B = 1 2 ∑ i − 1 \ i D ∑ k = 1 D v i L i k v k . A=\sum_{i-1 \backslash i}^{D} \sum_{j-1}^{P} v_{i} w_{i j} h_{j}, B=\frac{1}{2} \sum_{i-1 \backslash i}^{D} \sum_{k=1}^{D} v_{i} L_{i k} v_{k} . A=i1\iDj1Pviwijhj,B=21i1\iDk=1DviLikvk. 同理可得
Δ v i = 1 = exp ⁡ { A + B + ∑ j = 1 P w i j h j + ∑ k = 1 \ d D L i k v k }       ( 29 ) \Delta v_{i=1}=\exp \left\{A+B+\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1 \backslash \mathfrak{d}}^{D} L_{i k} v_{k}\right\} \ \ \ \ \ (29) Δvi=1=expA+B+j=1Pwijhj+k=1\dDLikvk     (29)
所以,将公式(28)和(29)的结果代入到公式(24)中可得:
P ( v i = 1 ∣ h , v − i ) = Δ ∣ v i = 1 Δ ∣ v i = 0 + Δ ∣ v i = 1 = exp ⁡ { A + B + ∑ j = 1 P w i j h j + ∑ k = 1 D L i L i k v k } exp ⁡ { A + B + ∣ ∑ j = 1 P w i j h j + ∑ k = 1 D L i k v k } + exp ⁡ { A + B } = exp ⁡ { ∑ j = 1 P w i j h j + ∑ k = 1 \ i D L i k v k } exp ⁡ { ∑ j = 1 P w i j h j + ∑ k = 1 D L i k v k } + 1 = σ ( ∑ j = 1 P w i j h j + ∑ k = 1 \ i D L i k v k )      ( 30 ) \begin{aligned} P\left(v_{i}=1 | h, v_{-i}\right) &=\frac{\left.\Delta\right|_{v_{i}=1}}{\left.\Delta\right|_{v_{i}=0}+\left.\Delta\right|_{v_{i}=1}} \\ &=\frac{\exp \left\{A+B+\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1}^{D} L_{i} L_{i k} v_{k}\right\}}{\exp \left\{A+B+| \sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1}^{D} L_{i k} v_{k}\right\}+\exp \{A+B\}} \\ &=\frac{\exp \left\{\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1 \backslash i}^{D} L_{i k} v_{k}\right\}}{\exp \left\{\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1}^{D} L_{i k} v_{k}\right\}+1} \\ &=\sigma\left(\sum_{j=1}^{P} w_{i j} h_{j}+\sum_{k=1 \backslash i}^{D} L_{i k} v_{k}\right) \end{aligned} \ \ \ \ (30) P(vi=1h,vi)=Δvi=0+Δvi=1Δvi=1=exp{A+B+j=1Pwijhj+k=1DLikvk}+exp{A+B}exp{A+B+j=1Pwijhj+k=1DLiLikvk}=exp{j=1Pwijhj+k=1DLikvk}+1exp{j=1Pwijhj+k=1\iDLikvk}=σj=1Pwijhj+k=1\iDLikvk    (30)
P ( h j = 1 ∣ v , h − j ) = σ ( ∑ i = 1 D w i j v i + ∑ m = 1 \ j p J j m h n ) P\left(h_{j}=1 | v, h_{-j}\right)=\sigma\left(\sum_{i=1}^{D} w_{i j} v_{i}+\sum_{m=1 \backslash j}^{p} J_{j m} h_{n}\right) P(hj=1v,hj)=σ(i=1Dwijvi+m=1\jpJjmhn) 的计算采用的也是同样的思路。

3.3 小结

本小节主要讲述了基于MCMC 的似然梯度下降法,不同于RBM,在BM 中后验分布 P ( h ∣ v ) P(h|v) P(hv) 过于复杂,所以采用MCMC 采样的思路来求解。幸运的是,P(h|v) 的条件概率是可求的,所以,可以用Gibbs 采样。然后,给出了条件概率的详细推导。

4 变分推断法求解

我们采用的是梯度上升法,那么在每一次求解梯度的过程中,都要采样得到 v h ⊤ vh^⊤ vh。在采样的过程中,主要是对 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv)进行采样,使用MCMC 采样的劣势大家都很清楚,无法求解大规模问题。如何求解大规模问题一直是难点,直到90 年代初,Hinton 提出了变分推断法(Variational Inference)来求 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv)

4.1 平均场理论求解

这部分的基础思想,在“近似推断”那一章有非常详细的描述。大体上说就是通过优化下界ELBO,来达到求解的效果,有兴趣的同学请回顾“近似推断”。公式近似推断中的公式(5)可得:
L = E L B O = log ⁡ P θ ( v ) − K L ( Q ϕ ∥ P θ ) = ∑ h Q ϕ ( h ∣ v ) log ⁡ P θ ( v , h ) + H ( Q ϕ ) \begin{aligned} \mathcal{L} &=\mathrm{ELBO}=\log P_{\theta}(v)-\mathrm{KL}\left(Q_{\phi} \| P_{\theta}\right) \\ &=\sum_{h} Q_{\phi}(h | v) \log P_{\theta}(v, h)+H\left(Q_{\phi}\right) \end{aligned} L=ELBO=logPθ(v)KL(QϕPθ)=hQϕ(hv)logPθ(v,h)+H(Qϕ)
根据平均场理论(假设分布可以分解成几个部分之积),假定 Q ϕ ( h ∣ v ) = ∏ j = 1 P Q ϕ ( h j ∣ v ) , Q_{\phi}(h | v)=\prod_{j=1}^{P} Q_{\phi}\left(h_{j} | v\right), Qϕ(hv)=j=1PQϕ(hjv), Q ϕ ( h j = Q_{\phi}\left(h_{j}=\right. Qϕ(hj= 1 ∣ v ) = ϕ j , 1 | v)=\phi_{j}, 1v)=ϕj, \phi就可以认为是 {} 。那么推导过程如下所示:
ϕ ^ j = arg ⁡ max ⁡ ϕ j L = arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) log ⁡ P θ ( v , h ) + H ( Q ϕ ) = arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) [ − log ⁡ Z + v ⊤ W h + 1 2 v ⊤ L v + 1 2 h ⊤ J h ] + H ( Q ϕ ) = arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) [ − log ⁡ Z + 1 2 v ⊤ L v ] + arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) [ v ⊤ W h + 1 2 h ⊤ J h ] + H ( Q ϕ ) \begin{aligned} \hat{\phi}_{j} &=\arg \max _{\phi_{j}} \mathcal{L}=\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v) \log P_{\theta}(v, h)+H\left(Q_{\phi}\right) \\ &=\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v)\left[-\log Z+v^{\top} W h+\frac{1}{2} v^{\top} L v+\frac{1}{2} h^{\top} J h\right]+H\left(Q_{\phi}\right) \\ & =\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v)\left[-\log Z+\frac{1}{2} v^{\top} L v\right]+\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v)\left[v^{\top} W h+\frac{1}{2} h^{\top} J h\right]+H\left(Q_{\phi}\right) \end{aligned} ϕ^j=argϕjmaxL=argϕjmaxhQϕ(hv)logPθ(v,h)+H(Qϕ)=argϕjmaxhQϕ(hv)[logZ+vWh+21vLv+21hJh]+H(Qϕ)=argϕjmaxhQϕ(hv)[logZ+21vLv]+argϕjmaxhQϕ(hv)[vWh+21hJh]+H(Qϕ)

其中, ϕ j \phi_{j} ϕj 是和 h h h 相关的参数 , [ − log ⁡ Z + 1 2 v ⊤ L v + ] ,\left[-\log Z+\frac{1}{2} v^{\top} L v+\right] ,[logZ+21vLv+] ϕ \phi ϕ 没有关系, , , , 那么 ∑ h Q ϕ ( h ∣ v ) [ − log ⁡ Z + 1 2 v ⊤ L v + ] \sum_{h} Q_{\phi}(h | v)\left[-\log Z+\frac{1}{2} v^{\top} L v+\right] hQϕ(hv)[logZ+21vLv+]可以写成 [ − log ⁡ Z + 1 2 v ⊤ L v ] ∑ h Q ϕ ( h ∣ v ) ∘ \left[-\log Z+\frac{1}{2} v^{\top} L v\right] \sum_{h} Q_{\phi}(h | v)_{\circ} [logZ+21vLv]hQϕ(hv) 很显然 , ∑ h Q ϕ ( h ∣ v ) = 1 , , \sum_{h} Q_{\phi}(h | v)=1, ,hQϕ(hv)=1, 所りん , arg ⁡ max ⁡ ϕ ȷ ∑ h Q ϕ ( h ∣ v ) [ − log ⁡ Z + 1 2 v ⊤ L v ] , \arg \max _{\phi_{\jmath}} \sum_{h} Q_{\phi}(h | v)\left[-\log Z+\frac{1}{2} v^{\top} L v\right] ,argmaxϕȷhQϕ(hv)[logZ+21vLv] ϕ \phi ϕ 没有关系,可以约掉。化筒之后,
ϕ ^ j = arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) [ v ⊤ W h + 1 2 h ⊤ J h ] + H ( Q ϕ ) = arg ⁡ max ⁡ ϕ j ∑ h Q ϕ ( h ∣ v ) v ⊤ W h + 1 2 ∑ h Q ϕ ( h ∣ v ) h ⊤ J h + H ( Q ϕ ) = arg ⁡ max ⁡ ϕ j ( 1 ) + ( 2 ) + ( 3 )        ( 34 ) \begin{aligned} \hat{\phi}_{j} &=\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v)\left[v^{\top} W h+\frac{1}{2} h^{\top} J h\right]+H\left(Q_{\phi}\right) \\ &=\arg \max _{\phi_{j}} \sum_{h} Q_{\phi}(h | v) v^{\top} W h+\frac{1}{2} \sum_{h} Q_{\phi}(h | v) h^{\top} J h+H\left(Q_{\phi}\right) \\ &=\arg \max _{\phi_{j}}(1)+(2)+(3) \end{aligned} \ \ \ \ \ \ (34) ϕ^j=argϕjmaxhQϕ(hv)[vWh+21hJh]+H(Qϕ)=argϕjmaxhQϕ(hv)vWh+21hQϕ(hv)hJh+H(Qϕ)=argϕjmax(1)+(2)+(3)      (34)
那么,下一步工作 h j h_{j} hj 分离出来。
1 = ∑ h Q ϕ ( h ∣ v ) ⋅ ∑ i = 1 D ∑ j = 1 P v i w i j h j = ∑ h ∏ j = 1 P Q ϕ ( h j ∣ v ) ⋅ ∑ i = 1 D ∑ j = 1 P v i w i j h j       ( 35 ) \begin{aligned} \mathbb{1} &=\sum_{h} Q_{\phi}(h | v) \cdot \sum_{i=1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j} \\ &=\sum_{h} \prod_{j=1}^{P} Q_{\phi}\left(h_{j} | v\right) \cdot \sum_{i=1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j} \end{aligned} \ \ \ \ \ (35) 1=hQϕ(hv)i=1Dj=1Pviwijhj=hj=1PQϕ(hjv)i=1Dj=1Pviwijhj     (35)
∑ i = 1 D ∑ j = 1 P v i w i j h j \sum_{i=1}^{D} \sum_{j=1}^{P} v_{i} w_{i j} h_{j} i=1Dj=1Pviwijhj 中一共有 D × P D \times P D×P 项,这里太复杂了,我们先挑一项来分析一下。

1 = ∑ h ∏ j = 1 P Q ϕ ( h j ^ ∣ v ) ⋅ v 1 w 12 h 2 = ∑ h 2 Q ϕ ( h 2 ∣ v ) ⋅ v 1 w 12 h 2 ∑ h \ h 2 ∏ j = 1 \ 2 P Q ϕ ( h j ^ ∣ v ) \begin{aligned} \mathbb{1} &=\sum_{h} \prod_{j=1}^{P} Q_{\phi}\left(h_{\hat{j}} | v\right) \cdot v_{1} w_{12} h_{2} \\ &=\sum_{h_{2}} Q_{\phi}\left(h_{2} | v\right) \cdot v_{1} w_{12} h_{2} \sum_{h \backslash h_{2}} \prod_{j=1 \backslash 2}^{P} Q_{\phi}\left(h_{\hat{j}} | v\right) \end{aligned} 1=hj=1PQϕ(hj^v)v1w12h2=h2Qϕ(h2v)v1w12h2h\h2j=1\2PQϕ(hj^v)
这里将 ∑ h \ h 2 ∏ j = 1 \ 2 P Q ϕ ( h j ∣ v ) \sum_{h \backslash h_{2}} \prod_{j=1 \backslash 2}^{P} Q_{\phi}\left(h_{j} | v\right) h\h2j=1\2PQϕ(hjv) 提出了分析一下,
∑ h \ h 2 ∏ j = 1 \ 2 P Q ϕ ( h j ^ ∣ v ) = ∑ h 1 Q ϕ ( h 1 ∣ v ) ∑ h 3 Q ϕ ( h 3 ∣ v ) ∑ h 4 Q ϕ ( h 4 ∣ v ) ⋯      ( 37 ) \sum_{h \backslash h_{2}} \prod_{j=1 \backslash 2}^{P} Q_{\phi}\left(h_{\hat{j}} | v\right)=\sum_{h_{1}} Q_{\phi}\left(h_{1} | v\right) \sum_{h_{3}} Q_{\phi}\left(h_{3} | v\right) \sum_{h_{4}} Q_{\phi}\left(h_{4} | v\right) \cdots \ \ \ \ (37) h\h2j=1\2PQϕ(hj^v)=h1Qϕ(h1v)h3Qϕ(h3v)h4Qϕ(h4v)    (37)
显然 , ∑ h 1 Q ϕ ( h 1 ∣ v ) = ∑ h 9 Q ϕ ( h 3 ∣ v ) = ∑ h 4 Q ϕ ( h 4 ∣ v ) = ⋯ = 1 ∘ , \sum_{h_{1}} Q_{\phi}\left(h_{1} | v\right)=\sum_{h_{9}} Q_{\phi}\left(h_{3} | v\right)=\sum_{h_{4}} Q_{\phi}\left(h_{4} | v\right)=\cdots=1_{\circ} ,h1Qϕ(h1v)=h9Qϕ(h3v)=h4Qϕ(h4v)==1 所以 , ∑ h \ h 2 ∏ j ^ = 1 \ 2 P Q ϕ ( h j ^ ∣ v ) = 1 , \sum_{h \backslash h_{2}} \prod_{\hat{j}=1 \backslash 2}^{P} Q_{\phi}\left(h_{\hat{j}} | v\right)=1 ,h\h2j^=1\2PQϕ(hj^v)=1
那么,
∑ h 2 Q ϕ ( h 2 ∣ v ) ⋅ v 1 w 12 h 2 ∑ h \ h 2 ∏ j ^ = 1 \ 2 P Q ϕ ( h j ^ ∣ v ) = ∑ h 2 Q ϕ ( h 2 ∣ v ) ⋅ v 1 w 12 h 2 = Q ϕ ( h 2 = 1 ∣ v ) ⋅ v 1 w 12 × 1 + Q ϕ ( h 2 = 0 ∣ v ) ⋅ v 1 w 12 × 0 = Q ϕ ( h 2 = 1 ∣ v ) ⋅ v 1 w 12 = ϕ 2 v 1 w 12 \begin{aligned} \sum_{h_{2}} Q_{\phi}\left(h_{2} | v\right) \cdot v_{1} w_{12} h_{2} \sum_{h \backslash h_{2}} \prod_{\hat{j}=1 \backslash 2}^{P} Q_{\phi}\left(h_{\hat{j}} | v\right) &=\sum_{h_{2}} Q_{\phi}\left(h_{2} | v\right) \cdot v_{1} w_{12} h_{2} \\ &=Q_{\phi}\left(h_{2}=1 | v\right) \cdot v_{1} w_{12} \times 1+Q_{\phi}\left(h_{2}=0 | v\right) \cdot v_{1} w_{12} \times 0 \\ &=Q_{\phi}\left(h_{2}=1 | v\right) \cdot v_{1} w_{12}=\phi_{2} v_{1} w_{12} \end{aligned} h2Qϕ(h2v)v1w12h2h\h2j^=1\2PQϕ(hj^v)=h2Qϕ(h2v)v1w12h2=Qϕ(h2=1v)v1w12×1+Qϕ(h2=0v)v1w12×0=Qϕ(h2=1v)v1w12=ϕ2v1w12
那么,依次类推,可以得出:
 (1)  = ∑ i = 1 D ∑ j P ϕ j v i w i j      ( 39 ) \text { (1) }=\sum_{i=1}^{D} \sum_{j}^{P} \phi_{j} v_{i} w_{i j} \ \ \ \ (39)  (1) =i=1DjPϕjviwij    (39)

而(2)的做法相对复杂一些,基本思想和 (1) 的分解,基本一致,也是要想办法将 h j h_{j} hj 分解出来。那么,目标为将其中和 h j h_{j} hj 相关的项分解出来:
∑ j = 1 P ∑ m = 1 P h j J j m h m \sum_{j=1}^{P} \sum_{m=1}^{P} h_{j} J_{j m} h_{m} j=1Pm=1PhjJjmhm
大体求解思路是可以分成如下四个部分:
{ j ^ ≠ j , m ≠ j j ^ = j , m = j j ^ = j , m ≠ j j ^ ≠ j , m = j        ( 41 ) \left\{\begin{array}{l} \hat{j} \neq j, m \neq j \\ \hat{j}=j, m=j \\ \hat{j}=j, m \neq j \\ \hat{j} \neq j, m=j \end{array}\right. \ \ \ \ \ \ (41) j^=j,m=jj^=j,m=jj^=j,m=jj^=j,m=j      (41)
其中, j ^ = j , m = j \hat{j}=j, m=j j^=j,m=j 的情况下 J j j = 0 , J_{j j}=0, Jjj=0, 直接省略掉。 j ^ = j , m ≠ j \hat{j}=j, m \neq j j^=j,m=j j ^ ≠ j , m = j \hat{j} \neq j, m=j j^=j,m=j 是对称的,相加起 来可以抵掉 1 2 \frac{1}{2} 21 这个系数,而 j ^ ≠ j , m ≠ j \hat{j} \neq j, m \neq j j^=j,m=j 的情况与 h j h_{j} hj 无关。所以:
( 2 ) = ∑ j = 1 P ∑ m = 1 \ j P ϕ j ϕ m J j m       ( 42 ) (2)=\sum_{j=1}^{P} \sum_{m=1 \backslash j}^{P} \phi_{j} \phi_{m} J_{j m} \ \ \ \ \ (42) (2)=j=1Pm=1\jPϕjϕmJjm     (42)
最后一项(3) 的化简为:
3 ^ = ∑ j = 1 P [ ϕ j log ⁡ 1 ϕ j + ( 1 − ϕ j ) log ⁡ 1 ( 1 − ϕ j ) ] = − ∑ j = 1 P [ ϕ j log ⁡ ϕ j + ( 1 − ϕ j ) log ⁡ ( 1 − ϕ j ) ]       ( 43 ) \begin{aligned} \widehat{3} &=\sum_{j=1}^{P}\left[\phi_{j} \log \frac{1}{\phi_{j}}+\left(1-\phi_{j}\right) \log \frac{1}{\left(1-\phi_{j}\right)}\right] \\ \\ &=-\sum_{j=1}^{P}\left[\phi_{j} \log \phi_{j}+\left(1-\phi_{j}\right) \log \left(1-\phi_{j}\right)\right] \end{aligned} \ \ \ \ \ (43) 3 =j=1P[ϕjlogϕj1+(1ϕj)log(1ϕj)1]=j=1P[ϕjlogϕj+(1ϕj)log(1ϕj)]     (43)
我们想得到使 ELBO 最大时对应的 ϕ j , \phi_{j}, ϕj, 那么就对 ϕ j \phi_{j} ϕj 求偏导,可以得到:
{ ∂ ( D ∂ ϕ j = ∑ i = 1 D v i w i j ∂ ( ∂ ^ ) ∂ ϕ j = ∑ m = 1 P ϕ m J j m ∂ ( 3 ^ ) ∂ ϕ j = − log ⁡ ϕ j 1 − ϕ j       ( 44 ) \left\{\begin{array}{l} \frac{\partial(\mathbb{D}}{\partial \phi_{j}}=\sum_{i=1}^{D} v_{i} w_{i j} \\ \\ \frac{\partial(\widehat{\partial})}{\partial \phi_{j}}=\sum_{m=1}^{P} \phi_{m} J_{j m} \\ \\ \frac{\partial(\widehat{3})}{\partial \phi_{j}}=-\log \frac{\phi_{j}}{1-\phi_{j}} \end{array}\right. \ \ \ \ \ (44) ϕj(D=i=1Dviwijϕj( )=m=1PϕmJjmϕj(3 )=log1ϕjϕj     (44)
合并起来即为 ∂ [ ( 1 ) + ( 2 ) + ( 3 ) ] ∂ ϕ j = 0 \frac{\partial[(1)+(2)+(3)]}{\partial \phi_{j}}=0 ϕj[(1)+(2)+(3)]=0
解得:
ϕ j = σ ( ∑ i = 1 D v i w i j + ∑ m = 1 \ j P ϕ m J j m )        ( 45 ) \phi_{j}=\sigma\left(\sum_{i=1}^{D} v_{i} w_{i j}+\sum_{m=1 \backslash j}^{P} \phi_{m} J_{j m}\right) \ \ \ \ \ \ (45) ϕj=σi=1Dviwij+m=1\jPϕmJjm      (45)
观察一下 ϕ j \phi_{j} ϕj 的结果,里面有一个项为 ∑ m = 1 \ j P ϕ m ∘ \sum_{m=1 \backslash j}^{P} \phi_{m \circ} m=1\jPϕm 所以,利用公式(45)求解最终结果的方法依然
比较坎坷。

首先, { ϕ j } j = 1 P \left\{\phi_{j}\right\}_{j=1}^{P} {ϕj}j=1P 都赋予一个初始值。然后依次计算 ϕ 1 , ϕ 2 , ⋯   , ϕ P , \phi_{1}, \phi_{2}, \cdots, \phi_{P}, ϕ1,ϕ2,,ϕP, 得到的结果为第一次迭代 { ϕ ( 1 ) } \left\{\phi^{(1)}\right\} {ϕ(1)} 不断的重复这个过程,直到最后收敘为止,收敘时得到的结果 { ϕ ^ j } j = 1 P \left\{\hat{\phi}_{j}\right\}_{j=1}^{P} {ϕ^j}j=1P 就是最终的答案。实际上就是求 解不动点方程 - 公式(45),采用的是坐标上升法求解。利用不动点方程的求解结果,可以得到 Q ϕ Q_{\phi} Qϕ
{ ϕ ^ j } j = 1 P ⟹ Q ϕ \left\{\hat{\phi}_{j}\right\}_{j=1}^{P} \Longrightarrow Q_{\phi} {ϕ^j}j=1PQϕ
Q ϕ ( h ∣ v ) ≈ P model  ( h ∣ v ) , Q_{\phi}(h | v) \approx P_{\text {model }}(h | v), Qϕ(hv)Pmodel (hv), 那么,公式(12)中 P data  P_{\text {data }} Pdata  的计算基本解决了。那么,就不需要再进行采 样了。而对于 Pmodel 还是用 MCMC,实际上 P model  ( h ∣ v ) , P_{\text {model }}(h | v), Pmodel (hv), 采样 P model  ( h , v ) P_{\text {model }}(h, v) Pmodel (h,v) 难度就小了很多了。理论上,我们给出了一个实际可行的方法。但是,每一步正向用VI,负向用Gibbs,计算复杂度还是较大的。而有很多改进的方法,比如之前讲的用基于对比散度的Gibbs 采样,还有后来的概率对比散度,Deep Boltzmann Machines 等。

5 总结

理一下这章的逻辑思路。首先,我们描述了什么是玻尔兹曼机(Boltzmann Machines),描述了其模型表示。下一个问题,就是如何利用观测数据集来求解参数,我们介绍了基于极大似然的梯度上升,经过推导得出了似然梯度的方向。但是,似然梯度中涉及到对 P m o d e l P_{model} Pmodel P d a t a P_{data} Pdata 的采样。那么难点就转移到了,如何从 P m o d e l P_{model} Pmodel P d a t a P_{data} Pdata 中进行采样。通过分析,得到玻尔兹曼机求解主要的难点就是 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv)很难求解。

我们和受限玻尔兹曼机的采样进行了对比,受限玻尔兹曼机中的后验 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv) 可以直接计算,而玻尔兹曼机中不行。所以,为了求解后验分布,介绍了MCMC 中的Gibbs 采样的思想。Gibbs 采样是一维一维的采样,那么需要满足单个节点的条件概率分布可以求出。幸运的是Boltzmann Machines中可以求出。下一步则进行了单个节点条件概率的详细推导。

MCMC 虽然提供了一个理论上的可行方法。可惜,无法解决大规模求解的问题。所以,介绍了Hinton 提出的变分推断(Variational Inference),用一个简单分布 ϕ ϕ ϕ 来近似 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv)。通过推导,我们得到了 ϕ ϕ ϕ 的不动点方程,使用坐标上升法即可得到ϕ 的参数表达式。从而成功的求解 P m o d e l ( h ∣ v ) P_{model}(h|v) Pmodel(hv)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值