自编码器

来自testwiki
跳转到导航 跳转到搜索

Template:Expand language Template:机器学习导航栏

一个具有3个全连接隐藏层的自动编码器网络结构。

自编码器Template:Lang-en)也称自动编码器,是一种人工神经网络,用于学习无标签数据有效编码;属一种无监督学习

自编码(autoencoding)的目的是:学习对高维度数据做低维度“表示”(“表征”或“编码”);因此, 通常用于降维。最近,自编码的概念广泛地用于数据的生成模型[1][2] 自2010年以来,一些先进的人工智能在深度学习网络中采用了采用堆叠式稀疏自编码。[3]

基本结构

自编码器有两个主要部分组成:编码器用于将输入编码,而解码器使用编码重构输入。

实现这个功能最简单的方式就是重复原始信号。然而,自编码器通常被迫近似地重构输入信号,重构结果仅仅包括原信号中最相关的部分。

自编码器的思想已经流行了几十年,其首次应用可以追溯到20世纪80年代。[4][5][6]自编码器最传统的应用是降维特征学习,现在这个概念已经推广到用于学习数据的生成模型。.[1][2]21世纪10年代的一些最强大的人工智能在深度神经网络中采用了自编码器。[3]

最简单的自编码器形式是一个前馈的、非循环的神经网络,用一层或多层隐藏层链接输入和输出。输出层节点数和输入层一致。其目的是重构输入(最小化输入和输出之间的差异),而不是在给定输入的情况下预测目标值,所以自编码器属于无监督学习。

最简单的自编码器形式是一个前馈的、非循环的神经网络,类似于多层感知器(MLP)中的单层感知器,用一层或多层隐藏层链接输入和输出。输出层具有与输入层相同数量的节点(神经元)。输出层节点数和输入层一致。其目的是重构输入(最小化输入和输出之间的差异),而不是在给定输入X的情况下预测目标值Y, 所以自编码器属于无监督学习。

自编码器由编码器和解码器组成,二者可以被分别定义为变换 ϕψ ,使得:

ϕ:𝒳
ψ:𝒳
ϕ,ψ=argminϕ,ψ𝒳(ψϕ)𝒳2

在最简单的情况下,给定一个隐藏层,自编码器的编码阶段接受输入𝐱d=𝒳并将其映射到𝐡p=

𝐡=σ(𝐖𝐱+𝐛)

𝐡通常表示编码、潜变量或潜在表示。σ是一个逐元素的激活函数(例如sigmoid函数线性整流函数)。𝐖是权重矩阵,𝐛是偏置向量。权重和偏置通常随机初始化,并在训练期间通过反向传播迭代更新。自编码器的解码阶段映射𝐡到重构𝐱(与𝐱形状一致):

𝐱=σ(𝐖𝐡+𝐛)

其中解码器部分的σ,𝐖,𝐛 可能与编码器部分的σ,𝐖,𝐛无关。

自编码器被训练来最小化重建误差(如平方误差),通常被称为 "损失":

(𝐱,𝐱)=𝐱𝐱2=𝐱σ(𝐖(σ(𝐖𝐱+𝐛))+𝐛)2

其中𝐱通常在训练集上平均。

如前所述,和其它前馈神经网络一样,自编码器的训练是通过误差的反向传播进行的。

当特征空间的维度比输入空间𝒳低时,特征向量ϕ(x)可以看作时输入x的压缩表示,这就是不完备自动编码(undercomplete autoencoders)的情况。如果隐藏层大于(过完备)或等于输入层的数量,或者隐藏单元的容量足够大,自编码器就可能学会恒等函数而变得无用。然而,实验结果表明过完备自编码器(overcomplete autoencoders)仍然可能学习到有用的特征。[7]在理想情况下,编码的维度和模型容量可以根据待建模数据分布的复杂性来设定,采用这种方式的一种途径是正则化自编码器。[4]

另見

參考

Template:Reflist

Template:Differentiable computing

  1. 1.0 1.1 Auto-Encoding Variational Bayes, Kingma, D.P. and Welling, M., ArXiv e-prints, 2013 Template:Url
  2. 2.0 2.1 Generating Faces with Torch, Boesen A., Larsen L. and Sonderby S.K., 2015 Template:Url
  3. 3.0 3.1 Template:Cite book
  4. 4.0 4.1 Template:Cite book
  5. Template:Cite journal
  6. Hinton, G. E., & Zemel, R. S. (1994). Autoencoders, minimum description length and Helmholtz free energy. In Advances in neural information processing systems 6 (pp. 3-10).
  7. Template:Cite journal