文章目录

  • 0. 前言
  • 1. 将推断视为优化问题
    • 1.1 期望最大化 EM
    • 1.2 最大后验推断 MAP
    • 1.3 稀疏编码
  • 2. 变分推断
    • 2.1 离散型潜变量
    • 2.2 连续性潜变量

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

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

0. 前言

通常我们有一系列可见变量vvv和一系列潜变量hhh。

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

1. 将推断视为优化问题

假设一个包含可见变量vvv和潜变量hhh的概率模型,我们希望观察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;θ)−DKL(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(h∣v)∣∣p(h∣v;θ))
证据下界的标准定义为:
L(v,θ,q)=Eh∼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)=Eh∼q​[logp(h,v)]+H(q)

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

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

1.1 期望最大化 EM

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

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

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

1.2 最大后验推断 MAP

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

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

1.3 稀疏编码

稀疏编码是一种在隐藏单元上加上了诱导稀疏性的先验知识的线性因子模型:
p(hi)=λ2exp⁡(−λ∣hi∣)p(v∣h)=N(v;Wh+b,β−1I)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(v∣h)=N(v;Wh+b,β−1I)
将所有hhh拼成矩阵HHH,所有vvv拼成矩阵VVV,则最小化下式:
J(H,W)=∑i,j∣Hi,j∣+∑i,j(V−HWT)i,j2J(H,W)=\sum_{i,j}\left|H_{i,j}\right|+\sum_{i,j}(V-HW^T)^2_{i,j} J(H,W)=i,j∑​∣Hi,j​∣+i,j∑​(V−HWT)i,j2​
我们可以交替迭代,分别关于HWH\ WH W最小化JJJ的方式最小化JJJ。

2. 变分推断

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

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

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

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

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

2.1 离散型潜变量

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

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

2.2 连续性潜变量

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


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

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

  1. 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)

    目录 0. 前言 1. Batch gradient descent(BGD) 2. Stochastic gradient descent(SGD) 3. Mini-batch gradient d ...

  2. 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

    目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...

  3. 花书+吴恩达深度学习(八)优化方法之 Batch normalization

    目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...

  4. 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)

    目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...

  5. 花书+吴恩达深度学习(五)正则化方法(防止过拟合)

    目录 0. 前言 1. 参数范数惩罚 2. Dropout 随机失活 3. 提前终止 4. 数据集增强 5. 参数共享 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+ ...

  6. 花书+吴恩达深度学习(二九)生成随机网络 GSN

    文章目录 0. 前言 1. 生成随机网络 GSN 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习(二七)深度生成模型之玻尔兹曼机及其变体(RBM, DB ...

  7. 花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)

    文章目录 0. 前言 1. 对数似然梯度 1.1 朴素 MCMC 算法 1.2 对比散度算法 CD 1.3 随机最大似然 SML 2. 伪似然 3. 得分匹配 SM 4. 比率匹配 RM 5. 去噪得 ...

  8. 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)

    文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...

  9. 花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)

    文章目录 0. 前言 1. 欠完备自编码器 2. 去噪自编码器 DAE 3. 收缩自编码器 CAE 4. 稀疏自编码器 5. 预测稀疏分解 PSD 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞 ...

最新文章

  1. 生成器、迭代器的区别?
  2. [MSSQL2012]LEAD函数
  3. 方向键 上下左右的转译
  4. 多字节与UTF-8、Unicode之间的转换
  5. security 底层原理_spring security 实现remeber me(免登陆功能)的原理
  6. 未雨绸缪 | 一文简介 Azure Front Door
  7. 【渝粤题库】国家开放大学2021春1313学前儿童卫生与保健题目
  8. jenkins自动部署--定时轮询svn代码更新并自动发布至测试环境
  9. ExtJs 备忘录(1)—— Form表单(一) [ 控件使用 ]
  10. vs设置编码格式_轻松编辑PDF文档的贝茨编码
  11. 设置 Web 服务器控件颜色属性 转
  12. WPF 创建右键菜单
  13. HttpServletResponse response详解
  14. 滑动平均_善杰告诉您初中物理学滑动变阻器的各种作用
  15. python求梯形面积_python计算梯形面积
  16. android 安卓手机如何投屏到显示器
  17. STM32,仿照LL库,编写FLASH的LL库(内有完成代码)(STM32F0)
  18. latex公式及表格识别
  19. luogu P1357 花园
  20. 莫明其妙的死机现象,莫明其妙的重启

热门文章

  1. .NET 中文件嵌套,例如:cshtml文件下面嵌套css和js【机器翻译】
  2. vc++源码免杀特殊技巧
  3. 牛客练习赛24 C PH试纸
  4. 《软件需求最佳实践》阅读笔记02
  5. Html5+NodeJS——拖拽多个文件上传到服务器
  6. 机器学习定义及常用算法
  7. Spring.NET 中的 ADO.NET 数据访问的示例
  8. c#静态变量和静态属性的区别
  9. Nokia Lumia(WP7.5) 新手入门的摸索
  10. 硬盘分区表和文件分配表格式