变分自编码器(上)

初识变分自编码器!

我们知道深度学习主要分为两块,判别模型和生成模型。前者主要是通过条件概率进行建模,即在已知样本x的类别特征y的分布的时,利用神经网络对x与y之间关系的进行建模,然后根据所学习到的关系,预测当前未具有类别特征的样本的类别特征。而生成模型,则是通过全概率进行建模,即x与y的联合分布,那么只要学习到了x和y的联合分布,那么通过贝叶斯概率,就能知道在当前x下,y的分布。变分自编码器就是一种生成式模型。

不同于自编码器,他通过将贝叶斯推断(VI)引入深度神经网络,来实现原始图像的近似生成。
主要建模和训练步骤:
Step1: 建立编码器。输入图像张量数据,通过若干个卷积层或者全连接层,输出均值( μ \mu μ)和方差层( σ \sigma σ),然后引入一个服从标准正态分布的eplison变量,以z= μ \mu μ + σ \sigma σ*eplison,构建隐变量z。

Step2: 建立解码器。获得隐变量z,并通过上采样将z解码为与原始输入图像具有相同尺寸的特征图。

Step3: 训练loss。
loss主要分为两部分:
第一部分是z的后验分布与z的先验分布的KL divergence,记为part1。在原文中,假设后验是高斯,先验是标准正态分布。所以训练的第一部分就是想要后验分布接近标准正态。(why?由VI可知,样本x的对数似然概率公式中的第一部分就是负的part1,所以最大化对数似然,即最小化part1,即无限接近标准正态)。
第二部分就是在z已知情况下的x的对数似然概率,这其实就是step2的解码阶段,所以需要将z上采样为与x的同等大小的图像,然后计算两者差别最小,也就是最大化了在z已知的情况下,x出现的最大概率。在原论文中,这个表示为重构误差。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值