vae

202576日 星期日

09:16

详见paper,以下可以不看

 

 

自编码器基于一个简单但强大的概念,他们获取数据,将其压缩为低维表示,然后重建成原始形式。低维表示存在于一个形式更加紧凑,更易于解释的空间中,被称为latent space,潜在空间。

 

 

 

 

 

如果我们有一个训练好的自编码器,那么生成新数据的一个很自然的思路是从这个latent space中采样,然后通过解码器来生成图像,但是这种方法不会产生有用的结果,主要是因为潜在空间是无组织且不规则的,所以它的大部分区域不会产生有意义的解码图像。另一个方法是取一个图像在潜在空间的表示,然后在这个表示的附近进行采样,希望这样能得到与原始图像类似的图像,但是并没有,还是因为潜在空间的无组织性,即使在附近采样,也无法生成有意义的图像。也就是说,自编码器 没有捕捉到语义信息。

 

自编码器:基于给定图片x,直接学习z的表示 z=encoder(x)

变分自编码器:基于给定图片x,学习的是z的分布,后验分布P(z|x)

 

理想情况下,我们希望潜在空间是组织良好的,这样采样点就能生成连续的图像。

我们的目标是从某个分布p(x)中生成新的数据,问题在于我们不知道 p(x)的具体形式,我们只能获取到一些样本,即现有的图像训练数据集,

 

 

 

 

然后我们引入另一个分布p(z),潜在分布。z是潜在空间的点。由于这两个分布位于不同的空间,我们需要映射来连接它们,第一个映射是后验概率p(z|x),即给定某个图像x,它生成潜在向量z的概率;第二个映射是似然概率p(x|z),它告诉我们,给定潜在向量z,重建为图像x的概率。(后验和似然是一对的,都以一个事实x为参照,这里的x即一张原始空间的图片;后验是基于事实x已经发生的前提下,另一个事件的概率 ;而似然是基于z发生的前提下,事实x发生的概率,那么最大似然估计就是找到最优参数z,使得z发生的前提下,事实x发生的概率最大。)

如果我们从后验分布p(z|x)中采样潜在向量,就很可能获得有意义的潜在向量。但是我们也不知道p(z)的确切形式,于是我们假设p(z)是一个标准正态分布,这使得我们可以计算似然p(x|z),为什么??????

对于后验分布,我们用一个高斯分布来近似,q(z|x)≈p(z|x), q(z|x)=Ν(μ,σ)这个高斯分布的μ,σ是我们要学习的参数,这是一个优化过程,被称为变分贝叶斯。

 

 

 

 

我们训练一个编码器encoder来学习q(z|x)这个高斯分布的μ,σ,然后可以从这个高斯分布q(z|x)中采样,得到一个z

 

已使用 OneNote 创建。