变分自编码器(二):从贝叶斯观点出发
源起前几天写了博文《变分自编码器(一):原来是这么一回事》,从一种比较通俗的观点来理解变分自编码器(VAE),在那篇文章的视角中,VAE跟普通的自编码器差别不大,无非是多加了噪声并对噪声做了约束。然而,当初我想要弄懂VAE的初衷,是想看看究竟贝叶斯学派的概率图模型究竟是如何与深度学习结合来发挥作用的,如果仅仅是得到一个通俗的理解,那显然是不够的。所以我对VAE继续思考了几天,试图用更一般的、概率化的语言来把VAE说清楚。事实上,这种思考也能回答通俗理解中无法解答的问题,比如重构损失用MSE好还是交叉熵好、重构损失和KL损失应该怎么平衡,等等。建议在阅读《变分自编码器(一):原来是这么一回事》后对本文进行阅读,本文在内容上尽量不与前文重复。准备在进入对VAE的描述之前,我觉得有必要把一些概念性的内容讲一下。数值计算vs采样计算对于不是很熟悉概率统计的读者,容易混淆的两个概念应该是数值计算和采样计算,也有读者在《三味Capsule:矩阵Capsule与EM路由》出现过同样的疑惑。比如已知概率密度函数p(x)p(x)p(x),那么xxx的期望也就定义为E[x]=∫xp(x) dx(1) \mathbb{E}[x] = \int xp(x)\,dx \tag{1}E[x]=∫xp(x)dx(1)如果要对它进行数值计算(数值积分),那么可以选若干个有代表性的点x0x1x2⋯xnx_0 x_1 x_2 \cdots x_nx0​x1​x2​⋯xn​,然后得到E[x]≈∑i=1nxip(xi)(xi−xi−1)(2) \mathbb{E}[x] \approx \sum_{i=1}^{n} x_i p(x_i)(x_i-x_{i-1}) \tag{2}E[x]≈i=1∑n​xi​p(xi​)(xi​−xi−1​)(2)这里不讨论“有代表性”是什么意思,也不讨论提高数值计算精度的方法。这样写出来,是为了跟采样计算对比。如果从p(x)p(x)p(x)中采样若干个点x1,x2,…,xnx_1,x_2,\ldots,x_nx1​,x2​,…,xn​,那么我们有E[x]≈1n∑i=1nxi,xi∼p(x)(3) \mathbb{E}[x] \approx \frac{1}{n}\sum_{i=1}^{n}x_i,\qquad x_i\sim p(x) \tag{3}E[x]≈n1​i=1∑n​xi​,xi​∼p(x)(3)我们可以比较(2)跟(3),它们的主要区别是(2)中包含了概率的计算而(3)中仅有xxx的计算,这是因为在(3)中xix_ixi​是从p(x)p(x)p(x)中依概率采样出来的,概率大的xix_ixi​出现的次数也多,所以可以说采样的结果已经包含了p(x)p(x)p(x)在里边,就不用再乘以p(xi)p(x_i)p(xi​)了。更一般地,我们可以写出Ex∼p(x)[f(x)]=∫f(x)p(x) dx≈1n∑i=1nf(xi),xi∼p(x)(4) \mathbb{E}_{x\sim p(x)}[f(x)] = \int f(x)p(x)\,dx \approx \frac{1}{n}\sum_{i=1}^{n}f(x_i),\qquad x_i\sim p(x) \tag{4}Ex∼p(x)​[f(x)]=∫f(x)p(x)dx≈n1​i=1∑n​f(xi​),xi​∼p(x)(4)这就是蒙特卡洛模拟的基础。KL散度及变分我们通常用KL散度来度量两个概率分布p(x)p(x)p(x)和q(x)q(x)q(x)之间的差异,定义为KL(p(x)∥q(x))=∫p(x)ln⁡p(x)q(x) dx=Ex∼p(x)[ln⁡p(x)q(x)](5) KL\bigl(p(x)\Vert q(x)\bigr) = \int p(x)\ln\frac{p(x)}{q(x)}\,dx = \mathbb{E}_{x\sim p(x)}\left[\ln\frac{p(x)}{q(x)}\right] \tag{5}KL(p(x)∥q(x))=∫p(x)lnq(x)p(x)​dx=Ex∼p(x)​[lnq(x)p(x)​](5)KL散度的主要性质是非负性,如果固定p(x)p(x)p(x),那么KL(p(x)∥q(x))=0⇔p(x)=q(x) KL\bigl(p(x)\Vert q(x)\bigr)=0 \Leftrightarrow p(x)=q(x)KL(p(x)∥q(x))=0⇔p(x)=q(x);如果固定q(x)q(x)q(x),同样有KL(p(x)∥q(x))=0⇔p(x)=q(x) KL\bigl(p(x)\Vert q(x)\bigr)=0 \Leftrightarrow p(x)=q(x)KL(p(x)∥q(x))=0⇔p(x)=q(x),也就是不管固定哪一个,最小化KL散度的结果都是两者尽可能相等。这一点的严格证明要用到变分法,而事实上VAE中的V(变分)就是因为VAE的推导就是因为用到了KL散度(进而也包含了变分法)。当然,KL散度有一个比较明显的问题,就是当q(x)q(x)q(x)在某个区域等于0,而p(x)p(x)p(x)在该区域不等于0,那么KL散度就出现无穷大。这是KL散度的固有问题,我们只能想办法规避它,比如隐变量的先验分布我们用高斯分布而不是均匀分布,原因便在此,这一点我们在前文《变分自编码器(一):原来是这么一回事》中也提到过了。顺便说点题外话,度量两个概率分布之间的差异只有KL散度吗?当然不是,我们可以看维基百科的 Statistical Distance 一节,里边介绍了不少分布距离,比如有一个很漂亮的度量,我们称之为巴氏距离(Bhattacharyya distance),定义为DB(p(x),q(x))=−ln⁡∫p(x)q(x) dx(6) D_B\bigl(p(x),q(x)\bigr) = -\ln\int\sqrt{p(x)q(x)}\,dx \tag{6}DB​(p(x),q(x))=−ln∫p(x)q(x)​dx(6)这个距离不仅对称,还没有KL散度的无穷大问题。然而我们还是选用KL散度,因为我们不仅要理论上的漂亮,还要实践上的可行,KL散度可以写成期望的形式,这允许我们对其进行采样计算,相反,巴氏距离就没那么容易了,读者要是想把下面计算过程中的KL散度替换成巴氏距离,就会发现寸步难行了。本文的符号表讲解VAE免不了出现大量的公式和符号,这里将部分式子的含义提前列举如下:符号含义xk,zkx_k,z_kxk​,zk​表示随机变量x,zx,zx,z的第kkk个样本x(k),z(k)x_{(k)},z_{(k)}x(k)​,z(k)​表示多元变量x,zx,zx,z的第kkk个分量Ex∼p(x)[f(x)]\mathbb{E}_{x\sim p(x)}[f(x)]Ex∼p(x)​[f(x)]表示对f(x)f(x)f(x)算期望,其中xxx的分布为p(x)p(x)p(x)KL(p(x)∥q(x))KL\bigl(p(x)\Vert q(x)\bigr)KL(p(x)∥q(x))两个分布的KL散度∥x∥2\lVert x\rVert^2∥x∥2向量xxx的l2l^2l2范数,也就是我们通常说的模长的平方L\mathcal{L}L本文的损失函数的符号D,dD,dD,dDDD是输入xxx的维度,dd

