https://zhuanlan.zhihu.com/p/434394556
此总结首次完成于2021年4月25日,今日再次遇到vae模型推导问题,翻出一看,豁然开朗,故想分享于知乎社区,与大家共同分享,如有错误或不同见解请多多批评指正与交流。
摘要
VAE 模型 loss 的详细推导过程,变分自编码器的理解。
01
1.1 VAE模型基本网络结构
变分自编码器 (VAE) 由编码器和解码器两个部分组成。特征 x 输入编码器 生成编码特征 z,z 输入解码器 生成重构的 ; 通过生成角度来理解,该网络又可以分成推理网络和生成网络两部分。
图1:VAE模型, ( | )表示推断网络, ( | )表示的生成网络(公式格式存在问题)1.2 与 的理解
是编码器/推理网络, 该分布是真实的、复杂的,也是我们想去逼近的;而 是我们自己定的,用来逼近或者约束 的一个分布, 是简单的,可主观决定的。
1.3 说明
变分自编码器所谓变分,指的是该模型存在泛函 ,解决该泛函问题需要采用变分法,也就是寻找一个函数/参数 。
02
首先需要明确VAE模型的目的就是为了使得似然函数 最大。
2.1 使得似然函数 最大,为什么转化成使得 (变分下界)最大?
由贝叶斯定理:
![](https://filescdn.proginn.com/2eb1185ad80e9fb9c14d24f2c181661b/d59978bdd93d84513751493dc5108be2.webp)
公式1变形有:
![](https://filescdn.proginn.com/c7b196d205e8d3e61218939f71f93060/4a473555637db67296b80ac18eee0263.webp)
公式2左右对 取 有:
![](https://filescdn.proginn.com/a2ecf08bf83934fbd49b346c3a355e15/679ff29759dde78686c80da9112a30b9.webp)
变形有,其中 为任一分布
![](https://filescdn.proginn.com/7491f4157b947fd7f92570032cb8f88a/3f249a1b9c3c23f42561b876f2fd160e.webp)
公式3两端对 求期望:
![](https://filescdn.proginn.com/32b33267db9795f8db20f186e1e2a7f8/198135af5c95b871e28eada32fae6ba5.webp)
将公式4期望展开有:
![](https://filescdn.proginn.com/37ea29e20a46e8ed9b30acc70ab9df6f/bc5702ab7b3157b254cc747970d359f2.webp)
由kl散度定义, 有:
![](https://filescdn.proginn.com/07981e878a91b6ab7096a9d71b4aa950/6664dcb78a864fe012dee8352b8a94c3.webp)
令 ,并且由定义知道 有:
![](https://filescdn.proginn.com/d331f62cb7d783a67e8e2c91a4ab7682/db09d83e0f5202587b12e214394081e9.webp)
当且仅当 时, ,否则, ,将 视为一个以 为参数的泛函有:
![](https://filescdn.proginn.com/89b584c8d5f9e127ba6ebf56b34fddb4/752fbff004025bcbb394af86c2010dd4.webp)
改变 并不能影响 的大小,而且 大于 ,那么欲似然 更大,可从 下手,当 越大的情况下,似然 就会更大
所以可以来最大化 使得似然最大,使用神经网络的时候要注意,对 进行优化,优化目标使得 最小即可
2.2 对 再推导
![](https://filescdn.proginn.com/978cd9b127871f00180e75f167671994/913edf3898d433d5d37323816223f486.webp)
因为对于 , 与 独立,所以为了与encoder 接近,故将 ,修改为 ,有:
![](https://filescdn.proginn.com/be5ed87f582ca7622f41dcc22c3d35d7/0cec1dbfde46ee567f9b05d041c2285b.webp)
设重构的x服从于高斯分布( ),则有
![](https://filescdn.proginn.com/6f2bb0e11d9251c2fb10a5b0901c7d86/27070136cb848b89780cb2a16f5ad827.webp)
设 服从于多元高斯分布 ,另 (认为设定的)服从于 的分布,有(15)式:
![](https://filescdn.proginn.com/daee5f76b2005d60ac2c2b5bdf11b82b/aa01f3be4b7c85b468a85ba722b881f3.webp)
二阶矩为 ,所以有:
![](https://filescdn.proginn.com/4729a24b4e1984c7292dae95501487fe/3b818feee6f1fb966452ca9c1192a01b.webp)
根据重构项和KL散度项的约束,我们可以得出(19)式
![](https://filescdn.proginn.com/05bcaa73219d856547b2691c77f7840d/4d9412595637830e39d5ee797a82b469.webp)
!!!!注意, 我们想让他越大越好,但在神经网络优化中,我们对 先取负,转化成- 再优化,此时,- 越小越好
![](https://filescdn.proginn.com/294f9989b6a4a3798b1e2d30b6171a57/35e7f2f33f2ad82de3ba9b9ae86fca56.webp)
03
根据以往经验,容易犯错误的地方有,使用神经网络时候,一定要对ELBO先取负再优化!
很久之前发布的文件与代码
https://gitee.com/sulei_ustb/vae-model
猜您喜欢:
一顿午饭外卖,成为CV视觉的前沿弄潮儿!
超110篇!CVPR 2021最全GAN论文汇总梳理!
超100篇!CVPR 2020最全GAN论文梳理汇总!
拆解组新的GAN:解耦表征MixNMatch
StarGAN第2版:多域多样性图像生成
附下载 | 《可解释的机器学习》中文版
附下载 |《TensorFlow 2.0 深度学习算法实战》
附下载 |《计算机视觉中的数学方法》分享
《基于深度学习的表面缺陷检测方法综述》
《零样本图像分类综述: 十年进展》
《基于深度神经网络的少样本学习综述》