考虑一组具有m个样本的数据集X={x(1),…,x(m)},独立地由真实数据生成分布pdata(x)生成。令pmodel(x;θ)是一族由θ确定在相同空间上的概率分布,换言之,pmodel(x;θ)将任意输入x映射到实数来估计真实概率pdata(x)。对θ的最大似然估计被定义为
θML=argmaxθpmodel(X;θ)=argmaxθi=1∏mpmodel(x(i);θ)(1)
因为多个概率的乘积不便于计算,便转为求和形式
θML=argmaxθi=1∑mlogpmodel(x(i);θ)(2)
重新缩放代价函数时,对优化结果没有影响,可以除以m,从而以训练数据经验分布p^data的期望作为准则
θML=argmaxθEx∼p^datalogpmodel(x;θ)(3)
一种关于最大似然估计的观点是看作最小化训练集上的经验分布p^data和模型分布pmodel之间的差异,差异可以通过KL散度定义为
DKL(p^data∣∣pmodel)=Ex∼p^data[logp^data(x)−logpmodel(x)](4)
左边仅涉及数据生成过程,和模型无关,所以只需要最小化
θML=argminθ−Ex∼p^datalogpmodel(x;θ)(5)
我们可以将最大似然看作使模型分布尽可能和经验分布p^data相匹配,理想情况下能够匹配真实分布pdata,但我们无法直接知道这个真实分布。
考虑用受限玻尔兹曼机RBM来对pmodel进行建模,RBM有两层,分别称为可见层(visible layer)和隐藏层(hidden layer),可见层为可观察变量v,隐藏层为潜变量h。层内无连接,层间全连接,是一个二分网络结构,所以当给定可见层神经元状态时,隐藏层各神经元条件独立,反之亦然。可见层神经单元用来描述观察数据,隐藏层神经单元可以看作特征提取层。

就像普通的玻尔兹曼机,受限玻尔兹曼机也是基于能量的模型,其联合概率分布由能量函数指定(能量函数的概念最早来自于统计热力学家研究磁体的易辛模型,后来被Hinton借鉴发展为RBM模型)
Pθ(v=v,h=h)=Z1exp(−E(v,h))=Z(θ)1exp(i=1∑Dj=1∑FWijvihj+i=1∑Dvibi+j=1∑Fhjaj)(6)
Pθ(v=v)=Z(θ)1exp(vTWh+aT+bTv)(7)
RBM的能量函数由下给出
E(v,h)=−bTv−cTh−vTWh(8)
我们通过最大似然估计来确定RBM的参数
θ=argmaxθL(θ)=argmaxθN1i=1∑mlogPθ(v(i))(9)
可以通过随机梯度下降 确定参数,首先要求L(θ)对W的导数
∂Wij∂L(θ)=N1n=1∑m∂Wij∂log(h∑exp[v(n)TWh+aTh+bTv(n)])−∂Wij∂logZ(θ)=EPdata[vihj]−EPθ[vihj](10)
上式的前一项在全部数据集上求平均值即可,后一项等于∑v,hvihjPθ(v,h),其中Z是被称为配分函数的归一化常数
Z=v∑h∑exp(−E(v,h))(11)
计算配分函数Z的朴素方法是对所有状态进行穷举求和,计算上是难以处理的,Long and Servedio(2010)正式证明配分函数Z是难解的 。但是RBM的二分网络结构具有特定性质,因为可见层和隐藏层内部各神经元是条件独立的,所以条件分布p(h∣v)和p(v∣h)是因子的,并且计算和采样相对简单。
P(h∣v)=P(v)P(h,v)=P(v)1Z1exp{bTv+cTh+vtWh}=Z′1exp{cTh+vTWh}=Z′1exp{j=1∑nhcjThj+nh∑j=1vTW:,jhj}=Z′1j=1∏nhexp{cjThj+vTW:,jhj}(12)