变分边界详解

起因

当时看VAE论文时有这么一段,但是看完直接一头雾水,这都那跟哪,第一个公式咋做的变换就变出那么一堆。网上搜了很多博客都语焉不详,只好自己来写一篇,希望能解答后来人的疑惑。

公式1

参考文章:证据下界(ELBO)、EM算法、变分推断、变分自编码器(VAE)和混合高斯模型(GMM)

解释一下,我们之前都是用MLE计算损失, l o g p ( x ∣ θ ) logp(x|\theta) logp(x∣θ)和 l o g p θ ( x ) logp_{\theta}(x) logpθ(x)是一样的,数分和统计学写法习惯不同。第一种理解同上,可以结合VAE模型理解他的解释,这个解释比较抽象。

第二种理解是以信息论的角度,信息熵= E [ − l o g p θ ( x ) ] E[-logp_{\theta}(x)] E[−logpθ(x)]。信息熵越小,说明系统越稳定,不确定程度越低。
L [ θ ] = a r g m i n θ E [ − l o g p θ ( x ) ] = a r g m a x θ E [ l o g p θ ( x ) ] L[\theta]=argmin_\theta E[-logp_{\theta}(x)]=argmax_\theta E[logp_{\theta}(x)] L[θ]=argminθE[−logpθ(x)]=argmaxθE[logpθ(x)]

推导公式1:(引入一个隐变量z,z可以想象成VAE编码器计算出来的均值和方差的随机变量,对应分布q(z))
l o g p θ ( x ) = l o g p θ ( x , z ) − l o g p θ ( z ∣ x ) = l o g p θ ( x , z ) q ( z ) − l o g p θ ( z ∣ x ) q ( z ) logp_\theta(x) = logp_\theta(x,z) - logp_\theta(z|x)= log\frac{p_\theta(x,z)}{q(z)} - log\frac{p_\theta(z|x)}{q(z)} logpθ(x)=logpθ(x,z)−logpθ(z∣x)=logq(z)pθ(x,z)−logq(z)pθ(z∣x)

方程两边同时求期望:
具体推到过程看大佬的,白板机器学习

公式2

证明如下:

DK >= 0,所以可证公式2。

DK >= 0证明结果如下,写的不清楚请参考其他博客,证明很多,实在懒得敲了见谅。

公式3

计算结果如下,写的不清楚请参考其他博客,证明很多,实在懒得敲了见谅。

相关推荐
im_AMBER23 分钟前
算法笔记 05
笔记·算法·哈希算法
夏鹏今天学习了吗29 分钟前
【LeetCode热题100(46/100)】从前序与中序遍历序列构造二叉树
算法·leetcode·职场和发展
吃着火锅x唱着歌30 分钟前
LeetCode 2389.和有限的最长子序列
算法·leetcode·职场和发展
嶔某42 分钟前
二叉树的前中后序遍历(迭代)
算法
WWZZ20251 小时前
快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)
人工智能·算法·机器学习·计算机视觉·机器人·大模型·slam
孤狼灬笑1 小时前
深度学习经典分类(算法分析与案例)
rnn·深度学习·算法·cnn·生成模型·fnn
dragoooon341 小时前
[优选算法专题四.前缀和——NO.26二维前缀和]
算法
苏小瀚2 小时前
算法---位运算
java·算法
Code小翊2 小时前
归并排序基础理解
数据结构·算法·排序算法
2401_841495643 小时前
【数据结构】基于Floyd算法的最短路径求解
java·数据结构·c++·python·算法··floyd