机器学习笔记之玻尔兹曼机(三)梯度求解(基于平均场理论的变分推断)
机器学习笔记之玻尔兹曼机——基于平均场推断梯度求解
- 引言
- 回顾:玻尔兹曼机模型参数梯度求解困难与MCMC方法的处理方式
- 变分推断方法处理玻尔兹曼机对数似然梯度
引言
上一节介绍了使用马尔可夫链蒙特卡洛方法(MCMC)处理波尔兹曼机模型参数梯度求解过程中概率分布不可求的问题,本节将介绍变分推断方法处理梯度问题。
回顾:玻尔兹曼机模型参数梯度求解困难与MCMC方法的处理方式
相比于受限玻尔兹曼机,玻尔兹曼机对于随机变量之间关联关系的约束更加宽松,观测变量、隐变量自身之间也存在关联关系。这里以观测变量与隐变量之间关联关系的模型参数W\mathcal WW 为例,关于W\mathcal WW的对数似然梯度(Log Likelihood Gradient)可表示为:
∇W[logP(v(i);θ)]=EPdata[v(i)(h(i))T]−EPmodel[v(i)(h(i))T]\nabla_{\mathcal W} \left[\log \mathcal P(v^{(i)};\theta)\right] = \mathbb E_{\mathcal P_{data}} \left[v^{(i)}(h^{(i)})^T\right] - \mathbb E_{\mathcal P_{model}} \left[v^{(i)}(h^{(i)})^T\right]∇W[logP(v(i);θ)]=EPdata[v(i)(h(i))T]−EPmodel[v(i)(h(i))T]
其中Pdata\mathcal P_{data}Pdata表示真实分布。其底层逻辑是从客观存在的概率模型Pdata(V)\mathcal P_{data}(\mathcal V)Pdata(V)随机生成NNN个样本,构成当前的样本集合V={v(1),v(2),⋯,v(N)}\mathcal V = \{v^{(1)},v^{(2)},\cdots,v^{(N)}\}V={v(1),v(2),⋯,v(N)}。
但这里的真实分布Pdata\mathcal P_{data}Pdata和配分函数——随机最大似然正相中的Pdata\mathcal P_{data}Pdata中存在稍许不同:
- 随机最大似然中的Pdata\mathcal P_{data}Pdata是纯粹使用蒙特卡洛方法的逆向推导产生的分布:
EPdata[∇θlogP^(x(i);θ)]≈1N∑i=1N∇θlogP^(x(i);θ)\mathbb E_{\mathcal P_{data}} \left[\nabla_{\theta} \log \hat {\mathcal P}(x^{(i)};\theta)\right] \approx \frac{1}{N} \sum_{i=1}^N \nabla_{\theta} \log \hat {\mathcal P}(x^{(i)};\theta)EPdata[∇θlogP^(x(i);θ)]≈N1i=1∑N∇θlogP^(x(i);θ) - 可模型参数W\mathcal WW(玻尔兹曼机的其他参数也是一样的)梯度的正相并不仅仅包含蒙特卡洛方法的逆向推导,还包含关于隐变量的后验概率:
详细推导见:
玻尔兹曼机——基本介绍
1N∑i=1N∑h(i)P(h(i)∣v(i))[v(i)(h(i))T]=1N∑i=1N{EP(h(i)∣v(i))[v(i)(h(i))T]}≈EPdata(v(i)∈V){EP(h(i)∣v(i))[v(i)(h(i))T]}=EPdata[v(i)(h(i))T]Pdata⇒Pdata(v(i)∈V)⋅Pmodel(h(i)∣v(i))\begin{aligned} \frac{1}{N} \sum_{i=1}^{N} \sum_{h^{(i)}} \mathcal P(h^{(i)} \mid v^{(i)}) \left[v^{(i)}(h^{(i)})^T\right] & = \frac{1}{N}\sum_{i=1}^N \left\{\mathbb E_{\mathcal P(h^{(i)} \mid v^{(i)})} \left[v^{(i)}(h^{(i)})^T\right]\right\} \\ & \approx \mathbb E_{\mathcal P_{data}(v^{(i)} \in \mathcal V)} \left\{\mathbb E_{\mathcal P(h^{(i)} \mid v^{(i)})} \left[v^{(i)}(h^{(i)})^T\right]\right\} \\ & = \mathbb E_{\mathcal P_{data}} \left[v^{(i)}(h^{(i)})^T\right] \\ \mathcal P_{data} \Rightarrow \mathcal P_{data}(v^{(i)} \in \mathcal V) & \cdot \mathcal P_{model}(h^{(i)} \mid v^{(i)}) \end{aligned}N1i=1∑Nh(i)∑P(h(i)∣v(i))[v(i)(h(i))T]Pdata⇒Pdata(v(i)∈V)=N1i=1∑N{EP(h(i)∣v(i))[v(i)(h(i))T]}≈EPdata(v(i)∈V){EP(h(i)∣v(i))[v(i)(h(i))T]}=EPdata[v(i)(h(i))T]⋅Pmodel(h(i)∣v(i))
从上式推导可以看出,玻尔兹曼机中无论是正相还是负相,均存在包含隐变量的概率分布:
Pdata⇒Pmodel(h(i)∣v(i))Pmodel⇒Pmodel(h(i),v(i))\begin{aligned} \mathcal P_{data} \Rightarrow \mathcal P_{model}(h^{(i)} \mid v^{(i)}) \\ \mathcal P_{model} \Rightarrow \mathcal P_{model}(h^{(i)},v^{(i)}) \end{aligned}Pdata⇒Pmodel(h(i)∣v(i))Pmodel⇒Pmodel(h(i),v(i))
在玻尔兹曼机的约束条件中,无论是Pmodel(h(i),v(i))\mathcal P_{model}(h^{(i)},v^{(i)})Pmodel(h(i),v(i))还是Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i)),都是极难近似求解的。
在80年代早期,没有给出变分推断概念时,针对模型参数W\mathcal WW的对数似然梯度是通过吉布斯采样的方式进行求解。这种方式求解的核心思路是:针对单个变量(观测变量、隐变量)的后验概率进行表示,而不是隐变量/观测变量的后验概率。
关于单个变量后验概率的推导过程详见
玻尔兹曼机——梯度求解(MCMC方法)
P(vi(i)∣h(i),v−i(i))={Sigmoid{∑j=1PWij⋅hj(i)+∑k≠iDLik⋅vk(i)}vi(i)=11−Sigmoid{∑j=1PWij⋅hj(i)+∑k≠iDLik⋅vk(i)}vi(i)=0P(hj(i)∣v(i),h−j(i))={Sigmoid{∑i=1DWij⋅vi(i)+∑m≠jJjm⋅hm(i)}hj(i)=11−Sigmoid{∑i=1DWij⋅vi(i)+∑m≠jJjm⋅hm(i)}hj(i)=0\begin{aligned} \mathcal P(v_i^{(i)} \mid h^{(i)},v_{-i}^{(i)}) = \begin{cases} \text{Sigmoid} \left\{\sum_{j=1}^{\mathcal P} \mathcal W_{ij} \cdot h_j^{(i)} + \sum_{k \neq i}^{\mathcal D} \mathcal L_{ik} \cdot v_k^{(i)}\right\} \quad v_i^{(i)} = 1\\ 1 - \text{Sigmoid} \left\{\sum_{j=1}^{\mathcal P} \mathcal W_{ij} \cdot h_j^{(i)} + \sum_{k \neq i}^{\mathcal D} \mathcal L_{ik} \cdot v_k^{(i)}\right\} \quad v_i^{(i)} = 0 \end{cases} \\ \mathcal P(h_j^{(i)} \mid v^{(i)},h_{-j}^{(i)}) = \begin{cases} \text{Sigmoid} \left\{\sum_{i=1}^{\mathcal D} \mathcal W_{ij} \cdot v_i^{(i)} + \sum_{m \neq j} \mathcal J_{jm} \cdot h_m^{(i)}\right\} \quad h_j^{(i)} = 1 \\ 1 - \text{Sigmoid} \left\{\sum_{i=1}^{\mathcal D} \mathcal W_{ij} \cdot v_i^{(i)} + \sum_{m \neq j} \mathcal J_{jm} \cdot h_m^{(i)}\right\} \quad h_j^{(i)} = 0 \\ \end{cases} \end{aligned}P(vi(i)∣h(i),v−i(i))=⎩⎨⎧Sigmoid{∑j=1PWij⋅hj(i)+∑k=iDLik⋅vk(i)}vi(i)=11−Sigmoid{∑j=1PWij⋅hj(i)+∑k=iDLik⋅vk(i)}vi(i)=0P(hj(i)∣v(i),h−j(i))=⎩⎨⎧Sigmoid{∑i=1DWij⋅vi(i)+∑m=jJjm⋅hm(i)}hj(i)=11−Sigmoid{∑i=1DWij⋅vi(i)+∑m=jJjm⋅hm(i)}hj(i)=0
此时,上述两种概率是可求的,在吉布斯采样过程中,通过固定待采样之外的其他随机变量,针对待采样的随机变量计算概率分布,并进行采样。直到所有随机变量均采样完毕,第一次迭代结束;最终通过若干次迭代,最终达到平稳分布。
基于该分布的采样结果可以直接近似模型参数的梯度∇W[logP(v(i);θ)]\nabla_{\mathcal W} \left[\log \mathcal P(v^{(i)};\theta)\right]∇W[logP(v(i);θ)]使之跳过对正相、负相期望的求解。
这里如果有不同理解的小伙伴,欢迎评论区一起讨论。
变分推断方法处理玻尔兹曼机对数似然梯度
该方法的核心在于使用变分推断直接近似求解后验概率Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i)),从而避免原先使用MCMC采样的方式进行求解。
这种方法针对于大规模的随机变量集合,它的采样时间同样是随着随机变量数量的增加指数级别地增长。
关于正向部分Pdata⇒Pdata(v(i)∈V)⋅Pmodel(h(i)∣v(i))\mathcal P_{data} \Rightarrow \mathcal P_{data}(v^{(i)} \in \mathcal V) \cdot \mathcal P_{model}(h^{(i)} \mid v^{(i)})Pdata⇒Pdata(v(i)∈V)⋅Pmodel(h(i)∣v(i))在之前的MCMC采样方法需要将Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i))近似出来或者使用受限玻尔兹曼机的约束条件将Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i))使用Sigmoid\text{Sigmoid}Sigmoid函数描述出来。本节使用基于平均场假设的变分推断(Variational Inference)对Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i))进行描述。
关于Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i))变分推断的核心是找到一个 合适的分布 Q(h(i)∣v(i))\mathcal Q(h^{(i)} \mid v^{(i)})Q(h(i)∣v(i)),使得 Q(h(i)∣v(i))\mathcal Q(h^{(i)} \mid v^{(i)})Q(h(i)∣v(i))近似Pmodel(h(i)∣v(i))\mathcal P_{model}(h^{(i)} \mid v^{(i)})Pmodel(h(i)∣v(i))。而变分推断的底层逻辑依然是极大似然估计:
将
v(i)v^{(i)}v(i)在模型中对应的隐变量
h(i)h^{(i)}h(i)引进来。
logP(v(i);θ)=log[P(v(i),h(i);θ)P(h(i)∣v(i);θ)]=logP(v(i),h(i);θ)−logP(h(i)∣v(i);θ){θ={W,L,J}v(i)∈V={v(1),v(2),⋯,v(N)}\begin{aligned} \log \mathcal P(v^{(i)};\theta) & = \log \left[\frac{\mathcal P(v^{(i)},h^{(i)};\theta)}{\mathcal P(h^{(i)} \mid v^{(i)};\theta)}\right]\\ & = \log \mathcal P(v^{(i)},h^{(i)};\theta) - \log \mathcal P(h^{(i)} \mid v^{(i)};\theta) \end{aligned} \\ \begin{cases} \theta = \{\mathcal W,\mathcal L,\mathcal J\} \\ v^{(i)} \in \mathcal V = \{v^{(1)},v^{(2)},\cdots,v^{(N)}\} \end{cases}logP(v(i);θ)=log[P(h(i)∣v(i);θ)P(v(i),h(i);θ)]=logP(v(i),h(i);θ)−logP(h(i)∣v(i);θ){θ={W,L,J}v(i)∈V={v(1),v(2),⋯,v(N)}
在此基础上,将近似分布
Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)}\mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)引入,其中
ϕ\phiϕ表示这个近似分布的参数信息。
logP(v(i);θ)=[logP(v(i),h(i);θ)−logQ(h(i)∣v(i);ϕ)]−[logP(h(i)∣v(i);θ)−logQ(h(i)∣v(i);ϕ)]=log[P(v(i),h(i);θ)Q(h(i)∣v(i);ϕ)]−log[P(h(i)∣v(i);θ)Q(h(i)∣v(i);ϕ)]\begin{aligned} \log \mathcal P(v^{(i)};\theta) & = \left[\log \mathcal P(v^{(i)},h^{(i)};\theta) - \log \mathcal Q(h^{(i)}\mid v^{(i)};\phi)\right] - \left[\log \mathcal P(h^{(i)} \mid v^{(i)};\theta) - \log \mathcal Q(h^{(i)}\mid v^{(i)};\phi)\right] \\ & = \log \left[\frac{\mathcal P(v^{(i)},h^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right] - \log \left[\frac{\mathcal P(h^{(i)} \mid v^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right] \end{aligned}logP(v(i);θ)=[logP(v(i),h(i);θ)−logQ(h(i)∣v(i);ϕ)]−[logP(h(i)∣v(i);θ)−logQ(h(i)∣v(i);ϕ)]=log[Q(h(i)∣v(i);ϕ)P(v(i),h(i);θ)]−log[Q(h(i)∣v(i);ϕ)P(h(i)∣v(i);θ)]
等式两端同时对
h(i)h^{(i)}h(i)求解积分,由于是玻尔兹曼机,所有变量均是服从伯努利分布的离散型随机变量。因此使用
∑h(i)\sum_{h^{(i)}}∑h(i)~
再次强调,有负号才是
KLDivergence\mathcal K\mathcal L\text{ Divergence}KL Divergence.
Equation Left : ∑h(i)Q(h(i)∣v(i);ϕ)logP(v(i);θ)=logP(v(i);θ)⋅∑h(i)Q(h(i)∣v(i);ϕ)⏟=1=logP(v(i);θ)Equation Right :∑h(i)Q(h(i)∣v(i);ϕ){log[P(v(i),h(i);θ)Q(h(i)∣v(i);ϕ)]−log[P(h(i)∣v(i);θ)Q(h(i)∣v(i);ϕ)]}=∑h(i)Q(h(i)∣v(i);ϕ)log[P(v(i),h(i);θ)Q(h(i)∣v(i);ϕ)]⏟ELBO−∑h(i)Q(h(i)∣v(i);ϕ)log[P(h(i)∣v(i);θ)Q(h(i)∣v(i);ϕ)]⏟KL[Q(h(i)∣v(i);ϕ)∣∣P(h(i)∣v(i);θ)]\begin{aligned}\text{Equation Left : } \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal P(v^{(i)};\theta) & = \log \mathcal P(v^{(i)};\theta) \cdot \underbrace{\sum_{h^{(i)}} \mathcal Q(h^{(i)}\mid v^{(i)};\phi)}_{=1} = \log \mathcal P(v^{(i)};\theta) \end{aligned}\\ \begin{aligned} \text{Equation Right :}&\quad \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left\{\log \left[\frac{\mathcal P(v^{(i)},h^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right] - \log \left[\frac{\mathcal P(h^{(i)} \mid v^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right]\right\} \\ & = \underbrace{\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi)\log \left[\frac{\mathcal P(v^{(i)},h^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right]}_{ELBO} \underbrace{- \sum_{h^{(i)}}\mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \left[\frac{\mathcal P(h^{(i)} \mid v^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right]}_{\mathcal K\mathcal L\left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi) || \mathcal P(h^{(i)} \mid v^{(i)};\theta)\right]} \end{aligned}Equation Left : h(i)∑Q(h(i)∣v(i);ϕ)logP(v(i);θ)=logP(v(i);θ)⋅=1h(i)∑Q(h(i)∣v(i);ϕ)=logP(v(i);θ)Equation Right :h(i)∑Q(h(i)∣v(i);ϕ){log[Q(h(i)∣v(i);ϕ)P(v(i),h(i);θ)]−log[Q(h(i)∣v(i);ϕ)P(h(i)∣v(i);θ)]}=ELBOh(i)∑Q(h(i)∣v(i);ϕ)log[Q(h(i)∣v(i);ϕ)P(v(i),h(i);θ)]KL[Q(h(i)∣v(i);ϕ)∣∣P(h(i)∣v(i);θ)]−h(i)∑Q(h(i)∣v(i);ϕ)log[Q(h(i)∣v(i);ϕ)P(h(i)∣v(i);θ)]
至此,将证据下界(Evidence Lower Bound,ELBO)表示如下:
证据下界(ELBO)也称作
Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)的变分。用
L[Q(h(i)∣v(i);ϕ)]\mathcal L \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]L[Q(h(i)∣v(i);ϕ)]符号表示。
H[Q(h(i)∣v(i);ϕ)]=−∑h(i)Q(h(i)∣v(i);ϕ)logQ(h(i)∣v(i);ϕ)\mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] = - \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal Q(h^{(i)} \mid v^{(i)};\phi)H[Q(h(i)∣v(i);ϕ)]=−∑h(i)Q(h(i)∣v(i);ϕ)logQ(h(i)∣v(i);ϕ)表示概率分布
Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)的熵。
ELBO=L[Q(h(i)∣v(i);ϕ)]=∑h(i)Q(h(i)∣v(i);ϕ)log[P(v(i),h(i);θ)Q(h(i)∣v(i);ϕ)]=∑h(i)Q(h(i)∣v(i);ϕ)[logP(v(i),h(i);θ)−logQ(h(i)∣v(i);ϕ)]=∑h(i)Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)−∑h(i)Q(h(i)∣v(i);ϕ)logQ(h(i)∣v(i);ϕ)=∑h(i)Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)+H[Q(h(i)∣v(i);ϕ)]\begin{aligned} \text{ELBO} & = \mathcal L \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \\ & = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi)\log \left[\frac{\mathcal P(v^{(i)},h^{(i)};\theta)}{\mathcal Q(h^{(i)}\mid v^{(i)};\phi)}\right] \\ & = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[\log \mathcal P(v^{(i)},h^{(i)};\theta) - \log \mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \\ & = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal P(v^{(i)},h^{(i)};\theta) - \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \\ & = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal P(v^{(i)},h^{(i)};\theta) + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \end{aligned}ELBO=L[Q(h(i)∣v(i);ϕ)]=h(i)∑Q(h(i)∣v(i);ϕ)log[Q(h(i)∣v(i);ϕ)P(v(i),h(i);θ)]=h(i)∑Q(h(i)∣v(i);ϕ)[logP(v(i),h(i);θ)−logQ(h(i)∣v(i);ϕ)]=h(i)∑Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)−h(i)∑Q(h(i)∣v(i);ϕ)logQ(h(i)∣v(i);ϕ)=h(i)∑Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)+H[Q(h(i)∣v(i);ϕ)]
后续的求解思路是:通过求解近似分布的参数ϕ\phiϕ,使得ELBO\text{ELBO}ELBO达到最大,等价于KLDivergence\mathcal K\mathcal L \text{ Divergence}KL Divergence趋近于000,最终使Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)与P(h(i)∣v(i);θ)\mathcal P(h^{(i)}\mid v^{(i)};\theta)P(h(i)∣v(i);θ)最近似。
至此,将求解近似分布Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)}\mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)的问题转移至 求解最优参数ϕ^\hat \phiϕ^,使得ELBO\text{ELBO}ELBO达到最大:
ϕ^=argmaxϕL[Q(h(i)∣v(i);ϕ)]\hat \phi = \mathop{\arg\max}\limits_{\phi} \mathcal L \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]ϕ^=ϕargmaxL[Q(h(i)∣v(i);ϕ)]
在介绍基于平均场假设变分推断的过程中,关于Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)}\mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)的平均场假设具体是将h(i)=(h1(i),h2(i),⋯,hP(i))Th^{(i)} = \left(h_1^{(i)},h_2^{(i)},\cdots,h_{\mathcal P}^{(i)}\right)^Th(i)=(h1(i),h2(i),⋯,hP(i))T划分成若干个相互独立的子集合。由于相互独立,因而后验概率分布可描述为各子集合后验结果的乘积形式:
由于
h(i)h^{(i)}h(i)中一共包含
P\mathcal PP个随机变量,这里就假设划分的子集合数量为
P\mathcal PP,也就是每个子集合仅包含
111个随机变量。
Q(h(i)∣v(i);ϕ)=∏j=1PQ(hj(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi) = \prod_{j=1}^{\mathcal P} \mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)=j=1∏PQ(hj(i)∣v(i);ϕ)
由于hj(i)(i=1,2,⋯,P)h_j^{(i)}(i=1,2,\cdots,\mathcal P)hj(i)(i=1,2,⋯,P)均服从伯努利分布,那么设定符号对概率分布Q(hj(i)∣v(i);ϕ)\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)Q(hj(i)∣v(i);ϕ)进行如下表示:
Q(hj(i)∣v(i);ϕ)={Q(hj(i)=1∣v(i);ϕ)=ϕjQ(hj(i)=0∣v(i);ϕ)=1−ϕj\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi) = \begin{cases} \mathcal Q(h_j^{(i)}=1 \mid v^{(i)};\phi) = \phi_j \\ \mathcal Q(h_j^{(i)}=0 \mid v^{(i)};\phi) = 1- \phi_j \end{cases}Q(hj(i)∣v(i);ϕ)={Q(hj(i)=1∣v(i);ϕ)=ϕjQ(hj(i)=0∣v(i);ϕ)=1−ϕj
ϕj\phi_jϕj虽然不是参数,它只是一个描述概率的实数,但ϕj\phi_jϕj如果已经求解,那么Q(hj(i)∣v(i);ϕ)\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)Q(hj(i)∣v(i);ϕ)自然也求解了。
因此,也可以将模型参数
ϕ\phiϕ看作是'包含各随机变量概率信息的集合'
{ϕ1,ϕ2,⋯,ϕP}\{\phi_1,\phi_2,\cdots,\phi_{\mathcal P}\}{ϕ1,ϕ2,⋯,ϕP}
至此,将变分推断的求解目标ϕ^\hat \phiϕ^分解成了P\mathcal PP个相互独立的概率信息ϕ^j(j=1,2,⋯,P)\hat {\phi}_j(j=1,2,\cdots,\mathcal P)ϕ^j(j=1,2,⋯,P):
每一个
ϕ^j(j=1,2,⋯,P)\hat {\phi}_j(j=1,2,\cdots,\mathcal P)ϕ^j(j=1,2,⋯,P)都要求解。
ϕ^j=argmaxϕjL[Q(h(i)∣v(i);ϕ)]\hat {\phi}_j = \mathop{\arg\max}\limits_{\phi_j} \mathcal L \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]ϕ^j=ϕjargmaxL[Q(h(i)∣v(i);ϕ)]
将
ELBO\text{ELBO}ELBO的展开式带入,并将
P(v(i),h(i);θ)=1Zexp{(v(i))TW⋅h(i)+12(v(i))TL⋅v(i)+12(h(i))TJ⋅h(i)}\mathcal P(v^{(i)},h^{(i)};\theta) = \frac{1}{\mathcal Z} \exp \left\{(v^{(i)})^T\mathcal W\cdot h^{(i)} + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)} + \frac{1}{2} (h^{(i)})^T\mathcal J \cdot h^{(i)}\right\}P(v(i),h(i);θ)=Z1exp{(v(i))TW⋅h(i)+21(v(i))TL⋅v(i)+21(h(i))TJ⋅h(i)}进行展开。
玻尔兹曼机——概率密度函数回顾
log\loglog和
exp\expexp之间相互消掉了。
ϕ^j=argmaxϕj{∑h(i)Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)+H[Q(h(i)∣v(i);ϕ)]}=argmaxϕj{∑h(i)Q(h(i)∣v(i);ϕ)[−logZ+(v(i))TW⋅h(i)+12(v(i))TL⋅v(i)+12(h(i))TJ⋅h(i)]+H[Q(h(i)∣v(i);ϕ)]}\begin{aligned} \hat {\phi}_j & = \mathop{\arg\max}\limits_{\phi_j} \left\{\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal P(v^{(i)},h^{(i)};\theta) + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]\right\} \\ & = \mathop{\arg\max}\limits_{\phi_j} \left\{\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[-\log \mathcal Z + (v^{(i)})^T\mathcal W\cdot h^{(i)} + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)} + \frac{1}{2} (h^{(i)})^T\mathcal J \cdot h^{(i)}\right] + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]\right\} \end{aligned}ϕ^j=ϕjargmax{h(i)∑Q(h(i)∣v(i);ϕ)logP(v(i),h(i);θ)+H[Q(h(i)∣v(i);ϕ)]}=ϕjargmax{h(i)∑Q(h(i)∣v(i);ϕ)[−logZ+(v(i))TW⋅h(i)+21(v(i))TL⋅v(i)+21(h(i))TJ⋅h(i)]+H[Q(h(i)∣v(i);ϕ)]}
将中括号中的项分成含h(i)h^{(i)}h(i)和不含h(i)h^{(i)}h(i)的两部分:
{Δ1=∑h(i)Q(h(i)∣v(i);ϕ)[−logZ+12(v(i))TL⋅v(i)]Δ2=∑h(i)Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)+12(h(i))TJ⋅h(i)]ϕj^=argmaxϕj{Δ1+Δ2+H[Q(h(i)∣v(i);ϕ)]}\begin{cases} \Delta_1 = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[-\log \mathcal Z + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)}\right] \\ \Delta_2 = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[(v^{(i)})^T\mathcal W\cdot h^{(i)} + \frac{1}{2} (h^{(i)})^T\mathcal J \cdot h^{(i)}\right] \end{cases} \\ \hat {\phi_j} = \mathop{\arg\max}\limits_{\phi_j} \left\{\Delta_1 + \Delta_2 + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \right\}{Δ1=∑h(i)Q(h(i)∣v(i);ϕ)[−logZ+21(v(i))TL⋅v(i)]Δ2=∑h(i)Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)+21(h(i))TJ⋅h(i)]ϕj^=ϕjargmax{Δ1+Δ2+H[Q(h(i)∣v(i);ϕ)]}
对Δ1\Delta_1Δ1进行化简:
很明显,
−logZ+12(v(i))TL⋅v(i)-\log \mathcal Z + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)}−logZ+21(v(i))TL⋅v(i)和
h(i)h^{(i)}h(i)没有关联关系,可看作常数提到公式前面;
∑h(i)Q(h(i)∣v(i);ϕ)\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi)∑h(i)Q(h(i)∣v(i);ϕ)本身是‘概率密度积分’,其结果是
111.
Δ1=[−logZ+12(v(i))TL⋅v(i)]∑h(i)Q(h(i)∣v(i);ϕ)⏟=1=−logZ+12(v(i))TL⋅v(i)\begin{aligned} \Delta_1 & = \left[-\log \mathcal Z + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)}\right] \underbrace{\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi)}_{=1} \\ & = -\log \mathcal Z + \frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)} \end{aligned}Δ1=[−logZ+21(v(i))TL⋅v(i)]=1h(i)∑Q(h(i)∣v(i);ϕ)=−logZ+21(v(i))TL⋅v(i)
与此同时,
Z=∑h(i),v(i)exp{−E(v(i),h(i))}\mathcal Z = \sum_{h^{(i)},v^{(i)}}\exp\{-\mathbb E(v^{(i)},h^{(i)})\}Z=∑h(i),v(i)exp{−E(v(i),h(i))}是配分函数,和
ϕj\phi_jϕj之间无关联关系(配分函数将
h(i)h^{(i)}h(i)全部积分掉了);并且
12(v(i))TL⋅v(i)\frac{1}{2} (v^{(i)})^T\mathcal L \cdot v^{(i)}21(v(i))TL⋅v(i)也和
ϕj\phi_jϕj之间无关联关系(
ϕj\phi_jϕj描述的是
hj(i)h_j^{(i)}hj(i)的后验概率信息,而该项中并不包含隐变量)。因此,在求解最优
ϕ^j\hat {\phi}_jϕ^j过程中,
Δ1\Delta_1Δ1整个项全部可以省略。
ϕj^=argmaxϕj{Δ2+H[Q(h(i)∣v(i);ϕ)]}\begin{aligned} \hat {\phi_j} & = \mathop{\arg\max}\limits_{\phi_j} \left\{ \Delta_2 + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \right\} \\ \end{aligned}ϕj^=ϕjargmax{Δ2+H[Q(h(i)∣v(i);ϕ)]}
后续思路:既然是求解最大值,可以 将Δ2+H[Q(h(i)∣v(i);ϕ)]\Delta_2 + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right]Δ2+H[Q(h(i)∣v(i);ϕ)]对ϕj\phi_jϕj求解偏导数,如果偏导数存在,令其等于0,将最值求出来;如果不存在,可以使用梯度上升法去求解一个近似最优解。
将上述部分展开,分成如下三个部分:
Δ2+H[Q(h(i)∣v(i);ϕ)]=∑h(i)Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)+12(h(i))TJ⋅h(i)]+H[Q(h(i)∣v(i);ϕ)]=Λ1+Λ2+Λ3{Λ1=∑h(i)Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)]Λ2=12∑h(i)Q(h(i)∣v(i);ϕ)[(h(i))TJ⋅h(i)]Λ3=H[Q(h(i)∣v(i);ϕ)]\begin{aligned} \Delta_2 + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] & = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[(v^{(i)})^T\mathcal W\cdot h^{(i)} + \frac{1}{2} (h^{(i)})^T\mathcal J \cdot h^{(i)}\right] + \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \\ & = \Lambda_1 + \Lambda_2 + \Lambda_3 \\ & \begin{cases} \Lambda_1 = \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[(v^{(i)})^T\mathcal W\cdot h^{(i)}\right] \\ \Lambda_2 = \frac{1}{2}\sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \left[(h^{(i)})^T\mathcal J \cdot h^{(i)}\right] \\ \Lambda_3 = \mathcal H \left[\mathcal Q(h^{(i)} \mid v^{(i)};\phi)\right] \end{cases} \end{aligned}Δ2+H[Q(h(i)∣v(i);ϕ)]=h(i)∑Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)+21(h(i))TJ⋅h(i)]+H[Q(h(i)∣v(i);ϕ)]=Λ1+Λ2+Λ3⎩⎨⎧Λ1=∑h(i)Q(h(i)∣v(i);ϕ)[(v(i))TW⋅h(i)]Λ2=21∑h(i)Q(h(i)∣v(i);ϕ)[(h(i))TJ⋅h(i)]Λ3=H[Q(h(i)∣v(i);ϕ)]
对Λ1\Lambda_1Λ1进行化简:首先将Λ1\Lambda_1Λ1继续展开,将hj(i)h_j^{(i)}hj(i)表示出来:
需要展开两个部分:将
Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi)Q(h(i)∣v(i);ϕ)使用平均场假设进行展开;将矩阵乘法
(v(i))TW⋅h(i)(v^{(i)})^T\mathcal W\cdot h^{(i)}(v(i))TW⋅h(i)进行展开。
Λ1=∑h(i)∏l=1PQ(hl(i)∣v(i);ϕ)⋅∑i=1D∑l=1Pvi(i)⋅Wil⋅hl(i)\begin{aligned} \Lambda_1 = \sum_{h^{(i)}} \prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \cdot \sum_{i=1}^{\mathcal D}\sum_{l=1}^{\mathcal P} v_i^{(i)} \cdot \mathcal W_{il} \cdot h_l^{(i)} \end{aligned}Λ1=h(i)∑l=1∏PQ(hl(i)∣v(i);ϕ)⋅i=1∑Dl=1∑Pvi(i)⋅Wil⋅hl(i)
可以发现,里面的项数是非常多的(D×P\mathcal D \times \mathcal PD×P项,包含乘法、加法),以第一项v1(i)⋅W11⋅h1(i)v_1^{(i)} \cdot \mathcal W_{11} \cdot h_1^{(i)}v1(i)⋅W11⋅h1(i)为例,观察是否能够向下化简:
从
∏l=1PQ(hl(i)∣v(i);ϕ)\prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi)∏l=1PQ(hl(i)∣v(i);ϕ)中单独将
Q(h1(i)∣v(i);ϕ)\mathcal Q(h_1^{(i)} \mid v^{(i)};\phi)Q(h1(i)∣v(i);ϕ)分出来;并且将
∑h1(i)\sum_{h_1^{(i)}}∑h1(i)从
∑h(i)\sum_{h^{(i)}}∑h(i)中分出来。
实际上,这步操作和
变分推断(平均场假设)推导过程的处理方式是相同的。
∑h(i)∏l=1PQ(hl(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]=∑h1(i)Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]⋅∑h2(i),⋯,hP(i)∏l=2PQ(hl(i)∣v(i);ϕ)=∑h1(i)Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]⋅∑h2(i)Q(h2(i)∣v(i);ϕ)⏟=1⋯∑hP(i)Q(hP(i)∣v(i);ϕ)⏟=1=∑h1(i)Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]\begin{aligned} & \quad \sum_{h^{(i)}} \prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \cdot \left[v_1^{(i)} \cdot \mathcal W_{11} \cdot h_1^{(i)}\right] \\ & = \sum_{h_1^{(i)}} \mathcal Q(h_1^{(i)} \mid v^{(i)};\phi) \cdot \left[v_1^{(i)} \cdot \mathcal W_{11} \cdot h_1^{(i)}\right] \cdot \sum_{h_2^{(i)},\cdots,h_{\mathcal P}^{(i)}} \prod_{l = 2}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \\ & = \sum_{h_1^{(i)}} \mathcal Q(h_1^{(i)} \mid v^{(i)};\phi) \cdot \left[v_1^{(i)} \cdot \mathcal W_{11} \cdot h_1^{(i)}\right] \cdot \underbrace{\sum_{h_2^{(i)}}\mathcal Q(h_2^{(i)} \mid v^{(i)};\phi)}_{=1} \cdots \underbrace{\sum_{h_{\mathcal P}^{(i)}}\mathcal Q(h_{\mathcal P}^{(i)} \mid v^{(i)};\phi)}_{=1} \\ & = \sum_{h_1^{(i)}} \mathcal Q(h_1^{(i)} \mid v^{(i)};\phi) \cdot \left[v_1^{(i)} \cdot \mathcal W_{11} \cdot h_1^{(i)}\right] \end{aligned}h(i)∑l=1∏PQ(hl(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]=h1(i)∑Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]⋅h2(i),⋯,hP(i)∑l=2∏PQ(hl(i)∣v(i);ϕ)=h1(i)∑Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]⋅=1h2(i)∑Q(h2(i)∣v(i);ϕ)⋯=1hP(i)∑Q(hP(i)∣v(i);ϕ)=h1(i)∑Q(h1(i)∣v(i);ϕ)⋅[v1(i)⋅W11⋅h1(i)]
由于h1(i)h_1^{(i)}h1(i)同样也是服从伯努利分布,继续将上式化简:
Q(h1(i)=1∣v(i);ϕ)⋅[v1(i)⋅W11⋅1]+0=ϕ1⋅v1(i)⋅W11\begin{aligned} \mathcal Q(h_1^{(i)} = 1 \mid v^{(i)};\phi) \cdot \left[v_1^{(i)} \cdot \mathcal W_{11} \cdot 1\right] + 0 = \phi_1 \cdot v_1^{(i)} \cdot \mathcal W_{11} \end{aligned}Q(h1(i)=1∣v(i);ϕ)⋅[v1(i)⋅W11⋅1]+0=ϕ1⋅v1(i)⋅W11
其他项的处理方式均相同。至此,Λ1\Lambda_1Λ1可化简为:
一共包含
D×P\mathcal D \times \mathcal PD×P项,均要进行还原。
Λ1=∑i=1D∑l=1Pϕl⋅vi(i)⋅Wil\Lambda_1 = \sum_{i=1}^{\mathcal D}\sum_{l=1}^{\mathcal P} \phi_l \cdot v_i^{(i)} \cdot \mathcal W_{il}Λ1=i=1∑Dl=1∑Pϕl⋅vi(i)⋅Wil对Λ2\Lambda_2Λ2进行化简:
关于
Λ2\Lambda_2Λ2的化简思路和
Λ1\Lambda_1Λ1是完全相同的,只不过更加复杂一些。因为包含
222个
hhh项。
Λ2=12∑h(i)∏l=1PQ(hl(i)∣v(i);ϕ)⋅∑j=1P∑l=1Phj(i)⋅Jil⋅hl(i)\begin{aligned} \Lambda_2 = \frac{1}{2}\sum_{h^{(i)}} \prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \cdot \sum_{j=1}^{\mathcal P}\sum_{l=1}^{\mathcal P}h_j^{(i)} \cdot \mathcal J_{il} \cdot h_l^{(i)} \end{aligned}Λ2=21h(i)∑l=1∏PQ(hl(i)∣v(i);ϕ)⋅j=1∑Pl=1∑Phj(i)⋅Jil⋅hl(i)
第一种情况:i≠l⇒Jili \neq l \Rightarrow\mathcal J_{il}i=l⇒Jil不在J\mathcal JJ的对角线上。以h1(i)J12⋅h2(i)h_1^{(i)} \mathcal J_{12} \cdot h_2^{(i)}h1(i)J12⋅h2(i)为例:
12∑h(i)∏l=1PQ(hl(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]=12∑h1(i)∑h2(i)Q(h1(i)∣v(i);ϕ)⋅Q(h2(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]⋅∑h3(i),⋯,hP(i)∏l=3PQ(hl(i)∣v(i);ϕ)⏟=1=12∑h1(i)∑h2(i)Q(h1(i)∣v(i);ϕ)⋅Q(h2(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]\begin{aligned} & \quad \frac{1}{2} \sum_{h^{(i)}}\prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \cdot \left[h_1^{(i)} \cdot \mathcal J_{12} \cdot h_2^{(i)}\right] \\ & = \frac{1}{2} \sum_{h_1^{(i)}} \sum_{h_2^{(i)}}\mathcal Q(h_1^{(i)} \mid v^{(i)};\phi)\cdot \mathcal Q(h_2^{(i)} \mid v^{(i)};\phi) \cdot \left[h_1^{(i)} \cdot \mathcal J_{12} \cdot h_2^{(i)}\right] \cdot \underbrace{\sum_{h_3^{(i)},\cdots,h_{\mathcal P}^{(i)}} \prod_{l = 3}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi)}_{=1} \\ & = \frac{1}{2} \sum_{h_1^{(i)}} \sum_{h_2^{(i)}}\mathcal Q(h_1^{(i)} \mid v^{(i)};\phi)\cdot \mathcal Q(h_2^{(i)} \mid v^{(i)};\phi) \cdot \left[h_1^{(i)} \cdot \mathcal J_{12} \cdot h_2^{(i)}\right] \end{aligned}21h(i)∑l=1∏PQ(hl(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]=21h1(i)∑h2(i)∑Q(h1(i)∣v(i);ϕ)⋅Q(h2(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]⋅=1h3(i),⋯,hP(i)∑l=3∏PQ(hl(i)∣v(i);ϕ)=21h1(i)∑h2(i)∑Q(h1(i)∣v(i);ϕ)⋅Q(h2(i)∣v(i);ϕ)⋅[h1(i)⋅J12⋅h2(i)]
此时,关于h1(i),h2(i)h_1^{(i)},h_2^{(i)}h1(i),h2(i)的取值一共划分为四种情况:- h1(i)=0,h2(i)=0h_1^{(i)} = 0,h_2^{(i)} = 0h1(i)=0,h2(i)=0
- h1(i)=1,h2(i)=0h_1^{(i)} = 1,h_2^{(i)} = 0h1(i)=1,h2(i)=0
- h1(i)=0,h2(i)=1h_1^{(i)} = 0,h_2^{(i)} = 1h1(i)=0,h2(i)=1
- h1(i)=1,h2(i)=1h_1^{(i)} = 1,h_2^{(i)} = 1h1(i)=1,h2(i)=1
但是,实际上只有h1(i)=1,h2(i)=1h_1^{(i)} = 1,h_2^{(i)} = 1h1(i)=1,h2(i)=1才有结果,其余结果均为0。因此h1(i)J12⋅h2(i)h_1^{(i)} \mathcal J_{12} \cdot h_2^{(i)}h1(i)J12⋅h2(i)对应的结果为:
12⋅Q(h1(i)=1∣v(i);ϕ)⋅Q(h2(i)=1∣v(i);ϕ)⋅[1⋅J12⋅1]=12ϕ1⋅J12⋅ϕ2\frac{1}{2} \cdot \mathcal Q(h_1^{(i)}=1 \mid v^{(i)};\phi)\cdot \mathcal Q(h_2^{(i)}=1 \mid v^{(i)};\phi) \cdot \left[1 \cdot \mathcal J_{12} \cdot 1\right] = \frac{1}{2} \phi_1 \cdot \mathcal J_{12} \cdot \phi_221⋅Q(h1(i)=1∣v(i);ϕ)⋅Q(h2(i)=1∣v(i);ϕ)⋅[1⋅J12⋅1]=21ϕ1⋅J12⋅ϕ2
关于第一种情况的特殊性:由于参数矩阵J\mathcal JJ本身是实对称矩阵,同样有:
这意味着
h1(i)J12⋅h2(i)h_1^{(i)} \mathcal J_{12} \cdot h_2^{(i)}h1(i)J12⋅h2(i)和
h2(i)J21⋅h1(i)h_2^{(i)} \mathcal J_{21} \cdot h_1^{(i)}h2(i)J21⋅h1(i)的结果是相同的。
12ϕ1⋅J12⋅ϕ2=12ϕ2⋅J21⋅ϕ1\frac{1}{2} \phi_1 \cdot \mathcal J_{12} \cdot \phi_2 = \frac{1}{2} \phi_2 \cdot \mathcal J_{21} \cdot \phi_121ϕ1⋅J12⋅ϕ2=21ϕ2⋅J21⋅ϕ1
第二种情况:i=l⇒Jili=l \Rightarrow \mathcal J_{il}i=l⇒Jil在J\mathcal JJ的对角线上。以h1(i)J11⋅h1(i)h_1^{(i)} \mathcal J_{11} \cdot h_1^{(i)}h1(i)J11⋅h1(i)为例:
不同于第一种情况,这里只能积分一个 ->
∑h1(i)\sum_{h_1^{(i)}}∑h1(i)
12∑h(i)∏l=1PQ(hl(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]=12∑h1(i)Q(h1(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]⋅∑h2(i),⋯,hP(i)∏l=2PQ(hl(i)∣v(i);ϕ)⏟=1=12∑h1(i)Q(h1(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]\begin{aligned} & \quad \frac{1}{2} \sum_{h^{(i)}}\prod_{l=1}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi) \cdot \left[h_1^{(i)} \cdot \mathcal J_{11} \cdot h_1^{(i)}\right] \\ & = \frac{1}{2} \sum_{h_1^{(i)}} \mathcal Q(h_1^{(i)} \mid v^{(i)};\phi)\cdot \left[h_1^{(i)} \cdot \mathcal J_{11} \cdot h_1^{(i)}\right] \cdot \underbrace{\sum_{h_2^{(i)},\cdots,h_{\mathcal P}^{(i)}}\prod_{l=2}^{\mathcal P} \mathcal Q(h_l^{(i)} \mid v^{(i)};\phi)}_{=1} \\ & = \frac{1}{2} \sum_{h_1^{(i)}} \mathcal Q(h_1^{(i)} \mid v^{(i)};\phi)\cdot \left[h_1^{(i)} \cdot \mathcal J_{11} \cdot h_1^{(i)}\right] \end{aligned}21h(i)∑l=1∏PQ(hl(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]=21h1(i)∑Q(h1(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]⋅=1h2(i),⋯,hP(i)∑l=2∏PQ(hl(i)∣v(i);ϕ)=21h1(i)∑Q(h1(i)∣v(i);ϕ)⋅[h1(i)⋅J11⋅h1(i)]
和第一种情况相似,但只有两种选择:h1(i)=1;h1(i)=0h_1^{(i)} = 1;h_1^{(i)} = 0h1(i)=1;h1(i)=0。最终结果有:
由于
J11\mathcal J_{11}J11是
J\mathcal JJ对角线上元素,等于0,因此第二种情况全部是0。是0的原因在于玻尔兹曼机某个隐变量自己不会和自己相连接。详情见:
玻尔兹曼机——基本介绍一节。
12Q(h1(i)=1∣v(i);ϕ)⋅[1⋅J11⋅1]=12ϕ1⋅J11=0\frac{1}{2}\mathcal Q(h_1^{(i)}=1 \mid v^{(i)};\phi)\cdot \left[1 \cdot \mathcal J_{11} \cdot 1\right] = \frac{1}{2} \phi_1 \cdot \mathcal J_{11} = 021Q(h1(i)=1∣v(i);ϕ)⋅[1⋅J11⋅1]=21ϕ1⋅J11=0
至此,关于Λ2\Lambda_2Λ2中的P×P\mathcal P \times \mathcal PP×P项,可以进行如下表示:
Λ2=∑j=1P∑l≠jPϕj⋅ϕl⋅Jil\Lambda_2 = \sum_{j=1}^{\mathcal P}\sum_{l\neq j}^{\mathcal P} \phi_j \cdot \phi_l \cdot \mathcal J_{il}Λ2=j=1∑Pl=j∑Pϕj⋅ϕl⋅Jil
关于该描述,作出如下解释(个人见解)
:
这是
视频中关于第二部分
Λ2\Lambda_2Λ2的表示。但这种表示不够精准。因为
∑j=1P∑l≠jP\sum_{j=1}^{\mathcal P}\sum_{l\neq j}^{\mathcal P}∑j=1P∑l=jP对应的是
J\mathcal JJ对角线之外的其他项,在这里应该将
12\frac{1}{2}21填上;如果描述的是
J\mathcal JJ‘除去对角线元素’的上/下三角阵,这个
12\frac{1}{2}21可以不加。为了文章的完整性,这里直接使用视频中的符号。有不同意见的小伙伴欢迎评论区一起讨论。
由于正文字数超了,后续求解过程详见机器学习笔记之玻尔兹曼机——基于平均场推断梯度求解(续)
相关参考:
(系列二十八)玻尔兹曼机5-平均场推断1
(系列二十八)玻尔兹曼机5-平均场推断2
机器学习笔记之玻尔兹曼机(三)梯度求解(基于平均场理论的变分推断)相关推荐
- 机器学习笔记之玻尔兹曼机(三)基于平均场理论变分推断的梯度求解(续)
机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解[续] 引言 Λ 3 \Lambda_3 Λ3梯度求解 求解最优参数 ϕ ^ j \hat {\phi}_j ϕ^j 引言 基于玻尔兹曼机(三) ...
- 机器学习之变分推断(三)基于平均场假设变分推断与广义EM
机器学习笔记之变分推断--基于平均场假设变分推断与广义EM 引言 回顾:基于平均场假设的变分推断 深入认识平均场假设 经典变分推断与广义EM 引言 上一节介绍了基于平均场假设 的变分推断推导过程.本节 ...
- 机器学习笔记之玻尔兹曼机(一)基本介绍
机器学习笔记之玻尔兹曼机--基本介绍 引言 回顾:玻尔兹曼机的模型表示 模型参数的对数似然梯度 关于模型参数W\mathcal WW的对数似然梯度 关于模型参数L,J\mathcal L,\mathc ...
- 李弘毅机器学习笔记:第三章—Error的来源
李弘毅机器学习笔记:第三章-Error的来源 从上节课测试集数据来看,AverageErrorAverage\ ErrorAverage Error 随着模型复杂增加呈指数上升趋势.更复杂的模型并不能 ...
- lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...
前言 Batch Normalization (BN)对于深度学习而言是一项非常重要的技术.尽管BN在网络训练的过程中表现力非常强大,但是大家始终没有一个很好的理论上的清晰理解.今天我们就试图解读这篇 ...
- 机器学习笔记之配分函数(三)对比散度
机器学习笔记之配分函数--对比散度 引言 回顾:随机最大似然求解模型参数的过程 随机最大似然的缺陷 吉布斯采样的缺陷与对比散度思想 对比散度名称的由来 从 K L \mathcal K\mathcal ...
- 吴恩达机器学习笔记:(三)梯度下降法
梯度下降法 知识点: 偏导数.微积分.局部最优解 概念介绍 梯度下降法目的是为了"下降",下降的方法是按照"梯度".比如你在一座山上,当前你只能迈出一步,如何走 ...
- 【机器学习笔记37】模糊聚类分析(基于最大生成树)
[参考资料] [1]<模式识别与智能计算的MATLAB技术实现> [2]<模糊数学方法及其应用> [3]https://baike.baidu.com/item/Kruskal ...
- 吴恩达机器学习笔记_第三周
Logistic Regression逻辑回归(分类): 0:Negative Class 1:Positive Class 二元分类问题讲起.尽管有回归二字,事实上为分类算法,处理离散y值. 输出以 ...
最新文章
- 壊小子的学习【程序开发学习篇】(一)培训时期的学习
- 《价值50亿的10句话》读后感(学生作业分享)
- 【AutoML】进化算法如何用于自动模型搜索(NAS)
- 安卓JNI使用OpenCV
- 06006_redis数据存储类型——String
- python直方图均衡_python 简单图像处理(8) 直方图均衡化
- 随机森林随机回归预测_随机森林回归预测电子商务销售额
- MapABC地图API
- 计算机一级如何添加对角线,如何在表格中添加对角线
- AndroidStudio的强大搜索功能介绍!全局搜索、搜索文件、搜索类、搜索文本、搜索一切
- 多多进宝推广团队_多多进宝推广团长玩法指南
- 什么是python解释器?有什么作用?
- 全球即将诞生第二家卡车自动驾驶上市公司,行业转折点已经到来
- MIDle生命周期详解,以及工作原理
- 计算机word求差函数,【2人回答】如何在Word表格中插入公式求差?-3D溜溜网
- 携创教育:自考教材去哪里买?教材改版会影响考试吗?
- UE4后期处理之水下效果
- 写给那些搜了很多教程安装win10但老是提示报错的童鞋
- 景观生态学原理| 3 景观格局与分析
- 如何使用TEQC 分析rinex3 格式的数据