自动编码器

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

来源:Wikipedia
简介

自动编码器神经网络是一种无监督机器学习算法、有三层的神经网络:输入层、隐藏层(编码层)和解码层。该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征。其应用了反向传播,可将目标值设置成与输入值相等。自动编码器属于无监督预训练网络(Unsupervised Pretained Networks)的一种。其结构如下图所示:

[图片来源:深度学习:自动编码器基础和类型|机器之心]

自动编码器的目标是学习函数 h(x)≈x。换句话说,它要学习一个近似的恒等函数,使得输出 x^ 近似等于输入 x。自动编码器属于神经网络家族,但它们也和 PCA(主成分分析)紧密相关,其一些关键特点为:

  • 它是一种类似于 PCA 的无监督机器学习算法
  • 它要最小化和 PCA 一样的目标函数
  • 它是一种神经网络
  • 这种神经网络的目标输出就是其输入

尽管自动编码器与 PCA 很相似,但自动编码器比 PCA 灵活得多。在编码过程中,自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换。因为自动编码器的网络表征形式,所以可将其作为层用于构建深度学习网络。

自动编码器主要有几类:

去噪自动编码器(Denoising autoencoder):这是最基本的一种自动编码器,它会随机地部分采用受损的输入来解决恒等函数风险,使得自动编码器必须进行恢复或去噪。这项技术可用于得到输入的良好表征。良好的表征是指可以从受损的输入稳健地获得的表征,该表征可被用于恢复其对应的无噪声输入。去噪自动编码器背后的思想很简单,为了迫使隐藏层发现更加稳健的特征并且为了防止其只是学习其中的恒等关系,我们在训练自动编码器时会让其从受损的版本中重建输入。应用在输入上的噪声量以百分比的形式呈现。一般来说,30% 0.3 就很好,但如果你的数据非常少,你可能就需要考虑增加更多噪声。

