首先先贴上一些有用的链接:
https://www.cnblogs.com/king-lps/p/8477300.html
https://zhuanlan.zhihu.com/p/29685634
再补充一个链接:https://www.sohu.com/a/226209674_500659 (2019.1.26)
第一个链接是一个博主在看了李宏毅老师讲的视频之后的理解和总结,第二个是某知乎大佬对VAE的公式推导,两个我都看了,觉得写得很好。
自己的理解:前者是从解码器端开始推导,后者是从编码器段开始推导,但是最后都走向了一致,先看一张图:
在上图中,观测数据是x,隐变量是z,由z 到x,是生成模型p(x|z),也就是解码器;由x 到z,是识别模型q(z|x),也就是编码器。
对于解码器,我们需要最大化似然函数:
对于编码器,我们需要最小化KL散度:
不好意思,直接用了链接一种的图。
详细推导过程可以看以上两个链接。
这有个链接是用VAE实现手写数字识别压缩编码再重建的程序:https://jmetzen.github.io/2015-11-27/vae.html
主要结合李宏毅老师的讲解说明一下:
这两个图对照着看一下,上图是将28*28=784维空间编码压缩到2维空间的可视化,称之为latent space.
不同颜色代表了不同数字的分布情况,也就是说数字之间在编码空间是可以分开的,下图是解码重建,可以对应上图看一下,例如1的编码空间分布在左侧,解码出来也在左侧。(我看李宏毅老师是这么讲的,应该是这么理解的吧,以前看这张图不知道是什么意思)
最后,我就是搬运工,请大家去看我上面列出的链接,并给他们点赞吧。