变分自编码器(Variational Autoencoder, VAE),傻瓜式理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37789876/article/details/82759031

变分自编码器(Variational Autoencoder, VAE)

VAE是一个改了中间层的自编码机。
基本思想来源:中间特征的泛化表示。
与一般的区别:一般的自编码机就是一个多层网络,中间的特征是一个固定的向量值。而VAE中间的特征是一种分布。
中间特征的抽象思考:1、如果输入是一个人脸图像,那么中间特征也许表示眼睛大小、肤色、头发种类等等等;2、类似于label smoothing一样,一个不确定的分布会更加符合人们事实的判断,就像去猜一个人的年龄一样,严谨的人会说他在20-25岁之间,而20-25岁的概率是基本符合正态分布的。


进阶思考
1、如果中间层的特征是一个分布,那么服从什么分布——正态分布
2、怎么才能让中间层表示一个正态分布呢?
正态分布无外乎是均值和权重就能控制的,那么我的中间层的激活值就是均值+权重
3、既然是自编码器那么整个网络的输入和输出要尽量相似。
4、神经网络的学习能力极好,既然我希望中间层是很多个正态分布的组合向量,那么我不如规定这些正态分布都满足0,1正态分布。
根据这些思考我们来定义损失函数:
损失函数是为了两个目的:①所谓自编码,就是要还原自己的样子,所以输入和输出的比较是不可少的
②既然希望中间层满足0,1正态分布,那么我们就把输出的分布和0,1正态分布来做比较,那么分布与分布之间的比较使用到了KL散度,也是就是相对熵。
所以损失函数最后就出来了。通过反向传播,来达到目的。最后我们通过中间层的随机在正态分布上取值的手段就能生成类似的图像。
参考文档:http://www.dengfanxin.cn/?p=334

猜你喜欢

转载自blog.csdn.net/m0_37789876/article/details/82759031