近似推断

生成模型中的推断

  模型分为生成模型和判别模型,生成模型能够随机生成观测数据,同时对观测值 X X X和标注值 Y Y Y进行概率建模,从而计算出 P ( X , Y ) P(X,Y) P(X,Y),而判别模型只能建立从观测值 X X X到标注值 Y Y Y之间的映射,从而计算出 P ( Y ∣ X ) P(Y|X) P(YX)。在深度学习的生成模型中,一般会把观测值 x x x称为可见变量 v v v,将标注值 y y y称为不可见的隐变量 h h h
  许多概率生成模型为了计算 p ( v , h ) p(v,h) p(v,h),需要采用一些训练方法。对于采用极大似然的训练方法,此过程中必然要计算 p ( h ∣ v ) p(h|v) p(hv)或其期望,而计算 p ( h ∣ v ) p(h|v) p(hv)的过程称为推断。
θ ∗ = a r g m a x θ E v ∼ p ^ d a t a l o g   p m o d e l ( v ; θ ) = a r g m a x θ E v ∼ p ^ d a t a l o g ∑ h p m o d e l ( v , h ) = a r g m a x θ ∑ v l o g ∑ h p m o d e l ( h ∣ v ) \theta^*=argmax_\theta\mathbb{E}_{v\sim\hat{p}_{data}}log\ p_{model}(v;\theta)\\ =argmax_\theta\mathbb{E}_{v\sim\hat{p}_{data}}log\sum_hp_{model}(v,h)\\ =argmax_\theta\sum_vlog\sum_hp_{model}(h|v) θ=argmaxθEvp^datalog pmodel(v;θ)=argmaxθEvp^dataloghpmodel(v,h)=argmaxθvloghpmodel(hv)
  然而,除了少数简单图模型,如RBM和PCA可以很方便计算 p ( h ∣ v ) p(h|v) p(hv),大多数有多个隐层的图模型,都难以计算 p ( h ∣ v ) p(h|v) p(hv),称为推断困难。对于这种模型,精确推断算法需要指数级计算量,所以采用近似推断。
在这里插入图片描述

将推断视作优化问题

  有时候边缘化消去 h h h的操作很费时,会难以计算观测值的对数概率 l o g   p ( v ; θ ) log\ p(v;\theta) log p(v;θ),可以计算 l o g   p ( v ; θ ) log\ p(v;\theta) log p(v;θ)的ELBO证据下界 L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)来作为替代。
L ( v , θ , q ) = l o g   p ( v ; θ ) − D K L ( q ( h ∣ v ) ∣ ∣ p ( h ∣ v ; θ ) ) \mathcal{L}(v,\theta,q)=log\ p(v;\theta)-D_{KL}(q(h|v)||p(h|v;\theta)) L(v,θ,q)=log p(v;θ)DKL(q(hv)p(hv;θ))
因为 l o g   p ( v ) log\ p(v) log p(v) L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)之间差了一个 K L KL KL散度,而散度一定是非负的,
所以 L \mathcal{L} L必定小于等于 l o g   p ( v ; θ ) log\ p(v;\theta) log p(v;θ),当且仅当分布 q ( h ∣ v ) = p ( h ∣ v ) q(h|v)=p(h|v) q(hv)=p(hv)时,取到等号。
L ( v , θ , q ) = l o g p ( v ; θ ) − D K L ( q ( h ∣ v ) ∣ ∣ p ( h ∣ v ; θ ) ) = l o g p ( v ; θ ) − E h ∼ q l o g q ( h ∣ v ) p ( h ∣ v ) = l o g p ( v ; θ ) − E h ∼ q l o g q ( h ∣ v ) p ( h , v ; θ ) p ( v ; θ ) = l o g p ( v ; θ ) − E h ∼ q [ l o g q ( h ∣ v ) − l o g p ( h , v ; θ ) + l o g p ( v ; θ ) ] = − E h ∼ q [ l o g q ( h ∣ v ) − l o g p ( h , v ; θ ) ] = E h ∼ q [ l o g p ( h , v ) ] + H ( q ) (51) \mathcal{L}(v,\theta,q)=logp(v;\theta)-D_{KL}(q(h|v)||p(h|v;\theta)) \\ =logp(v;\theta)-\mathbb{E}_{h\sim q}log\frac{q(h|v)}{p(h|v)} \\ =logp(v;\theta)-\mathbb{E}_{h\sim q}log\frac{q(h|v)}{\frac{p(h,v;\theta)}{p(v;\theta)}} \\ =logp(v;\theta)-\mathbb{E}_{h\sim q}[logq(h|v)-logp(h,v;\theta)+logp(v;\theta)] \\ =-\mathbb{E}_{h\sim q}[logq(h|v)-logp(h,v;\theta)] \\ =\mathbb{E}_{h\sim q}[logp(h,v)]+H(q) \tag{51} L(v,θ,q)=logp(v;θ)DKL(q(hv)p(hv;θ))=logp(v;θ)Ehqlogp(hv)q(hv)=logp(v;θ)Ehqlogp(v;θ)p(h,v;θ)q(hv)=logp(v;θ)Ehq[logq(hv)logp(h,v;θ)+logp(v;θ)]=Ehq[logq(hv)logp(h,v;θ)]=Ehq[logp(h,v)]+H(q)(51)
  对于一个合适选择的分布 q ( h ∣ v ) q(h|v) q(hv) L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)是容易计算的,对任意一个分布 q ( h ∣ v ) q(h|v) q(hv) L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)提供了似然函数 l o g   p ( v ; θ ) log\ p(v;\theta) log p(v;θ)的一个下界,因此可以将推断问题,看做是寻找一个分布 q ( h ∣ v ) q(h|v) q(hv)使 L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)最大的过程。

