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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/86655220

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

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

0. 前言

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

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

1. 将推断视为优化问题

假设一个包含可见变量 v v 和潜变量 h h 的概率模型,我们希望观察 log p ( v ; θ ) \log p(v;\theta) ,作为替代,我们可以计算一个 log p ( v ; θ ) \log p(v;\theta) 的下界 L ( v , θ , q ) L(v,\theta,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 ) = E h q [ log p ( h , v ) ] + H ( q ) L(v,\theta,q)=\mathbb{E}_{h\sim q}[\log p(h,v)]+H(q)

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

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

1.1 期望最大化 EM

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

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

这可以被看作通过坐标上升算法来最大化 L L ,第一步更新分布 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)

具体,我们令分布 q q 满足Dirac分布:
q ( h v ) = δ ( h μ ) q(h\mid v)=\delta(h-\mu)
意味着我们可以通过 μ \mu 完全控制分布 q q ,我们只需要优化:
μ = arg max μ log p ( h = μ , v ) \mu^*=\arg \max_\mu \log p(h=\mu,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)
将所有 h h 拼成矩阵 H H ,所有 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}
我们可以交替迭代,分别关于 H   W H\ W 最小化 J J 的方式最小化 J J

2. 变分推断

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

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

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

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

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

2.1 离散型潜变量

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

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

2.2 连续性潜变量

我们对均值场近似,对任何 j i j\neq i 固定 q ( h j v ) q(h_j\mid v) ,可以归一化下面分布来得到最优的 q ( h i v ) q(h_i\mid v)
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))
这是一个不动点方程,对每一个 i i 它都被迭代的反复使用直到收敛。


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

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/86655220