目录

后验坍塌

ELBO?

!别怪ELBO,另有起因?



后验坍塌

在贝叶斯模型世界(如VAE,pPCA),所担心的不是神经网络的“梯度消失”或“梯度爆炸”,而是“后验失效”(posterior collapse)现象。本质上,任何模型(传统或非传统)都要从每个新样本“汲取信息”,更新自身。当信息无法汲取并用来更新模型,就会出现上述问题。相对比较晦涩,简单来说就是 z的生成已经摆脱了前边encoder的影响,然后z直接输出一个或多个从大部分样本总结出来的几种模式。该模型最终只依赖于解码器的自回归特性,而忽略了潜在变量,这变得无信息。

一般认为是因为解码器q(x|z)太强了,训练时重参数操作会引入噪声,噪声一大,z的利用会变得很困难,所以可能模型干脆不用z了,独立于z去进行重建,这种情况下的VAE模型并没有什么价值:KL散度为0说明编码器输出的是常数向量。而我们使用VAE通常来说是看中了它无监督构建编码向量的能力,所以要应用VAE的话还是得解决KL散度消失问题。

“后验失效”(posterior collapse)现象   (With the help of better explanations provided in Z-Forcing: Training Stochastic Recurrent Networks:

当后验不坍塌时:   (潜在变量的第d维)是从采样得到的,其中是用神经网络从输入x的拟合的函数。

换句话说encoder部分,从x中提取有效的信息到中。

当后验发生坍塌:   当输入x的后验参数的信号太弱或者噪声太大,decoder就开始忽略从近似后验中采样的z。

  • 噪声过大意味着μd和σd是不稳定的,因此采样的z值也是不稳定的,利用z太难,这迫使解码器忽略它们,抛弃z,直接自行重构。我所说的“忽略”是指:解码器x^的输出几乎与z无关,实际上可以认为产生一些通用的输出x^,即所有所见x的粗略代表。
  • 信号太弱:   ,也就是说,后验的μ和σ变得几乎和输入x没有什么联系,换句话说,μ和σ崩溃为常数值a,b。从而导致了是将一个与x不同的输入的(常数)信号输送给解码器。最终这个z就没有价值,解码器试图通过忽略从N(a,b)采样的无用的z来重构x。

Z-Forcing: Training Stochastic Recurrent Networks:中描述,由于随机梯度近似让方差下降(variance induced by the stochastic gradient approximation),会导致后验提供的信号太弱或噪声太强。因此,解码器可能学会忽略z,而仅仅依赖x的自回归特性,使x和z相互独立,即式2中的KL项消失。在不同的领域,如文本和图像,经验观察到,当与强自回归解码器结合时,很难利用潜在变量。

Don’t Blame the ELBO!A Linear VAE Perspective on Posterior Collapse:中描述, VAE优化的一个主要问题是后塌陷,其中学习的变分分布接近于先验。这降低了生成模型(encoder  ->  q(z|x))的容量,使得解码器网络无法利用所有潜在维度的信息内容。


ELBO?

VAE的变分推断中,直接计算数据x的相似度边际分布log p(x) 非常困难,但是可以用变分分布q(z|x)去估计后验(实际上变分分布就是VAE的编码器encoder),这就引出了VAE的目标函数ELBO

log p(x)一定是大于ELBO的,那么让ELBO最大就是VAE的最终解了:

通常认为ELBO的使用是使得后验坍塌的原因

一般认为这个问题的根源看似就是ELBO目标函数。

分析ELBO的两个部分似乎有些道理:

这两个部分在拟合后验和保持自身分布之间寻找平衡。于是,如果产生“后验失效”问题,许多人会把原因归结为DKL这部分上(模型太注重保持原有z分布,而对新来数据也不予理睬,阻止模型的参数更新)。也就是说,如果(x|z)这个生成网络太强了,抛弃利用encoder的近似后验的q(z|x)而直接用模型的z,在表达式上,就是直接使后面的KL term就会被压成0,也就是先验和近似后验相等了,这会使得VAE模型得到一个没有意义的近似后验分布,从而得到一个poor latent representation z,这导致了所谓的后验坍塌现象。

本来理论上优化ELBO是可行的,但是在实际训练中,会发现陷入ELBO目标的局部最优的情况,也就是会得到一个退化的solution:。这个后验不再取决于数据x得到,不再通过encoder的近似后验q(z|x)采样得到。坍塌时,z和x本质上independent,因此对潜在变量的后验估计不能代表对其数据的忠实总结faithful summaries——VAE没有学习到良好的representations。当似然p(x|z)容量非常高的时候,也就是自回归生成器非常强的时候,这个问题尤其突出。

ELBO表达式中,KL散度迫使变分分布趋向于模型先验p(z),因此,这是许多文章试图缓解后塌陷的合理焦点。下面的这篇2019的文章假设对数边际可能性本身经常会导致后塌陷。


!别怪ELBO,另有起因?

而google今年NeurIPS 2019上的一篇文章批评了上述误解,认为“后验失效”不是任何ELBO项造成的,而是一开始用相似度边际分布log p(x)就造成了“后验失效”:

所以,如果一开始找错目标,再寻求最好的平衡也无济于事。一厢情愿地假设单个隐变量z,再用z求边际分布来拟合真实分布,这种做法可能是导致“后验失效”的真正原因。

因此,一个明显的解决方法就是增加z分布的复杂度,而不是用单一高斯分布(可以是多态先验等等~论文讨论中提到)。

VAE 中后验坍塌问题相关推荐

  1. 使用Batch Normalization解决VAE训练中的后验坍塌(posterior collapse)问题

    前言 在训练VAE模型时,当我们使用过于过于强大的decoder时,尤其是自回归式的decoder比如LSTM时,存在一个非常大的问题就是,decoder倾向于不从latent variable z中 ...

  2. 机器学习中的先验、后验和似然

    机器学习中的先验.后验和似然的概念理解 1.我自己的理解: 1)先验:统计历史上的经验而知当下发生的概率: 2)后验:当下由因及果的概率: 2.网上有个例子说的透彻: 1)先验--根据若干年的统计(经 ...

  3. VAE中重参数化技巧

    谈起重参数化技巧,不得不提变分自编码器(VAE):在VAE中,我们知道需要对编码器的输出.进行采样,从而可以将采样输入到编码器网络,能够得到输入样本的重构,以这种方式对模型进行训练.而VAE并没有这么 ...

  4. MAP 最大后验——利用经验数据获得对未观测量的点态估计

    Map (最大后验) 在贝叶斯统计学中,最大后验(Maximum A Posteriori,MAP)估计可以利用经验数据获得对未观测量的点态估计.它与Fisher的最大似然估计(Maximum Lik ...

  5. 贝叶斯学习--极大后验假设学习

    我们假定学习器考虑的是定义在实例空间X上的有限的假设空间H,任务是学习某个目标概念c:X→{0,1}.如通常那样,假定给予学习器某训练样例序列〈〈x1,d1,〉-〈xm,dm〉〉,其中xi为X中的某实 ...

  6. viterbi算法_序列比对(十四)——viterbi算法和后验解码的比较

    原创: hxj7 本文比较了viterbi算法求解最可能路径以及后验解码这两种不同的解码方法. 前文<序列比对(十)viterbi算法求解最可能路径>介绍了用viterbi算法求解最可能路 ...

  7. 多元正态分布的后验采样(包含程序)

    原文来自师兄的博客:http://blog.csdn.net/wjj5881005/article/details/53535613 均值和方差未知的多元正态分布的后验Multivariate nor ...

  8. 先验、后验、似然、置信的理解

    先验.后验.似然.置信的理解 1. 贝叶斯公式 2. 举例 1. 贝叶斯公式 公式中: 所求的是事件 A 发生条件下事件 Bi 的概率为P(Bi│A): 试验产生了原因A之后,再对结果发生概率的新认识 ...

  9. 我们能从后验分布中学到什么?贝叶斯后验的频率解释

    假设我们从未知分布 q 中观察到 N 个独立且同分布的 (iid) 样本 X = (x1, - , xN).统计学中的一个典型问题是"样本集 X 能告诉我们关于分布 q 的什么信息?&quo ...

  10. 多元正态分布的后验采样

    均值和方差未知的多元正态分布的后验Multivariate normal with unknown mean and variance 从后验分布中采样均值mu和方差Sigma 1. 均值和方差未知的 ...

最新文章

  1. poj2195(最大权完美匹配)
  2. Notepad++快捷键使用技巧
  3. Linux系统及编程期末试题,《LINUX系统及其编程》考试试题及答案.doc
  4. HDU (1575)Tr A ---矩阵快速幂
  5. observable_Java Observable clearChanged()方法与示例
  6. 信息学奥赛一本通(1409:判决素数个数)
  7. 我寫的JAVA記事本源程序
  8. MATLAB代码: 合并两张图
  9. 不到一秒卖出一部!荣耀9X系列国内销售29天破300万台
  10. C++基础教程之重载运算符和重载函数
  11. 中秋祝福网页制作_幼儿园中秋节活动方案(附环创)
  12. Pytorch实现手写数字识别
  13. 华为二层创建vlan_华为二层交换机基本配置命令有哪些
  14. 基于单片机PID算法温度控制系统设计(毕设)
  15. 配置tracker服务
  16. 计算机应用基础的课程目的,《计算机应用基础》课程教学大纲
  17. php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)
  18. centos打显卡驱动命令_CentOS 如何安装显卡驱动
  19. 自学笔记十四:Matlab浮点型:创建和转换、取值范围、运算和精度问题
  20. [CF802N][jzoj5378]闷声刷大题

热门文章

  1. Android 设置全屏样式主题的总结
  2. 程序员版--致青春(一)——facejoking刷票工具(谈刷票原理)
  3. 电信 IPRAN 设备组网方案_IPRAN 5G典型组网
  4. web打印模板神器reportbro—汉化及中文字体配置(上)
  5. 基于matlab水轮机期刊,四川紫坪铺电站水轮机综合特性三维建模
  6. win7默认网关不可用_win7系统提示rpc服务器不可用怎么办【详解】
  7. js 通过正则表达式验证身份证格式
  8. 华为云OBS创建对象时以HTTP方式通知订阅终端
  9. 要管理此计算机上的用户账户,Win10安装软件用户账户控制提示管理员已阻止运行此应用解决方法...
  10. JavaScript数组方法总结