本节书摘来自华章出版社《深度学习导论及案例分析》一书中的第3章,第3.3节,作者李玉鑑 张婷,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
标准受限玻耳兹曼机又称为二值受限玻耳兹曼机(binary RBM或binomial RBM)或者二元受限玻耳兹曼机,由于它的所有可视节点和隐含节点都只能取0和1这两个值,所以在应用时受到较大的限制。尽管通过某些简单的“技巧”也可以使用二值受限玻耳兹曼机对连续分布进行一定程度的建模,但是这种技巧在一般情况下不足以对复杂的实际数据构造良好的模型[63]。
为了更好地抓住实值数据(如图像)的特点,可以通过修改能量函数的方法对标准受限玻耳兹曼机进行多种推广。一种常见的推广是高斯受限玻耳兹曼机(Gaussian RBM,GRBM)[151],其具有下面的能量函数:
ε(v,hθ)=12∑mj=1(vj-aj)2σ2-∑ni=1∑mj=1wijhivjσ2-∑ni=1bihi(3.22)其中σ2是实值可视节点的方差,隐含节点仍然只限取0或1。
然而,高斯受限玻耳兹曼机并不足以对自然图像建立一个令人满意的模型[157]。这可能是因为高斯受限玻耳兹曼机主要用于对条件均值建模,不太适合非对角条件协方差建模。自然图像主要是通过像素值的协方差来表征的,而不是通过它们的绝对值[158]。因此,为了解决非对角条件协方差的建模问题,有必要提出其他的受限玻耳兹曼机模型,如协方差受限玻耳兹曼机(covariance RBM,cRBM)[159],这是一种三阶玻耳兹曼机[160],如图3.4所示。它的能量函数为:
ε(v,hc)=-12∑Ff=1∑nci=1Pifhci∑mj=1Cfjvj2-∑nci=1bcihci(3.23)其中,nc表示协方差隐节点的个数,hc=(hc1,hc2,…,hcnc)T表示由协方差隐节点构成的向量,bci(1≤i≤nc)表示第i个协方差隐节点的偏置,C=(Cfj)F×m表示由F个行向量滤波器构成的实矩阵,P=(Pif)nc×F表示一个非负加权实矩阵。
将协方差受限玻耳兹曼机和高斯受限玻耳兹曼机相结合,就可以得到均值协方差受限玻耳兹曼机(mean and covariance RBM,mcRBM)[158]。它的能量函数形式如下:
ε(v,hc,hμ)=-12∑Ff=1∑nci=1Pifhci∑mj=1CfjCfvjv2-∑nci=1bcihci+12∑mj=1v2j -∑nμi=1∑mj=1wijhμivj-∑nμi=1bμihμi(3.24)其中Cf=(Cf1,Cf2,…,Cfm)T是矩阵C的第f个行滤波器。
与高斯受限玻耳兹曼机类似,均值协方差受限玻耳兹曼机也采用高斯分布对可视单元建模。但不同的是,均值协方差受限玻耳兹曼机把隐含层分为两个隐含节点的集合,以同时独立地对数据的均值和方差进行参数化表示。不过由于训练上的困难,均值协方差受限玻耳兹曼机几乎已经被学生T分布的平均积模型(meanproduct of Stdent’s Tdistributions model,mPoT)所取代[161]。mPoT模型是一种结合高斯受限玻耳兹曼机和学生T分布的模型[156]。
受限玻耳兹曼机的另一个变种模型是钉板受限玻耳兹曼机(spike and slab RBM,ssRBM)[163]。在该模型中,每个隐含节点都与两个变量关联,一个是取二值的钉变量(spike variable)hi∈{0,1},另一个是取K维实向量值的板变量(slab variable)si。与高斯受限玻耳兹曼机相比,钉板受限玻耳兹曼机的优点是对自然图像具有更强的建模能力。它的能量函数定义为:
ε(v,s,h)=12vTΛv-∑ni=1(vTWisihi+12sTiAisi+bihi)(3.25)其中hi∈{0,1}是钉变量,si是板向量,Wi是大小为m×K的权值矩阵,Λ和Ai都是对角矩阵。
如果在受限玻耳兹曼机中把某些参数表达为另一组变量的函数,还可以得到条件受限玻耳兹曼机(conditional RBM)[164],如p(v,hC)。一种常见的条件C就是把隐含偏置向量b=(b1,b2,…,bn)T看作可视偏置向量a=(a1,a2,…,an)T的仿射函数,如b=β+Ma。如果把条件看作是若干关于过去的隐含变量,就得到隐马尔可夫模型。如果把条件看作是若干关于过去的可视变量和隐含变量构成的上下文,得到的就是时序受限玻耳兹曼机(temporal RBM)[165],即p(vt,htCt)=p(vt,htvt-1,ht-1,…,vt-k,ht-k)(3.26)事实上,受限玻耳兹曼机还有其他变种模型,包括卷积受限玻耳兹曼机[166]、因子化受限玻耳兹曼机(factorized RBM)[167]和时序因子化受限玻耳兹曼机(temporal factorized RBM)[168],等等。对标准受限玻耳兹曼机的更为一般的推广是选择任意如下形式的能量函数[169]:ε(v,h)=∑i,ji,j(hi,vj)+∑jξj(vj)+∑iζi(hi)(3.27)其中i,j、ξj和ζi都是实值函数,且它们保证配分函数Z是有限的。
最后应该提到的变种模型是一种分类受限玻耳兹曼机(Classification RBM,ClassRBM)[170]。ClassRBM用一个二值隐含向量h=(h1,h2,…,hm)对输入x=(x1,x2,…,xn)和目标类别y∈{1,…,C}的联合分布进行建模,其结构如图3.5所示。分类受限玻耳兹曼机的能量函数定义为
ε(y,x,hθ)=-hTWx-aTx-bTh-dTey-hTUey(3.28)其中,参数为`javascriptθ={W,a,b,d,U},ey=(1i=y)Ci=1表` 示类别y的标签向量(第y个分量为1,其余分量为0)。
根据能量函数,不难得到的y、x和h的联合概率分布为:p(y、x,h)=exp(-ε(y,x,h))Z(3.29)其中,Z表示配分函数。
此外,对分类受限玻耳兹曼机还可以推导出下面的条件概率分布:
p(hy,x)=∏ip(hiy,x) p(hi=1y,x)=σ∑jwijxj+uiy+bi(3.30) p(xh)=∏jp(xjh) p(xj=1h)=σ∑iwijhi+aj(3.31) p(yh)=softmaxy∑iuijhi+dj=exp∑iuiyhi+dy∑djexp∑iuijhi+dj(3.32)分类受限玻耳兹曼机可以采用标签CDk算法(即算法3.2)来训练。
算法3.2标签CDk算法(label CDk)
输入:ClassRBM(y1,...,yC,v1,...,vm,h1,...,hn),训练集S={(v(l),y(l)),1≤l≤N} 输出:梯度近似Δwij、 Δuic、 Δaj、 Δbi、 Δdc,其中,i=1,...,n, j=1,...,m,c=1,...,C 初始化:Δwij=Δuic=Δaj=Δbi=Δdc=0,其中,i=1,...,n, j=1,...,m,c=1,...,C for l=1, …, N do g(0)v←v(l),g(0)y←y(l) for t=0,...,k-1 do for i=1,...,n do h(t)i~p(hig(t)v,g(t)y,θ) end for for j=1,...,m do g(t+1)v,j~p(vjh(t),θ) end for for c=1,...,C do g(t+1)y,c~p(ych(t),θ) end for end for for i=1,...,n,j=1,...,m do Δwij←Δwij+p(hi=1gv(0),g(0)y,θ)•g(0)j~p(hi=1gv(k),g(k)y,θ)•g(k)j end for for i=1,…,n, c=1,…,C do Δuic←Δuic+p(hi=1g(0)v,g(0)y,θ)•g(0)y,c~p(hi=1g(k)v,g(k)y,θ)•g(k)y,c end for for j=1,...,m do Δaj←Δaj+g(0)v,j-g(k)v,j end for for c=1,...,C do Δdc←Δdc+g(0)y,c-g(k)y,c end for for i=1,...,n do Δbi←Δbi+p(hi=1g(0)v,g(0)y,θ)-p(hi=1g(k)v,g(k)y,θ) end for end for