ELBO surgery: yet another way to carve up the variational evidence lower bound
概
这篇文章主要介绍了一种ELBO一种新的改写, 以及可以从中获得的一些启发.
主要内容
=\log \int q_{\phi}(\bm{z}|\bm{x}) \frac{p_{\theta}(\bm{z}, \bm{x})}{q_{\phi}(\bm{z}|\bm{x})} \mathrm{d}\bm{z}
\ge \mathbb{E}_{q_{\phi}(\bm{z}|\bm{x})}\log \frac{p_{\theta}(\bm{z}, \bm{x})}{q_{\phi}(\bm{z}|\bm{x})} \mathrm{d}\bm{z} := \mathcal{L}(\theta, \phi).
\]
上式是一般的ELBO的推导, 我们的目的就是通过最大化\(\mathcal{L}\)以期望相应的似然函数足够大.
ELBO有下列的表示:
Evidence minus posterior KL
\]
最大化\(\mathcal{L}\), 且后验分布拟合的足够好的话, 我们可以期望相应的(对数)似然也足够大.
Average negative energy plus entropy
\]
这里\(\mathbb{H}\)代表熵.
就是一个好的(拟合的)后验分布应该集中于分布的最大值, 但尽量让自己本身的熵也足够大(如果没有第二项, 那拟合的后验分布就会退化成一个点).
Average term-by-term reconstruction minus KL to prior
=\frac{1}{N}\sum_{n=1}^N \mathbb{E}_{q_{\phi}(z_n|x_n)}[\log p_{\theta}(x_n|z_n)] - \mathrm{KL}(q_{\phi}(z_n|x_n) \| p(z_n)).
\]
这个就是我们比较常见的ELBO的一种表达方式, 也就是一个重构误差减去后验分布和先验分布的一个KL散度.
本文的思路
假设\(q(x_n) = \frac{1}{N}, n=1,\cdots, N\).
=\mathbb{E}_{q(x)} \mathbb{E}_{q_{\phi}(z|x)}\log \frac{p_{\theta}(x, z)}{q_{\phi}(z|x)}
=\mathbb{E}_{q(x)} \mathbb{E}_{q_{\phi}(z|x)}\log p_{\theta}(x|z)
+ \mathbb{E}_{q_{\phi}(z)}\log p(z) + \mathbb{E}_{q(x)}[\mathbb{H}(q_{\phi}(z|x))].
\]
其可以进一步表示为:
=\mathbb{E}_{q(x)} \mathbb{E}_{q_{\phi}(z|x)}\log p_{\theta}(x|z)
-(\log N - \mathbb{E}_{q_{\phi}(z)}[\mathbb{H}[q(x|z)]])
-\mathrm{KL}(q_{\phi}(z)\| p(z)).
\]
注: 这里\(q_{\phi}(z) = \frac{1}{n} \sum_{n=1}^N q_{\phi}(z|x_n)\).
注意到上面只有最后一项与先验分布有关, 所以为了提高ELBO, 这要求我们选择一个合适的先验分布\(p(z)\).
当然, 最好就是\(q_{\phi}(z)\), 但是这个计算量太大.
ELBO surgery: yet another way to carve up the variational evidence lower bound的更多相关文章
- ELBO 与 KL散度
浅谈KL散度 一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information dive ...
- 文本主题模型之LDA(三) LDA求解之变分推断EM算法
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法 本文是LDA主题模型的第三篇,读这一篇之前 ...
- [Bayesian] “我是bayesian我怕谁”系列 - Variational Inference
涉及的领域可能有些生僻,骗不了大家点赞.但毕竟是人工智能的主流技术,在园子却成了非主流. 不可否认的是:乃值钱的技术,提高身价的技术,改变世界观的技术. 关于变分,通常的课本思路是: GMM --&g ...
- 生成器的认识及其思考:VAE, GAN, Flow-based Invertible Model
生成器对应于认知器的逆过程. 这一切的起源都是当初一个极具启发性的思想:Sleep-wake algorithm——人睡眠时整理记忆做梦,是一个生成的过程,即通过最终的识别结果企图恢复接收到的刺激,当 ...
- AIOps探索:基于VAE模型的周期性KPI异常检测方法——VAE异常检测
AIOps探索:基于VAE模型的周期性KPI异常检测方法 from:jinjinlin.com 作者:林锦进 前言 在智能运维领域中,由于缺少异常样本,有监督方法的使用场景受限.因此,如何利用无监 ...
- 论文解读(LA-GNN)《Local Augmentation for Graph Neural Networks》
论文信息 论文标题:Local Augmentation for Graph Neural Networks论文作者:Songtao Liu, Hanze Dong, Lanqing Li, Ting ...
- (转) Summary of NIPS 2016
转自:http://blog.evjang.com/2017/01/nips2016.html Eric Jang Technology, A.I., Careers ...
- 变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)
摘要:常规的神经网络权重是一个确定的值,贝叶斯神经网络(BNN)中,将权重视为一个概率分布.BNN的优化常常依赖于重参数技巧(reparameterization trick),本文对该优化方法进行概 ...
- 代码的坏味道(11)——霰弹式修改(Shotgun Surgery)
坏味道--霰弹式修改(Shotgun Surgery) 霰弹式修改(Shotgun Surgery) 类似于 发散式变化(Divergent Change) ,但实际上完全不同.发散式变化(Diver ...
随机推荐
- Oracle中dbms_random包详解
Oracle之DBMS_RANDOM包详解参考自:https://www.cnblogs.com/ivictor/p/4476031.html https://www.cnblogs.com/shen ...
- android studio 使用 aidl(三)权限验证
这篇文章是基于android studio 使用 aidl (一) 和 android studio 使用 aidl(二) 异步回调 下面的代码都是简化的,如果看不懂请先移步上2篇文章 网上的东西太坑 ...
- ORACLE 按逗号拆分字符串为多行
with t as (select '1,2,3,10,11,12' a from dual) select substr(a, decode(level - 1, 0, 0, instr(a, ', ...
- 转 Android应用开发必备的20条技能
https://blog.csdn.net/u012269126/article/details/52433237 有些andorid开发人员感觉很迷茫,接下来该去看系统源码还是继续做应用,但是感觉每 ...
- mybatis错误 Mapped Statements collection does not contain value for
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for 在unit里测试 ...
- JSP常见的状态码
1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...
- 【C/C++】金币
做了一下去年的题目,今年看起来就没这么难了 从上到下的可以从下到上考虑,会简单很多,dp入门 题目 金币 小招在玩一款游戏,在一个N层高的金字塔上,以金字塔顶为第一层,第i层有i个落点,每个落点有若干 ...
- 手写Mybatis和Spring整合简单版示例窥探Spring的强大扩展能力
Spring 扩展点 **本人博客网站 **IT小神 www.itxiaoshen.com 官网地址****:https://spring.io/projects/spring-framework T ...
- MySQL数据库字段加密
一.导入表结构 USE `qskj_03`; /*Table structure for table `test` */ DROP TABLE IF EXISTS `test`; CREATE TAB ...
- Docker从入门到精通(五)——Dockerfile
Dockerfile 简单来说就是一个包含用于组合镜像的命令的文本文档,Docker 通过读取 Dockerfile 中的指令就可以按步骤生成镜像,那么在制作镜像之前,我们先了解一下镜像的原理. 1. ...