上传者: 42186728
|
上传时间: 2022-10-04 15:45:06
|
文件大小: 7.96MB
|
文件类型: PPT
VAE总结
VAE的本质是什么?VAE虽然也称是AE(AutoEncoder)的一种,但它的做法(或者说它对网络的诠释)是别具一格的。在VAE中,它的Encoder有两个,一个用来计算均值,一个用来计算方差,让人意外:Encoder不是用来Encode的,是用来算均值和方差的;此外均值和方差都是统计量,这里是用神经网络来计算。
事实上,VAE本质上就是在我们常规的自编码器的基础上,对encoder的结果(在VAE中对应着计算均值的网络)加上了“高斯噪声”,使得结果decoder能够对噪声有鲁棒性;而那个额外的KL loss(目的是让均值为0,方差为1),事实上就是相当于对encoder的一个正则项,希望encoder出来的东西均有零均值。
另外一个encoder(对应着计算方差的网络)的作用用来动态调节噪声的强度的。直觉上来想,当decoder还没有训练好时(重构误差远大于KL loss),就会适当降低噪声(KL loss增加),使得拟合起来容易一些(重构误差开始下降);反之,如果decoder训练得还不错时(重构误差小于KL loss),这时候噪声就会增加(KL loss减少),使得拟合更加困难了(重构误差又开始增加),这时候decoder就要想办法提高它的生成能力了。两者是对抗的过程。重构损失希望p(Z|X)的方差越小越好(噪声越小,重构越容易),KL损失希望它的方差越接近1越好。