[描述来源:深度学习:自动编码器基础和类型|机器之心 URLhttps://www.jiqizhixin.com/articles/2017-09-23-4]

稀疏自动编码器(Sparse autoencoder):通过在训练期间对隐藏单元施加稀疏性(同时保持隐藏单元的数量比输入更多),自动编码器可以在输入数据中学习有用的结构。 这种对输入的稀疏表示在分类任务的预训练中很有用。一般可以通过训练期间在损失函数中添加附加项来实现稀疏性或通过手动将除了几个最重要的隐藏单元全部调零(k稀疏自动编码器,k-sparse autoencoder)。

变分自动编码器(Variational autoencoderVAE):变分自编码器模型继承了自编码器体系结构,但对潜变量的分布做出了强有力的假设。他们使用变分方法进行潜在表示学习,但这会导致额外的损失和并需要特定的训练算法——称为随机梯度变分贝叶斯(SGVB)。它假定数据是通过定向图形模型p(x|z)生成的,编码器正在学习后验分布$p_{\theta}(z|x)$的近似函数$p_{\phi}(z|x)$。在这种情况下,变分自动编码器的目标函数具有以下形式:

这里,D_{KL}代表KL散度(Kullback-Leiblerdivergence)。 潜变量的先验分布通常被设置为中心各向同性多变量高斯分布(centred isotropic multivariate Gaussian)。

收缩/压缩自动编码器(contractive autoencoderCAE):收缩自动编码器在它们的目标函数中增加了一个正则项,迫使模型学习一个对输入值的细微变化具有鲁棒性的函数。

[描述来源:维基百科 URLhttps://en.wikipedia.org/wiki/Autoencoder#Denoising_autoencoder]

发展历史

描述

一般认为RumelhartHinton等人在1986年通过使用输入数据作为引导来解决没有引导的反向传播问题而提出的模型是自动编码器最早的形式。1987Ballard在提出了无监督自编码器模型的研究中首先研究了基于无监督学习的预训练的潜在好处。但直到本世纪初,这种思想才被广泛认可。自2000年初以来,深度学习的第一个重要成果就是使用Deep Belief Networks 来预训深层网络。 这种方法始于观察到随机初始化是一个坏主意,而用无监督学习算法预训练每个层可以允许更好的初始权重的现象。 基于 AutoencodersDeep Autoencoders就属于这种方法。这种预训观念改善了深层神经网络,也许是因为预训练一次完成一层,这意味着它不会遭受和完全监督学习一样的困难。

2006年到2011年,这种方法作为一项科学工作获得了很大的推动力,因为大脑也可能无监督学习。同时,无监督学习也更具吸引力,因为它利用便宜的无标签数据。 Hinton等学者使用互补的先验,推导出一种快速,贪婪的算法,可以一次一层地学习深层的定向信仰网络。他们表示经过微调,具有三个隐藏层的网络能够形成非常好的手写数字图像及其标签的联合分布的生成模型。同年,HintonSalakhutdinov的研究显示,通过训练具有小中心层的多层神经网络来重建高维输入向量,可以将高维数据转换为低维代码。 他们同时描述了一种初始化权重的有效方法,来允许训练深度自动编码器网络学作为降低数据维度的工具。2010Dumitru ErhanYoshua Bengio等人对如何进行无监督预训练的问题进行了解答,他们提出了几个解释性的假设,并以自编码器等模型为例进行了模拟。

2012年以来,这一研究方向经历了一个相对平静的时期,当大量标记数据可用时,无监督学习的重要性显得有些下降。 但近年来,有关自动编码器的研究又逐渐受到众多学者的关注,2014Kyunghyun ChoBart van Merrienboer提出了一种新的神经网络模型,称为RNN编码器 - 解码器(RNN Encoder-Decoder),由两个递归神经网络(RNN)组成。通过使用由RNN编码器 - 解码器计算的短语对的条件概率作为现有对数线性模型中的附加特征,他们发现统计机器翻译系统的性能得以改进。

2015LiangBaldwin开发了一种概率评分自编码器(probabilistic rating auto-encoder),它可以执行无监督特征学习,并利用用户-条目评分数据生成用户画像以提升协同过滤方法。作者将深度学习应用到传统的协同过滤方法(如矩阵分解)中,从而在 Yelp.com 数据集上显著地提升了评分预测的性能。2017 DongYu等学者引入了一个深度学习框架利用推荐条目和用户端信息来支持系数用户-条目评分矩阵中的信息缺乏。为了帮助信息利用,附加的堆叠去噪自动编码器(aSDAE)被用于将信息转换为潜在维度并与矩阵分解后的潜在因子矩阵结合。当模型在 MovieLens 数据集和 Book-Crossing 数据集(书籍读者评分数据集)上测试时,该模型的表现超过了使用协同过滤的几种最先进算法。

目前最新的研究来自于谷歌,他们的研究人员认为变分自动编码器(VAE)虽然理论成熟,但应用于自然图像时会生成模糊的样本,而生成对抗网络(GAN)在模型采样的图像的视觉质量方面更加突出,但由于没有编码器更难训练,并且有「模式崩溃」(mode collapse)的问题,最终的模型无法捕获真实数据分布的所有变化。他们提出了Wasserstein 自编码器,其不仅具有 VAE 的一些优点,更结合了 GAN 结构的特性,可以实现更好的性能。

主要事件


A

B

C

1

年份

事件

相关论文/Reference

2

1986

RumelhartHinton等人通过使用输入数据作为引导来解决没有引导的反向传播问题而提出的模型是自动编码器最早的形式

Rumelhart, D.E.; Hinton, G. E. and Williams, R. J. (1989). Learning internal representations by error propagation. Parallel Distributed Processing. Vol 1: Foundations. MIT Press, Cambridge.

3

1987

Ballard提出的无监督自编码器模型应该是第一个研究基于基于无监督学习的预训练的潜在好处的学习

Ballard, D. H. (1987). Modular learning in neural networks. AAAI. pp. 279–284.

4

2006

Hinton等学者使用互补的先验,推导出一种快速,贪婪的算法,可以一次一层地学习深层的定向信仰网络

Hinton, G. E.; Osindero, S. and Teh, Y. W. (2006). A fast learning algorithm for deep belief nets. Neural Computation, 18(7):1527–1554.

5

2006

HintonSalakhutdinov的研究显示,通过训练具有小中心层的多层神经网络来重建高维输入向量,可以将高维数据转换为低维代码

Hinton G. E. and Salakhutdinov, R. R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786):504.

6

2010

Dumitru ErhanYoshua Bengio等人对如何进行无监督预训练的问题进行了解答

Erhan, D.; Bengio, Y.; Courville, A.; Manzagol, P. A.; Vincent, P. and Bengio, S. (2010). Why does unsupervised pre-training help deep learning? Journal of Machine Learning Research, 11:625–660.

7

2014

Kyunghyun ChoBart van Merrienboer提出了一种新的神经网络模型,称为RNN编码器 - 解码器(RNN Encoder-Decoder

Cho, K.; Merrienboer, B. V.; Gulcehre, C.; Bahdanau, D.; Bougares, F.; Schwenk, H. and Bengio, Y. (2014). Learning phrase representations using rnn encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.

8

2015

LiangBaldwin开发了一种概率评分自编码器(probabilistic rating auto-encoder

Liang, H. and Baldwin, T. (2015). A Probabilistic Rating Autoencoder for Personalized Recommender Systems. Proceedings of the 24th ACM International on Conference on Information and Knowledge Management - CIKM ’15, 2015, pp. 1863–1866.

9

2017

DongYu等学者引入了一个深度学习框架利用推荐条目和用户端信息来支持系数用户-条目评分矩阵中的信息缺乏

Dong, X.; Yu, L.; Wu, Z.; Sun, Y.; Yuan, L. and Zhang, F. (2017). A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems. Aaai, pp. 1309– 1315.

10

2018

Tolstikhin,Bousque等学者t提出了Wasserstein 自编码器

Tolstikhin, I.; Bousquet, O.; Gelly, S.; Schoelkopf, B. (2018).Wasserstein Auto-Encoders.arXiv:1711.01558

发展分析

瓶颈

自动编码器主要有以下不足:

  • 每一层都被贪婪地(greedily)训练
  • 没有全局优化
  • 比不上监督学习地性能
  • 多层失效
  • 对通用目标地表征而言,重建输入可能不是理想的指标

未来发展方向

不像监督学习模型,自动编码器对数据的要求要容易满足许多,这一特点特别在翻译、语音识别等领域有很大优势。参见2018年最新论文,可以看到将其他模型的优势与自动编码器结合起来可以实现更好的性能。

By Yuanyuan Li

相关人物
杜米特鲁·艾尔罕
杜米特鲁·艾尔罕
谷歌大脑研究员,目前研究重点是可扩展高质量检测、快速单次检测、图像字幕生成、视觉问答和图像理解的结构化输出。
简介
相关人物