![7bf10d02d9bb6e39c848f18f551f88d8.png](https://img-blog.csdnimg.cn/img_convert/7bf10d02d9bb6e39c848f18f551f88d8.png)
前言
很早就读过VAE的原始论文,并且按照公式推导过,但是总觉得似懂非懂。后来想明白是因为只了解公式如何推导,却不知道背后的原理和直觉。理解VAE就像是在5楼建造一个房间,推导公式相当于建造房间的技术,但是你却不知道如何从地面爬到5楼,所以就算会建造房间你也不可能完成这个任务也就是完全理解VAE。这篇文章我打算搭建一个脚手架,从零开始推导VAE,帮助理解VAE背后的故事。
目标:生成模型
VAE是一个生成模型,我们的最终目标是如何构建一个生成模型。生成模型其实就是一个联合概率分布
我们通篇采用生成手写体数字图片作为例子,图像大小为
目前我们手上唯一的数据就是一堆手写体数字图像
第1层:极大似然估计
《概率论与数理统计》学过,根据样本去估计总体一般采用矩估计或者极大似然估计的方法,而极大似然估计又最为常用。所以我们就用最简单的极大似然估计去解决我们的问题。
遇到的第一个问题是:极大似然估计是参数估计方法,而我们求的是概率分布,如何应用呢?
答案就是统计建模,我们需要假设
极大似然估计假设训练数据采样服从独立同分布,因此联合概率分布可以分解为
极大似然估计准则是最大化似然函数,这等同于最小化负对数似然函数,取对数是为了将连乘符号变成连加符号,方便计算。
在优化的过程中需要求解关于参数
按照极大似然估计就可以求出参数
极大似然估计存在的问题:
- 该方法是有假设存在的,我们假设了
服从某种分布。分布的选择是需要领域知识或先验的,需要对生成过程很了解,否则如果选择的分布和真实分布不一致,那么结果可能很差,采样的图片可能不是手写体数字而是一堆噪音。
- 真实世界的问题通常是很复杂的,没有人能够完全了解它的生成过程,同时我们也没有能够描述如此复杂过程的概率分布形式,因此我们假设的分布基本都是错误的。
- 手写体例子中图像是
维的向量。如果假设
,那么高斯分布的参数
就是784维的向量,
就是784维的方阵。参数量这么大,需要的训练数据是非常巨大的,很难满足要求。
由于有这些问题,实际上极大似然估计是无法实际使用的。但是有问题才需要解决,才有进步的空间,下面我们就更进一步来想办法解决这些问题。
第2层:隐变量模型
要解决极大似然函数模型的问题,就要对它进行扩展。考虑手写体数字例子,一般我们在写数字的时候会首先想到要写哪个数字同时脑子里想象它的样子,然后才是写下来形成图像。这个过程可以总结成两个阶段:1) 决定数字及其他影响因素,用隐变量
通常假定