相关新闻

免费解锁高级功能的开源游戏增强工具:Wand-Enhancer 三步上手全攻略

免费解锁高级功能的开源游戏增强工具:Wand-Enhancer 三步上手全攻略

免费解锁高级功能的开源游戏增强工具:Wand-Enhancer 三步上手全攻略 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 周五晚上十点&…

2026/8/20 3:39:39 阅读更多 →
游戏修改器解锁完整指南:Wand-Enhancer 本地增强 WeMod 的免费方案

游戏修改器解锁完整指南:Wand-Enhancer 本地增强 WeMod 的免费方案

游戏修改器解锁完整指南:Wand-Enhancer 本地增强 WeMod 的免费方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 周末开好游戏&#…

2026/8/20 3:39:39 阅读更多 →
VAE:变分自编码器

VAE:变分自编码器

过去虽然没有细看,但印象里一直觉得变分自编码器(Variational Auto-Encoder,VAE)是个好东西。于是趁着最近看概率图模型的三分钟热度,我决定也争取把VAE搞懂。于是乎照样翻了网上很多资料,无一例外发现都很含糊,主要的感觉是公式写了一大通,还是迷迷糊糊的,最后好不容…

2026/8/20 3:39:39 阅读更多 →

最新新闻

拯救者笔记本硬件管理终极指南:Lenovo Legion Toolkit 快速上手与进阶调校

