文章目录
- 参考文献
- 1. 什么是潜在编码?
- 2.什么是潜在空间?
- 3.同类潜在编码的相似性
- 4.潜在编码的应用
- 4.1 Antoencoders
- 4.2 Generative models
- 5.结论
个人学习总结,持续更新中……
参考文献
[1] 快速理解深度学习中的latent code潜在编码
1. 什么是潜在编码?
潜在编码就是一种降维或者说是压缩,旨在用更少的信息去表达数据的本质[1]。
上图是一个简单的encoder-decoder架构,最细的地方称为瓶颈。压缩一般都是有损的,但如果损失的是噪声或者是无用信息,而保留下来的是最本质的特征,那么这正是我们想要实现的目标。通过encoder压缩之后,更重要的是恢复,即Decoder,如果Decoder成功,那么我们就可以认为这个latent space representation提取input image中最关键的信息(本质特征)。
2.什么是潜在空间?
潜在空间和潜在编码是一个意思,编码 >>> 空间 是符合直觉的,例如3x1的编码就可以画成三维空间的一个点。
3.同类潜在编码的相似性
首先定义什么是同类,椅子和椅子是同类,狗和狗是同类。如图所示,如果使用完整的3D表征去表示A椅子和B椅子,那么他们之间是不会接近的,一眼就可以看出来一个黄色一个黑色,朝向也不同。但,如果把一些"个性化的特征"去掉,仅保留一类的特征,那么它们在潜在空间中的点是非常非常接近的,例如把颜色去掉。在空间中想象,A椅子和B椅子此时会很接近,我们就认为很相似。
4.潜在编码的应用
那么,我们如果完美的得到一个东西的潜在表征,即latent code(也可以叫latent space or latent space representation),我们可以利用它做什么?
4.1 Antoencoders
自编码器,顾名思义,自己给自己编码,可以发现本网络输出和输入都是一个东西,latent coder 通过Decoder恢复成了自己。具体的实施就更简单了,只需要把输出与输入做相似度损失,然后反向传播,慢慢地就像了。
4.2 Generative models
同类在空间中是相近的,例如两把椅子的向量为[0.1,0.1]和[0.12,0.12],把这两个喂入网络中,生成的当然是椅子,那如果输入[0.11,0.11]呢?当然也是椅子,这就是插值。下图展示了插值的效果,可以看到同类周围插值就相似但有微小区别的。最简单的应用就是把它当成一种数据增强去扩大数据集。
下图为两把椅子之间进行线性插值的效果图。
5.结论
潜在空间可以用少量的数据表示某一个(类)信息,在3D表示等领域中也有更为具体的应用。