RBM

  考虑一组具有mm个样本的数据集X={x(1),,x(m)}\mathbb{X}=\{x^{(1)},\dots,x^{(m)}\},独立地由真实数据生成分布pdata(x)p_{data}(x)生成。令pmodel(x;θ)p_{model}(x;\theta)是一族由θ\theta确定在相同空间上的概率分布,换言之,pmodel(x;θ)p_{model}(x;\theta)将任意输入xx映射到实数来估计真实概率pdata(x)p_{data}(x)。对θ\theta的最大似然估计被定义为
(1)θML=argmaxθpmodel(X;θ)=argmaxθi=1mpmodel(x(i);θ)\theta_{ML}=argmax_\theta p_{model}(\mathbb{X};\theta)=argmax_\theta\prod_{i=1}^m p_ {model}(x^{(i)};\theta) \tag{1}
  因为多个概率的乘积不便于计算,便转为求和形式
(2)θML=argmaxθi=1mlogpmodel(x(i);θ)\theta_{ML}=argmax_\theta\sum_{i=1}^mlogp_{model}(x^{(i)};\theta)\tag{2}
  重新缩放代价函数时,对优化结果没有影响,可以除以mm,从而以训练数据经验分布p^data\hat{p}_{data}的期望作为准则
(3)θML=argmaxθExp^datalogpmodel(x;θ)\theta_{ML}=argmax_\theta\mathbb{E}_{x\sim\hat{p}_{data}}logp_{model}(x;\theta) \tag{3}
  一种关于最大似然估计的观点是看作最小化训练集上的经验分布p^data\hat{p}_{data}和模型分布pmodelp_{model}之间的差异,差异可以通过KLKL散度定义为
(4)DKL(p^datapmodel)=Exp^data[logp^data(x)logpmodel(x)]D_{KL}(\hat{p}_{data}||p_{model})=\mathbb{E}_{x\sim\hat{p}_{data}}[log\hat{p}_{data}(x)-logp_{model}(x)] \tag{4}
左边仅涉及数据生成过程,和模型无关,所以只需要最小化
(5)θML=argminθExp^datalogpmodel(x;θ)\theta_{ML}=argmin_\theta-\mathbb{E}_{x\sim\hat{p}_{data}}logp_{model}(x;\theta) \tag{5}
我们可以将最大似然看作使模型分布尽可能和经验分布p^data\hat{p}_{data}相匹配,理想情况下能够匹配真实分布pdatap_{data},但我们无法直接知道这个真实分布。
  考虑用受限玻尔兹曼机RBM来对pmodelp_{model}进行建模,RBM有两层,分别称为可见层(visible layer)和隐藏层(hidden layer),可见层为可观察变量vv,隐藏层为潜变量hh。层内无连接,层间全连接,是一个二分网络结构,所以当给定可见层神经元状态时,隐藏层各神经元条件独立,反之亦然。可见层神经单元用来描述观察数据,隐藏层神经单元可以看作特征提取层。
RBM
  就像普通的玻尔兹曼机,受限玻尔兹曼机也是基于能量的模型,其联合概率分布由能量函数指定(能量函数的概念最早来自于统计热力学家研究磁体的易辛模型,后来被Hinton借鉴发展为RBM模型)
(6)Pθ(v=v,h=h)=1Zexp(E(v,h))=1Z(θ)exp(i=1Dj=1FWijvihj+i=1Dvibi+j=1Fhjaj)P_\theta(\mathtt{v}=v,\mathtt{h}=h)=\frac{1}{Z}exp(-E(v,h)) \\ =\frac{1}{Z(\theta)}exp(\sum_{i=1}^D\sum_{j=1}^FW_{ij}v_ih_j+\sum_{i=1}^Dv_ib_i+\sum_{j=1}^Fh_ja_j)\tag{6}
(7)Pθ(v=v)=1Z(θ)exp(vTWh+aT+bTv)P_\theta(\mathtt{v}=v)=\frac{1}{Z(\theta)}exp(v^TWh+a^T+b^Tv) \tag{7}
RBM的能量函数由下给出
(8)E(v,h)=bTvcThvTWhE(v,h)=-b^Tv-c^Th-v^TWh \tag{8}
我们通过最大似然估计来确定RBM的参数
(9)θ=argmaxθL(θ)=argmaxθ1Ni=1mlogPθ(v(i))\theta=argmax_\theta L(\theta)=argmax_\theta\frac{1}{N}\sum_{i=1}^mlogP_\theta(v^{(i)})\tag{9}
可以通过随机梯度下降 确定参数,首先要求L(θ)L(\theta)WW的导数
(10)L(θ)Wij=1Nn=1mWijlog(hexp[v(n)TWh+aTh+bTv(n)])WijlogZ(θ)=EPdata[vihj]EPθ[vihj]\frac{\partial L(\theta)}{\partial W_{ij}}=\frac{1}{N}\sum_{n=1}^m \frac{\partial}{\partial W_{ij}}log(\sum_hexp[v^{(n)T}Wh+a^Th+b^Tv^{(n)}])-\frac{\partial}{\partial W_{ij}}logZ(\theta)\\ =E_{P_{data}}[v_ih_j]-E_{P_\theta}[v_ih_j] \tag{10}
上式的前一项在全部数据集上求平均值即可,后一项等于v,hvihjPθ(v,h)\sum_{\mathtt{v},\mathtt{h}}v_ih_jP_\theta(\mathtt{v},\mathtt{h}),其中ZZ是被称为配分函数的归一化常数
(11)Z=vhexp(E(v,h))Z=\sum_v\sum_hexp(-E(v,h)) \tag{11}
计算配分函数ZZ的朴素方法是对所有状态进行穷举求和,计算上是难以处理的,Long and Servedio(2010)正式证明配分函数ZZ是难解的 。但是RBM的二分网络结构具有特定性质,因为可见层和隐藏层内部各神经元是条件独立的,所以条件分布p(hv)p(\mathtt{h}|\mathtt{v})p(vh)p(\mathtt{v}|\mathtt{h})是因子的,并且计算和采样相对简单。
(12)P(hv)=P(h,v)P(v)=1P(v)1Zexp{bTv+cTh+vtWh}=1Zexp{cTh+vTWh}=1Zexp{j=1nhcjThj+nhj=1vTW:,jhj}=1Zj=1nhexp{cjThj+vTW:,jhj} P(h|v)=\frac{P(h,v)}{P(v)} \\ = \frac{1}{P(v)}\frac{1}{Z}exp\{b^Tv+c^Th+v^tWh\} \\ = \frac{1}{Z'}exp\{c^Th+v^TWh\} \\ = \frac{1}{Z'}exp\{\sum_{j=1}^{n_h}c_j^Th_j+\sum_{n_h}^{j=1}v^TW_{:,j}h_j\} \\ = \frac{1}{Z'}\prod_{j=1}^{n_h}exp\{c_j^Th_j+v^TW_{:,j}h_j\} \tag{12}

相关文章:

  • 2021-08-23
  • 2022-12-23
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2022-03-02
猜你喜欢
  • 2021-11-08
  • 2021-07-17
  • 2021-07-28
  • 2021-08-11
相关资源
相似解决方案