天天看点

《深度学习导论及案例分析》一3.2受限玻耳兹曼机的学习算法

受限玻耳兹曼机的学习就是对模型参数集θ进行计算,常用的方法是最大似然估计,其基本思想在于采用梯度上升算法最大化总体对数似然函数。在给定可视向量训练集s={v(l),1≤l≤n}时,受限玻耳兹曼机的对数似然函数定义为

由于

所以,受限玻耳兹曼机的对数似然梯度为

其中,ep(•)表示求关于分布p的数学期望,p(hv(l),θ)表示在可视向量为v(l)时,隐含向量的条件概率分布。

根据公式(3.13)可得对数似然梯度关于各个参数的偏导为

显然,直接利用公式(3.14)~公式(3.16)计算上述偏导值的效率是非常低的,因为在计算ep(v,h|θ)[hivj]、ep(v,h|θ)[vj]和ep(v,h|θ)[hi]的期望值时,需要进行具有指数复杂度的求和运算。

为了快速计算受限玻耳兹曼机的对数似然梯度,可以采用一类称为对比散度(contrastive divergence,cd)的近似算法[146,147]。其中常用的是k步对比散度算法(kstep contrastive divergence,cdk),详见算法3.1。注意,算法3.1并未加入学习率等预设参数,与网上下载的实现代码可能略有不同。

算法3.1k步对比散度(cd-k)

不难看出,cdk算法的核心是一种特殊的吉布斯采样,称为交错吉布斯采样(alternating gibbs sampling)或者分块吉布斯采样(blocked gibbs sampling)[145],如图3.3所示。吉布斯采样是一种mcmc算法,在直接采样困难的情况下,可以用来生成一个吉布斯蒙特卡罗马尔可夫链或吉布斯链[148,149],用以近似一个给定多变量分布的样本。交错吉布斯采样主要包括下面两个关键步骤:

《深度学习导论及案例分析》一3.2受限玻耳兹曼机的学习算法

1)令t=0,用可视向量的训练样本v(l)初始化吉布斯链,得到g(t)=(g(t)1,g(t)2,…,g(t)m)t=v(l)。

2)通过迭代依次从p(hg(t),θ)采样h(t)=(h(t)1,h(t)2,…,h(t)n),从p(vh(t),θ)采样g(t+1),直到t+1=k。

对每一个可视向量样本v(l),都可以利用交错吉布斯采样生成一个k步吉布斯链,g(l,0)=v(l),h(l,0),g(l,1),…,h(l,k),g(l,k+1)。根据这个吉布斯链,就可以近似计算在训练样本仅为v(l)时的对数似然梯度如下:

cdk=kl(p0p∞)-kl(pkp∞)

=1nlogn-1n∑nl=1logp(g(l,0)|θ)-1nlogn-1n∑nl=1logp(g(l,k)|θ)

=1n∑nl=1(logp(g(l,0)|θ)-logp(g(l,k)|θ))(3.20)

其中,p0(vθ)=1n∑nl=1δ(v-v(l))=1n∑nl=1δ(v-g(l,0))

θ(t+1)=θ(t)+ηlrbm(θ(t))θ-λθ(t)+νΔθ(t-1):=Δθ(t)(3.21)

继续阅读