变分自编码器(三):这样做为什么能成? 话说我觉得我自己最近写文章都喜欢长篇大论了,而且扎堆地来~之前连续写了三篇关于Capsule的介绍,这次轮到VAE了,本文是VAE的第二篇探索,说不准还会有第四篇~不管怎么样,数量不重要,重要的是能把问题都想清楚。尤其是对于VAE这种新奇的建模思维来说,更加值得细细地抠。这次我们要关心的一个问题是:VAE为什么能成?估计看VAE的读者都会经历这么几个阶段。第一个阶段是刚读了VAE的介绍,然后云里雾里的,感觉像自编码器又不像自编码器的,反复啃了几遍文字并看了源码之后才知道大概是怎么回事;第二个阶段就是在第一个阶段的基础上,再去细读VAE的原理,诸如隐变量模型、KL散度、变分推断等等,细细看下去,发现虽然折腾来折腾去,最终居然都能看明白了。这时候读者可能就进入第三个阶段了。在这个阶段中,我们会有诸多疑问,尤其是可行性的疑问:“为什么它这样反复折腾,最终出来模型是可行的?我也有很多想法呀,为什么我的想法就不行?”前文之要让我们再不厌其烦地回顾一下前面关于VAE的一些原理。VAE希望通过隐变量分解来描述数据XXX的分布p(x)=∫p(x∣z)p(z)dz,p(x,z)=p(x∣z)p(z)(1) p(x)=\int p(x|z)p(z)dz,\quad p(x,z)=p(x|z)p(z) \tag{1}p(x)=∫p(x∣z)p(z)dz,p(x,z)=p(x∣z)p(z)(1)然后对p(x∣z)p(x|z)p(x∣z)用模型q(x∣z)q(x|z)q(x∣z)拟合,p(z)p(z)p(z)用模型q(z)q(z)q(z)拟合,为了使得模型具有生成能力,q(z)q(z)q(z)定义为标准正态分布。理论上,我们可以使用边缘概率的最大似然来求解模型:q(x∣z)=argmaxq(x∣z)∫p~(x)ln⁡(∫q(x∣z)q(z)dz)dx=argmaxq(x∣z)Ex∼p~(x)[ln⁡(∫q(x∣z)q(z)dz)](2) \begin{aligned} q(x|z)=\mathop{\mathrm{argmax}}_{q(x|z)}\int \tilde p(x)\ln\left(\int q(x|z)q(z)dz\right)dx \\ =\mathop{\mathrm{argmax}}_{q(x|z)}\mathbb{E}_{x\sim\tilde p(x)}\left[\ln\left(\int q(x|z)q(z)dz\right)\right] \end{aligned} \tag{2}q(x∣z)​=argmaxq(x∣z)​∫p~​(x)ln(∫q(x∣z)q(z)dz)dx=argmaxq(x∣z)​Ex∼p~​(x)​[ln(∫q(x∣z)q(z)dz)]​(2)但是由于圆括号内的积分没法显式求出来,所以我们只好引入KL散度来观察联合分布的差距,最终目标函数变成了L=Ex∼p~(x)[−∫p(z∣x)ln⁡q(x∣z)dz+∫p(z∣x)ln⁡p(z∣x)q(z)dz]=Ex∼p~(x)[Ez∼p(z∣x)[−ln⁡q(x∣z)]+Ez∼p(z∣x)[ln⁡p(z∣x)q(z)]](3) \begin{aligned} \mathcal{L}=\mathbb{E}_{x\sim\tilde p(x)}\left[-\int p(z|x)\ln q(x|z)dz+\int p(z|x)\ln\frac{p(z|x)}{q(z)}dz\right] \\ =\mathbb{E}_{x\sim\tilde p(x)}\left[\mathbb{E}_{z\sim p(z|x)}[-\ln q(x|z)]+\mathbb{E}_{z\sim p(z|x)}\left[\ln\frac{p(z|x)}{q(z)}\right]\right] \end{aligned} \tag{3}L​=Ex∼p~​(x)​[−∫p(z∣x)lnq(x∣z)dz+∫p(z∣x)lnq(z)p(z∣x)​dz]=Ex∼p~​(x)​[Ez∼p(z∣x)​[−lnq(x∣z)]+Ez∼p(z∣x)​[lnq(z)p(z∣x)​]]​(3)通过最小化L\mathcal{L}L来分别找出p(z∣x)p(z|x)p(z∣x)和q(x∣z)q(x|z)q(x∣z)。前一文《变分自编码器(二):从贝叶斯观点出发》也表明L\mathcal{L}L有下界−Ex∼p~(x)[ln⁡p~(x)]-\mathbb{E}_{x\sim\tilde p(x)}[\ln\tilde p(x)]−Ex∼p~​(x)​[lnp~​(x)],所以比较L\mathcal{L}L与−Ex∼p~(x)[ln⁡p~(x)]-\mathbb{E}_{x\sim\tilde p(x)}[\ln\tilde p(x)]−Ex∼p~​(x)​[lnp~​(x)]的接近程度就可以比较生成器的相对质量。采样之惑在这部分内容中,我们试图对VAE的原理做细致的追问,以求能回答VAE为什么这样做,最关键的问题是,为什么这样做就可行。采样一个点就够对于(3)式,我们后面是这样处理的:1、留意到Ez∼p(z∣x)[ln⁡p(z∣x)q(z)]\mathbb{E}_{z\sim p(z|x)}\left[\ln\frac{p(z|x)}{q(z)}\right]Ez∼p(z∣x)​[lnq(z)p(z∣x)​]正好是p(z∣x)p(z|x)p(z∣x)和q(z)q(z)q(z)的散度KL(p(z∣x)∥q(z))KL\left(p(z|x)\|q(z)\right)K

