【强基固本】VAE 模型推导与总结
“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。
地址:https://zhuanlan.zhihu.com/p/434394556
此总结首次完成于2021年4月25日,今日再次遇到vae模型推导问题,翻出一看,豁然开朗,故想分享于知乎社区,与大家共同分享,如有错误或不同见解请多多批评指正与交流。
摘要
VAE 模型 loss 的详细推导过程,变分自编码器的理解。
01
1.1 VAE模型基本网络结构
变分自编码器 (VAE) 由编码器和解码器两个部分组成。特征 x 输入编码器 生成编码特征 z,z 输入解码器 生成重构的 ; 通过生成角度来理解,该网络又可以分成推理网络和生成网络两部分。
1.2 与 的理解
是编码器/推理网络, 该分布是真实的、复杂的,也是我们想去逼近的;而 是我们自己定的,用来逼近或者约束 的一个分布, 是简单的,可主观决定的。
1.3 说明
变分自编码器所谓变分,指的是该模型存在泛函 ,解决该泛函问题需要采用变分法,也就是寻找一个函数/参数 。
02
首先需要明确VAE模型的目的就是为了使得似然函数 最大。
2.1 使得似然函数 最大,为什么转化成使得 (变分下界)最大?
由贝叶斯定理:
公式1变形有:
公式2左右对 取 有:
变形有,其中 为任一分布
公式3两端对 求期望:
将公式4期望展开有:
由kl散度定义, 有:
令 ,并且由定义知道 有:
当且仅当 时, ,否则, ,将 视为一个以 为参数的泛函有:
改变 并不能影响 的大小,而且 大于 ,那么欲似然 更大,可从 下手,当 越大的情况下,似然 就会更大
所以可以来最大化 使得似然最大,使用神经网络的时候要注意,对 进行优化,优化目标使得 最小即可
2.2 对 再推导
因为对于 , 与 独立,所以为了与encoder 接近,故将 ,修改为 ,有:
设重构的x服从于高斯分布( ),则有
设 服从于多元高斯分布 ,另 (认为设定的)服从于 的分布,有(15)式:
二阶矩为 ,所以有:
根据重构项和KL散度项的约束,我们可以得出(19)式
!!!!注意, 我们想让他越大越好,但在神经网络优化中,我们对 先取负,转化成- 再优化,此时,- 越小越好
03
根据以往经验,容易犯错误的地方有,使用神经网络时候,一定要对ELBO先取负再优化!
很久之前发布的文件与代码
https://gitee.com/sulei_ustb/vae-model
“强基固本”历史文章
走进基于深度学习的图像分割
3D点云的旋转不变卷积
t-SNE使用过程中的一些坑
关于旋转框定义的一些理解和感想
误区! Adam+L2并不能发挥效果!
100行用Python实现自动求导(不import任何包的情况下)
从三角函数变换到图神经网络
点云局部特征描述子 SHOT
直观理解万能近似定理(Universal Approximation theorem)
Kmeans 聚类算法
聚类性能评估-V-Measure
完全图解RNN、RNN变体、Seq2Seq、Attention机制
脉冲神经网络(Spiking Neural Network)介绍
流形学习概述
更多强基固本专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!