坐标上升推断

  将 L ( v , θ , q ) \mathcal{L}(v,\theta,q) L(v,θ,q)作为需要优化的目标函数,采用坐标上升算法,分别依次对 θ \theta θ q q q变量进行更新并交替迭代,也称为EM算法。在E阶段更新分布 q q q来最大化 L \mathcal{L} L,在M阶段更新 θ \theta θ来最大化 L \mathcal{L} L

  • E阶段:固定 θ \theta θ,更新 q ( h ∣ v ( i ) ) = a r g m a x q L ( v ( i ) , θ , q ) = p ( h ∣ v ( i ) ; θ ) q(h|v^{(i)})=argmax_q\mathcal{L}(v^{(i)},\theta,q)=p(h|v^{(i)};\theta) q(hv(i))=argmaxqL(v(i),θ,q)=p(hv(i);θ)
  • M阶段:固定 q q q,更新 θ = a r g m a x θ ∑ i L ( v ( i ) , θ , q ) \theta=argmax_\theta\sum_i\mathcal{L}(v^{(i)},\theta,q) θ=argmaxθiL(v(i),θ,q)

虽然E阶段采用精确推断算法计算 q q q,但是 θ \theta θ实际上有差异,所以可以看作近似推断。

最大后验推断

  一般的推断是计算 p ( h ∣ v ) p(h|v) p(hv)的完整概率分布,另一种情况是只计算 p ( h ∣ v ) p(h|v) p(hv)的点估计,即只计算 h h h的一个最可能值来代替在所有可能值的完整分布上的推断,称为最大后验推断MAP。
h ∗ = a r g m a x h p ( h ∣ v ) h^*=argmax_hp(h|v) h=argmaxhp(hv)
虽然MAP是精确计算 p ( h ∣ v ) p(h|v) p(hv),但是只给出最可能的值而不是完整分布,这并不能提供最优的 q q q,所以可以看作近似推断。
  回顾推断定义,对于一个无限制的概率分布族中的分布 q q q,使用优化算法最大化
L ( v , θ , q ) = E h ∼ q [ l o g   p ( h , v ) ] + H ( q ) \mathcal{L}(v,\theta,q)=\mathbb{E}_{h\sim q}[log\ p(h,v)]+H(q) L(v,θ,q)=Ehq[log p(h,v)]+H(q)
假设分布 q q q为Dirac分布
q ( h ∣ v ) = δ ( h − μ ) q(h|v)=\delta(h-\mu) q(hv)=δ(hμ)
丢弃 L \mathcal{L} L中不随 μ \mu μ变化的项,求解 μ \mu μ的最优化问题为
μ ∗ = a r g m a x μ l o g   p ( h = μ , v ) \mu^*=argmax_\mu log\ p(h=\mu,v) μ=argmaxμlog p(h=μ,v)这等价于MAP推断问题
h ∗ = a r g m a x h   p ( h ∣ v ) h^*=argmax_h\ p(h|v) h=argmaxh p(hv)
  回顾到坐标上升推断的EM算法,可以在E阶段使用MAP推断估计出 h ∗ h^* h,M阶段更新 θ ∗ \theta^* θ以增大 l o g   p ( h ∗ , v ) log\ p(h^*,v) log p(h,v)
  稀疏编码模型,在线性因子模型的基础上,对隐变量加了一个诱导稀疏性的先验,一个常用的选择是Laplace先验。
p ( h i ) = h 2 e x p ( − λ ∣ h i ∣ ) p(h_i)=\frac{h}{2}exp(-\lambda|h_i|) p(hi)=2hexp(λhi)
可见变量的数据是由一个线性变化加上噪声构成
p ( v ∣ h ) = N ( v ; W h + b , β − 1 I ) p(v|h)=\mathcal{N}(v;Wh+b,\beta^{-1}I) p(vh)=N(v;Wh+b,β1I)
分布 p ( h ∣ v ) p(h|v) p(hv)难以计算,因为 h i h_i hi h j h_j hj之间会相互影响,难以直接确定。在高斯模型中, h i h_i hi h j h_j hj之间可以通过协方差矩阵高效建模,但是稀疏模型中的稀疏先验使其相互作用关系不服从高斯分布。因此,稀疏模型难以通过极大似然估计来进行学习,而是通过MAP推断和 L \mathcal{L} L来学习。将向量 h h h拼成矩阵 H H H,将 v v v拼成矩阵 V V V,那么稀疏编码问题为最小化。
J ( H , W ) = ∑ i , j ∣ H i , j ∣ + ∑ i , j ( V − H W T ) i , j 2 J(H,W)=\sum_{i,j}|H_{i,j}|+\sum_{i,j}(V-HW^T)^2_{i,j} J(H,W)=i,jHi,j+i,j(VHWT)i,j2

变分推断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值