相关新闻

最新新闻

智能体工程化落地:从概念到生产的关键挑战与实战路径

智能体工程化落地:从概念到生产的关键挑战与实战路径

最近半年,如果你关注AI领域的技术动态,可能会发现一个有趣的现象:关于“智能体”的讨论,正从学术论文和实验室Demo,快速涌向技术社区、招聘网站和创业公司的产品路线图。从“智能体框架”到“智能体平台”,…

2026/8/20 3:15:41
Zubie如何借力租赁车队实现车联网数据服务转型与场景化测试

Zubie如何借力租赁车队实现车联网数据服务转型与场景化测试

1. 从“卖盒子”到“租服务”:Zubie如何借力租赁车队打开市场如果你在车队管理或者车联网这个圈子里待过几年,大概率听说过Zubie这个名字。它不像那些动辄谈“智慧城市大脑”的巨头,而是个相当务实的玩家,核心业务就一件事&#x…

2026/8/20 3:15:41
仿生扑翼飞行器设计:从蜜蜂飞行原理到个人飞行平台实践

仿生扑翼飞行器设计:从蜜蜂飞行原理到个人飞行平台实践

1. 项目概述:从蜜蜂到个人飞行平台的灵感跃迁“AeroBat”这个名字,听起来就带着一股轻盈和仿生的味道。没错,这是一个受蜜蜂飞行机制启发的个人飞行平台项目。你可能觉得这听起来像是科幻电影里的玩意儿,但事实上,从微…

2026/8/20 3:15:41
仿生扑翼飞行器设计:从昆虫飞行原理到个人飞行平台实现

仿生扑翼飞行器设计:从昆虫飞行原理到个人飞行平台实现

1. 项目概述:从蜜蜂振翅到个人飞行平台的灵感跃迁 “AeroBat: Bee-Inspired Personal Flight Platform”,这个项目标题一出来,就让我这个在航空与仿生机器人领域摸爬滚打了十几年的老工程师眼前一亮。它精准地指向了一个极具想象力的交叉领域…

2026/8/20 3:15:41
大厂职级涨幅仅10%-20%?小白程序员如何避坑,收藏这篇看懂大模型时代跳槽攻略!

大厂职级涨幅仅10%-20%?小白程序员如何避坑,收藏这篇看懂大模型时代跳槽攻略!

文章指出,大厂招聘时薪资涨幅普遍降低,仅10%-20%,HR的承诺往往是虚假的。作者建议不要只看title而忽略实际薪资,强调工作与生活的平衡,并提醒职场人要拎清自己的需求,避免为了虚名牺牲健康。文章还提到&…

2026/8/20 3:15:41
Godot 4 UI开发实战:信号系统与状态管理让游戏界面动起来

Godot 4 UI开发实战:信号系统与状态管理让游戏界面动起来

1. 先搞清楚这节教程要解决什么实际问题如果你正在跟着一个叫《3D 地牢爬行者》的 Godot 4 系列教程做到第 15 部分,标题是“用户界面-3”,那你现在最可能遇到的困惑是:前面两节 UI 已经把按钮、标签、面板都摆好了,这一节到底还要…

2026/8/20 3:10:40