1.Auto-encoder网络结构

Auto-encoder属于无监督学习,Encoder或Decoder都无法单独拿出来训练,只能组成一个整体的网络一起训练。
可以将Auto-encoder理解为GAN,encoder就是Generator,Discriminator通过将Code转成原本的输入,并衡量Code转换的结果和原本输入的相似性,来评判Encoder的好坏。

1.1Auto-encoder网络

  • 中间隐藏层输出的code的维度通常小于输入向量的维度,起到了压缩(compact)的作用,所以中间的隐藏层也叫做瓶颈层(Bottleneck layer);
  • 中间隐藏层输出的code也叫Embedding、latent code或latent representation;
  • Encoder、Decoder都是(一层或多层)神经网络,Decoder相当于是Reconstruction。

image.png

1.2Deep Auto-encoder网络

  • Encoder和Decoder两部分的参数没有必要严格对称;
  • Deep Auto-encoder将Code还原的效果要好于Auto-encoder。

image.png
image.png

2.Auto-encoder的扩展

2.1去噪的Auto-encoder

对于输入,先增加噪音,再通过目标函数的优化,让Decoder去噪(De-noising),增强了模型的抗噪声干扰能力(鲁棒性)。
image.png

2.2卷积神经网络中的Auto-encoder

image.png
在卷积神经网络中应用Auto-encoder,可以联想到卷积核的被激活程度(activation degree)以及Deep dream。

Unpooling上池化/上采样

unpooling有两种方式(假设池化采用的是最大值池化):

  • 记录原来最大值的位置(Max location),根据位置进行还原,其他位置填充0;
  • 不记录原来池化取值的位置,而是直接重复填充的Pooled Map的数值。

image.png

Deconvolution反卷积

反卷积本身就是卷积操作。
image.png

2.3VAE

目标函数是最小化Decoder输出的误差,对应图中,最小化 Auto-encoder - 图8
image.png

3.Auto-encoder的应用

3.1图像处理:以图搜图

通过Encoder将图片向量数据编码为Code,计算Code之间的距离(例如:欧式距离),可以比较图像之间的相似性。
image.png

3.2文字处理:文字检索

通过bag-of-word将文字编码为向量,bag-of-word编码虽然没有考虑语义信息,但内容相近的文本通过Auto-encoder之后得到的Code也是相近的,这个效果好于通过LSA所做的隐主题(latent topic)分析。
image.png

内容来源: 1.李宏毅《机器学习》2017