变分边界详解

起因

当时看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 Elogp_{\\theta}(x) Lθ=argminθE−logpθ(x)=argmaxθElogpθ(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

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

相关推荐
GuWenyue3 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋4 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx5 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂8 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一8 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH9 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱9 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
香辣牛肉饭10 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
旖-旎10 小时前
LeetCode 279:完全平方数(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题