第14章 自编码器
自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将输入复制到输出。自编码器内部有一个隐藏层h,可以产生编码(code)表示输入。该网络可以看作由两部分组成:一个由函数h=f(x)表示的编码器和一个生成重构的解码器r=g(h)。图14.1展示了这种架构。如果一个自编码器只是简单地学会将处处设置为g(f(x))=x,那么这个自编码器就没什么特别的用处。相反,我们不应该将自编码器设计成输入到输出完全相等。这通常需要向自编码器强加一些约束,使它只能近似地复制,并只能复制与训练数据相似的输入。这些约束强制模型考虑输入数据的哪些部分需要被优先复制,因此它往往能学习到数据的有用特性。
现代自编码器将编码器和解码器的概念推而广之,将其中的确定函数推广为随机映射pencoder(h|x)和pdecoder(x|h)。
数十年间,自编码器的想法一直是神经网络历史景象的一部分(LeCun,1987;Bourlard and Kamp,1988;Hinton and Zemel,1994)。传统自编码器被用于降维或特征学习。近年来,自编码器与潜变量模型理论的联系将自编码器带到了生成式建模的前沿,我们将在第20章揭示更多细节。自编码器可以被看作前馈网络的一个特例,并且可以使用完全相同的技术进行训练,通常使用小批量梯度下降法(其中梯度基于反向传播计算)。不同于一般的前馈网络,自编码器也可以使用再循环(recirculation)训练(Hinton and McClelland,1988)。这种学习算法基于比较原始输入的激活和重构输入的激活。相比反向传播算法,再循环算法更具生物学意义,但很少用于机器学习应用。
图14.1 自编码器的一般结构,通过内部表示或编码h将输入x映射到输出(称为重构)r。自编码器具有两个组件:编码器f(将x映射到h)和解码器g(将h映射到r)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论