拯救者笔记本硬件管理终极指南:Lenovo Legion Toolkit 快速上手与进阶调校

拯救者笔记本硬件管理终极指南:Lenovo Legion Toolkit 快速上手与进阶调校 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToo…

2026/8/21 4:03:30 阅读更多 →
Copilot Notebooks 深度解析:AI 驱动的 Markdown 文档分析与知识整理实践

Copilot Notebooks 深度解析:AI 驱动的 Markdown 文档分析与知识整理实践

1. 先搞清楚 Copilot Notebooks 是什么,以及这次更新解决了什么实际问题如果你经常用 VS Code 写代码、做数据分析或者整理技术文档,那你可能已经用过 GitHub Copilot 的代码补全功能。但这次微软推出的Copilot Notebooks扩展,瞄准的是另一个…

2026/8/21 4:03:30 阅读更多 →
静态分析实战:定位MCP工具重复执行Bug与幂等性设计

静态分析实战:定位MCP工具重复执行Bug与幂等性设计

在实际软件开发中,静态分析工具是发现潜在缺陷、提升代码质量的重要手段,尤其对于分布式、异步或事件驱动架构中的并发与幂等问题。本文将以一个在 MCP(Model Context Protocol)工具中发现的“重复执行”Bug 为例,详细…

2026/8/21 4:03:30 阅读更多 →
Qt桌面应用集成DeepSeek AI:异步通信与上下文管理实战

Qt桌面应用集成DeepSeek AI:异步通信与上下文管理实战

1. 先搞清楚这个项目到底要解决什么问题看到“Qt硬核项目:DeepSeek AI Assistant 客户端知识问答”这个标题,很多人的第一反应可能是:这不就是用一个Qt界面去调用DeepSeek的API吗?如果这么想,你可能就错过了这个项目里…

2026/8/21 4:03:30 阅读更多 →
2026年AI程序员招聘趋势与核心技术解析

2026年AI程序员招聘趋势与核心技术解析

1. 2026年程序员招聘趋势全景分析2026年的技术招聘市场正在经历一场由AI驱动的结构性变革。根据最新行业调研数据显示,掌握AI核心技术的程序员薪资溢价已达到传统开发岗位的2-3倍,这种差距在自然语言处理、计算机视觉和推荐系统领域尤为显著。市场对AI工…

2026/8/21 4:03:30 阅读更多 →
Sketchfab下载器入门:一个Firefox用户脚本,让3D模型下载从25分钟缩到90秒

Sketchfab下载器入门:一个Firefox用户脚本,让3D模型下载从25分钟缩到90秒

Sketchfab下载器入门:一个Firefox用户脚本,让3D模型下载从25分钟缩到90秒 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 你在Sketchfab上翻…

2026/8/21 4:02:30 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →