变分自编码器(上)
作者:互联网
初识变分自编码器!
我们知道深度学习主要分为两块,判别模型和生成模型。前者主要是通过条件概率进行建模,即在已知样本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出现的最大概率。在原论文中,这个表示为重构误差。
标签:似然,编码器,概率,后验,变分,建模,分布 来源: https://blog.csdn.net/weixin_43867869/article/details/116562498