花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)

深度学习 专栏收录该内容
29 篇文章 2 订阅

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

花书+吴恩达深度学习(二三)结构化概率模型(贝叶斯网络、马尔可夫网络)
花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)
花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)

0. 前言

通常我们有一系列可见变量 v v v和一系列潜变量 h h h

推断困难通常是指难以计算 p ( h ∣ v ) p(h\mid v) p(hv)或其期望

1. 将推断视为优化问题

假设一个包含可见变量 v v v和潜变量 h h h的概率模型,我们希望观察 log ⁡ p ( v ; θ ) \log p(v;\theta) logp(v;θ),作为替代,我们可以计算一个 log ⁡ p ( v ; θ ) \log p(v;\theta) logp(v;θ)的下界 L ( v , θ , q ) L(v,\theta,q) L(v,θ,q),称为证据下界(evidence lower bound, ELBO)
L ( v , θ , q ) = log ⁡ p ( v ; θ ) − D K L ( q ( h ∣ v ) ∣ ∣ p ( h ∣ v ; θ ) ) L(v,\theta,q)=\log p(v;\theta)-D_{KL}(q(h\mid v)\mid \mid p(h\mid v;\theta)) L(v,θ,q)=logp(v;θ)DKL(q(hv)p(hv;θ))
证据下界的标准定义为:
L ( v , θ , q ) = E h ∼ q [ log ⁡ p ( h , v ) ] + H ( q ) L(v,\theta,q)=\mathbb{E}_{h\sim q}[\log p(h,v)]+H(q) L(v,θ,q)=Ehq[logp(h,v)]+H(q)

越好的近似 p ( h ∣ v ) p(h\mid v) p(hv)的分布 q ( h ∣ v ) q(h\mid v) q(hv),得到的下界就越紧,与 log ⁡ p ( v ) \log p(v) logp(v)更接近。当 q ( h ∣ v ) = p ( h ∣ v ) q(h\mid v)=p(h\mid v) q(hv)=p(hv)时,这个近似完美的,也就是 L ( v , θ , q ) = log ⁡ p ( v ; θ ) L(v,\theta,q)=\log p(v;\theta) L(v,θ,q)=logp(v;θ)

因此我们可以将推断问题看作找一个分布 q q q使得 L L L最大的过程。

1.1 期望最大化 EM

期望最大化(expectation maximization)由交替迭代,直到收敛的两步运算组成:

  • E步(expectation step):令 θ ( 0 ) \theta^{(0)} θ(0)表示在这一部开始时的参数值,对任何我们想要训练索引为 i i i的训练样本 v ( i ) v^{(i)} v(i),令 q ( h ( i ) ∣ v ) = p ( h ( i ) ∣ v ( i ) ; θ ( 0 ) ) q(h^{(i)}\mid v)=p(h^{(i)}\mid v^{(i)};\theta^{(0)}) q(h(i)v)=p(h(i)v(i);θ(0))。如果改变 θ \theta θ,那么 p p p会改变,但是 q q q不变
  • M步(maximization step):使用选择的优化算法完全的或部分的关于 θ \theta θ最大化 ∑ i L ( v ( i ) , θ , q ) \sum_iL(v^{(i)},\theta,q) iL(v(i),θ,q)

这可以被看作通过坐标上升算法来最大化 L L L,第一步更新分布 q q q,另一部更新 θ \theta θ

1.2 最大后验推断 MAP

最大后验推断(Maximum A Posteriori),简称MAP推断,意味着计算:
h ∗ = arg ⁡ max ⁡ h p ( h ∣ v ) h^*=\arg \max_h p(h\mid v) h=arghmaxp(hv)

具体,我们令分布 q q q满足Dirac分布:
q ( h ∣ v ) = δ ( h − μ ) q(h\mid v)=\delta(h-\mu) q(hv)=δ(hμ)
意味着我们可以通过 μ \mu μ完全控制分布 q q q,我们只需要优化:
μ ∗ = arg ⁡ max ⁡ μ log ⁡ p ( h = μ , v ) \mu^*=\arg \max_\mu \log p(h=\mu,v) μ=argμmaxlogp(h=μ,v)

1.3 稀疏编码

稀疏编码是一种在隐藏单元上加上了诱导稀疏性的先验知识的线性因子模型:
p ( h i ) = λ 2 exp ⁡ ( − λ ∣ h i ∣ ) p ( v ∣ h ) = N ( v ; W h + b , β − 1 I ) p(h_i)=\frac{\lambda}{2}\exp(-\lambda \left|h_i\right|)\\ p(v\mid h)=N(v;Wh+b,\beta^{-1}I) p(hi)=2λexp(λhi)p(vh)=N(v;Wh+b,β1I)
将所有 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}\left|H_{i,j}\right|+\sum_{i,j}(V-HW^T)^2_{i,j} J(H,W)=i,jHi,j+i,j(VHWT)i,j2
我们可以交替迭代,分别关于 H   W H\ W H W最小化 J J J的方式最小化 J J J

2. 变分推断

变分学习的核心思想就是在一个关于 q q q的有约束的分布族上最大化 L L L,选择这个分布族时应该考虑到计算 E q log ⁡ p ( h , v ) \mathbb{E}_q \log p(h,v) Eqlogp(h,v)

一种常用的变分学习的方法是加入一些限制使得 q q q是一个因子分布,这被称为均值场方法:
q ( h ∣ v ) = ∏ i q ( h i ∣ v ) q(h\mid v)=\prod_i q(h_i\mid v) q(hv)=iq(hiv)

变分方法的优点是,我们不需要为分布 q q q设定特定的参数化形式

在学习算法中使用近似推断会影响学习的过程,反过来学习过程也会影响推断算法的准确性。

训练算法倾向于朝使得近似推断算法中的近似假设变得更加真实的方向来适应模型。

2.1 离散型潜变量

我们可以用一个向量 h ^ \hat{h} h^来参数化分布 q q q q ( h i = 1 ∣ v ) = h ^ i q(h_i=1\mid v)=\hat{h}_i q(hi=1v)=h^i

解关于 h ^ i \hat{h}_i h^i的方程:
∂ ∂ h ^ i L = 0 \frac{\partial}{\partial \hat{h}_i}L=0 h^iL=0
我们反复更新 h ^ \hat{h} h^不同的元素直到满足收敛准则。

2.2 连续性潜变量

我们对均值场近似,对任何 j ≠ i j\neq i j̸=i固定 q ( h j ∣ v ) q(h_j\mid v) q(hjv),可以归一化下面分布来得到最优的 q ( h i ∣ v ) q(h_i\mid v) q(hiv)
q ~ ( h i ∣ v ) = exp ⁡ ( E h − i ∼ q ( h − i ∣ v ) log ⁡ p ~ ( v , h ) ) \tilde{q}(h_i\mid v)=\exp(\mathbb{E}_{h_{-i}\sim q(h_{-i}\mid v)}\log \tilde{p}(v,h)) q~(hiv)=exp(Ehiq(hiv)logp~(v,h))
这是一个不动点方程,对每一个 i i i它都被迭代的反复使用直到收敛。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

  • 3
    点赞
  • 2
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值