查看“︁自编码器”︁的源代码
←
自编码器
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Expand language|en}} {{机器学习导航栏}} [[File:Autoencoder_structure.png|350x350px|一个具有3个全连接隐藏层的自动编码器网络结构。|thumb]] '''自编码器'''({{lang-en|autoencoder}})也称'''自动编码器''',是一种[[人工神经网络]],用于学习[[无标签数据]]的[[表征学习|有效编码]];属一种[[無監督式學習網路|无监督学习]]。 '''自编码'''(autoencoding)的目的是:学习对高维度数据做低维度“表示”(“表征”或“编码”);因此, 通常用于[[維度減化|降维]]。最近,自编码的概念广泛地用于数据的[[生成模型]]。<ref name="VAE">Auto-Encoding Variational Bayes, Kingma, D.P. and Welling, M., ArXiv e-prints, 2013 {{url|https://arxiv.org/abs/1312.6114}}</ref><ref name="gan_faces">Generating Faces with Torch, Boesen A., Larsen L. and Sonderby S.K., 2015 {{url|http://torch.ch/blog/2015/11/13/gan.html}}</ref> 自2010年以来,一些先进的人工智能在[[深度学习]]网络中采用了采用堆叠式稀疏自编码。<ref name="domingos">{{cite book|title=[[The Master Algorithm|The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World]]|first1=Pedro|publisher=Basic Books|year=2015|isbn=978-046506192-1|at="Deeper into the Brain" subsection|chapter=4|last1=Domingos|author-link=Pedro Domingos}}</ref> == 基本结构 == 自编码器有两个主要部分组成:编码器用于将输入编码,而解码器使用编码重构输入。 实现这个功能最简单的方式就是重复原始信号。然而,自编码器通常被迫近似地重构输入信号,重构结果仅仅包括原信号中最相关的部分。 自编码器的思想已经流行了几十年,其首次应用可以追溯到20世纪80年代。<ref name=":0">{{Cite book|chapter=Deep learning|url=https://www.worldcat.org/oclc/955778308|date=2016|location=Cambridge, Massachusetts|isbn=0-262-03561-8|oclc=955778308|first=Yoshua|last=Bengio|first2=Aaron|last2=Courville|title=Deep Learning|access-date=2022-06-06|archive-date=2021-02-17|archive-url=https://web.archive.org/web/20210217023904/https://www.worldcat.org/title/deep-learning/oclc/955778308}}</ref><ref>{{Cite journal |last=Schmidhuber |first=Jürgen |date=January 2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828 |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637 |s2cid=11715509}}</ref><ref>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).</ref>自编码器最传统的应用是[[降维]]或[[特征学习]],现在这个概念已经推广到用于学习数据的生成模型。.<ref name="VAE" /><ref name="gan_faces" />21世纪10年代的一些最强大的人工智能在深度神经网络中采用了自编码器。<ref name="domingos" /> 最简单的自编码器形式是一个前馈的、非循环的神经网络,用一层或多层隐藏层链接输入和输出。输出层节点数和输入层一致。其目的是重构输入(最小化输入和输出之间的差异),而不是在给定输入的情况下预测目标值,所以自编码器属于无监督学习。 最简单的自编码器形式是一个前馈的、非循环的神经网络,类似于[[多层感知器]](MLP)中的单层[[感知器]],用一层或多层隐藏层链接输入和输出。输出层具有与输入层相同数量的节点(神经元)。输出层节点数和输入层一致。其目的是重构输入(最小化输入和输出之间的差异),而不是在给定输入<math>X</math>的情况下预测目标值<math>Y</math>, 所以自编码器属于无监督学习。 自编码器由编码器和解码器组成,二者可以被分别定义为变换 <math>\phi</math> 和<math>\psi</math> ,使得: :<math>\phi:\mathcal{X} \rightarrow \mathcal{F}</math> :<math>\psi:\mathcal{F} \rightarrow \mathcal{X}</math> :<math>\phi,\psi = \underset{\phi,\psi}{\operatorname{arg\,min}}\, \|\mathcal{X}-(\psi \circ \phi) \mathcal{X}\|^2</math> 在最简单的情况下,给定一个隐藏层,自编码器的编码阶段接受输入<math>\mathbf{x} \in \mathbb{R}^d = \mathcal{X}</math>并将其映射到<math>\mathbf{h} \in \mathbb{R}^p = \mathcal{F}</math>: :<math>\mathbf{h} = \sigma(\mathbf{Wx}+\mathbf{b})</math> [[像 (數學)|像]]<math>\mathbf{h}</math>通常表示编码、潜变量或潜在表示。<math>\sigma</math>是一个逐元素的[[激活函数]](例如[[sigmoid函数]]或[[线性整流函数]])。<math>\mathbf{W}</math>是权重矩阵,<math>\mathbf{b}</math>是偏置向量。权重和偏置通常随机初始化,并在训练期间通过反向传播迭代更新。自编码器的解码阶段映射<math>\mathbf{h}</math>到重构<math>\mathbf{x'}</math>(与<math>\mathbf{x}</math>形状一致): :<math>\mathbf{x'} = \sigma'(\mathbf{W'h}+\mathbf{b'})</math> 其中解码器部分的<math>\mathbf{\sigma'}, \mathbf{W'},\mathbf {b'}</math> 可能与编码器部分的<math>\mathbf{\sigma}, \mathbf{W}, \mathbf {b}</math>无关。 自编码器被训练来最小化重建误差(如平方误差),通常被称为 "损失": :<math>\mathcal{L}(\mathbf{x},\mathbf{x'})=\|\mathbf{x}-\mathbf{x'}\|^2=\|\mathbf{x}-\sigma'(\mathbf{W'}(\sigma(\mathbf{Wx}+\mathbf{b}))+\mathbf{b'})\|^2</math> 其中<math>\mathbf{x}</math>通常在训练集上平均。 如前所述,和其它前馈神经网络一样,自编码器的训练是通过误差的反向传播进行的。 当特征空间<math>\mathcal{F}</math>的维度比输入空间<math>\mathcal{X}</math>低时,特征向量<math>\phi(x)</math>可以看作时输入<math>x</math>的压缩表示,这就是不完备自动编码(undercomplete autoencoders)的情况。如果隐藏层大于(过完备)或等于输入层的数量,或者隐藏单元的容量足够大,自编码器就可能学会恒等函数而变得无用。然而,实验结果表明过完备自编码器(overcomplete autoencoders)仍然可能学习到有用的特征。<ref name="bengio">{{Cite journal |last1=Bengio |first1=Y. |date=2009 |title=Learning Deep Architectures for AI |url=http://www.iro.umontreal.ca/~lisa/pointeurs/TR1312.pdf |journal=Foundations and Trends in Machine Learning |volume=2 |issue=8 |pages=1795–7 |citeseerx=10.1.1.701.9550 |doi=10.1561/2200000006 |pmid=23946944 |access-date=2022-06-06 |archive-date=2015-12-23 |archive-url=https://web.archive.org/web/20151223110943/http://www.iro.umontreal.ca/~lisa/pointeurs/TR1312.pdf }}</ref>在理想情况下,编码的维度和模型容量可以根据待建模数据分布的复杂性来设定,采用这种方式的一种途径是正则化自编码器。<ref name=":0" /> == 另見 == * [[表征学习]] == 參考 == {{Reflist|2}} {{Differentiable computing}} [[Category:神經網路架構]] [[Category:降维]]
该页面使用的模板:
Template:Cite book
(
查看源代码
)
Template:Cite journal
(
查看源代码
)
Template:Differentiable computing
(
查看源代码
)
Template:Expand language
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Url
(
查看源代码
)
Template:机器学习导航栏
(
查看源代码
)
返回
自编码器
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息