2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)

还是Auto-Encoder,已经很熟悉那个模型类吧
Auto-encoder是一个基本的生成模型,更重要的是它提供了一种encoder-decoder的框架思想,广泛的应用在了许多模型架构中。简单来说,Auto-encoder可以看作是如下的结构,它主要包含一个编码器(Encoder)和一个解码器(Decoder),通常它们使用的都是神经网络。Encoder接收一张图像(或是其他类型的数据,这里以图像为例)输出一个vector,它也可称为Embedding、Latent Representation或Latent code,不管它叫什么,我们只需要知道它是关于输入图像的表示;然后将vector输入到Decoder中就可以得到重建后的图像,希望它和输入图像越接近越好,即最小化重建误差(reconstruction error),误差项通常使用的平方误差。

那么今天主要讲两件事:
·More than minimizing reconstruction error
·More interpretable embedding

1.好的embedding是怎样的

之前要做embedding的根本原因是:An embedding should represent the object.虽然我们希望Decoder输出的重建图像和输入到Encoder中的图像越接近越好,但是通常我们并不关注重建后的图像是什么样的,更多的希望得到一个关于输入图像有意义、解释性强的embedding。

如何评价一个embedding是否是好的呢?最直观的想法是它应该包含了关于输入的关键信息,从中我们就可以大致知道输入是什么样的。或是从流形学习的角度来看,希望它可以学到关于高维输入数据的低维嵌入。比如当我们看到蓝色耳机时,我们想到的是三九,而不应是一花,那么蓝色耳机对于三九就是一个好的embedding,对于一花来说就不是一个好的embedding。

2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)

2.Beyond Reconstruction:Discriminator

除了使用重建误差来驱动模型训练外,可以使用其他的方式来衡量Encoder是否学到了关于输入的重要表征吗?答案自然是YES!假设我们现在有两类动漫人物的图像,一类是三九,一类是凉宫春日。如果将三九的图像丢给Encoder后,它就会给出一个蓝色的Embedding;如果Encoder接收的是凉宫春日的图像,它就会给出一个黄色的Embedding。那么除了Encoder之外,还有一个Discriminator(这里可以就看作一个二分类的Classifier),它接收图像和Embedding,然后给出一个结果表示它们是否是两两对应的。
2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)

2.1 Φ来表述Discriminator参数
借助GAN的思想,我们用Φ来表述Discriminator,希望通过训练最小化D的损失函数,oss of the classification task is 输出与标签的交叉熵LD,那么训练模型参数来最小化LD
2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)
2.2 L∗D 来评估向量表示的好和不好
,得到最小的损失值L∗D 。如果LD的值比较小,就认为Encoder得到的Embedding很有代表性;相反如何LD
的值很大时,就认为得到的Embedding不具有代表性。

2.3 调整encoder的参数θ
既然我们知道如何来评估向量表示的好和不好,我们就是要调整encoder的参数θ\thetaθ,然后用评估方法(根据L∗D 来评估)来让生成向量最优。
2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)
带入L*D得到:
2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)
也就是说我们要训练encoder的参数θ和discriminator的参数ϕ,使得LD 最小化
这个东西实际可以类比到最原始的auto-encoder模型要同时训练encoder和decoder使得reconstruction error最小。也就是说auto-encoder模型:2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)
实际上就是下面encoder+discriminator模型的special case
2020李宏毅学习笔记——47.More about Auto-Encoder(1_4)
这一节把之前的auto-encoder进行了扩展,变成了encoder+discriminator模型。