赞
踩
目录
1986年Rumelhart提出自编码器的概念,顾名思义,即可以使用自身的高阶特征编码自己。自编码器(auto-encoder, AE)是一类在半监督学习和无监督学习中使用的人工神经网络(Artificial Neural Networks, ANNs),其功能是通过将输入信息作为学习目标,对输入信息进行表征学习。
其结构通常包括一个输入层、一个或多个隐藏层和一个输出层。自编码器的目标是学习将输入数据压缩到隐藏层中,并能够通过解码器将其从压缩表示中重建出输入数据。
自编码器基本上可以分为三个不同的组件:编码器、瓶颈和解码器。编码器将输入数据映射到隐藏层,通常通过一系列的非线性变换和特征提取来实现。解码器则将隐藏层的表示映射回到重构的输入数据,同时也通过非线性变换和特征提取来实现。自编码器通过将输入数据进行压缩和重建的过程来学习有效的数据表示,从而可以用于数据的降维、特征提取、数据压缩、数据去噪等应用。
自编码器是神经网络的一种,经过训练后能尝试将输入复制到输出,换句话说,就是使输入的内容和输出的内容一样。自动编码器内部有一个隐含层 h,可以产生编码来表示输入。该网络可以看成有两部分组成:一个编码器 h = f( x )和一个生成重构的解码器 r = g( x ), 使得 x 约等于 g(f( x ))。
自编码器 (Auto-encoder) 是一种旨在将它们的输入复制到输出的神经网络。这种网络主要有编码器和解码器两部分组成。
全连接层神经网络组成的最简单的自编码器只有三层结构,中间的隐藏层才是我们所需要关注的地方,以隐藏层为界限,左边为编码器 (encoder) ,右边为解码器 (decoder) 。
很明显,如果自编码器只是单纯的将输入复制到输出中,那么他没有用处。所以实际上,希望通过训练自编码器将输入复制到输出中,使隐藏表示的 h 拥有有用的属性。
因为自编码器也是一种神经网络,它的输入和输出是一致的,它借助稀疏编码的思想,目标是使用一些高阶特征重新组合来重构自己,即对所有的自编码器来讲,目标都是样本重构。自编码器首先通过编码层,将高维空间的向量压缩成低维的向量(潜在变量),然后通过解码层将低维向量解压重构出原始样本。
假如我们通过一组数据训练出了我们的自编码器,然后我们拆掉自编码器的解码器,就可以用剩下的编码器来表征我们的数据了。隐藏层的神经元数目远低于输入层,那么就相当于我们用更少的特征(神经元)去表征我们的输入数据,从而达到降维压缩的功能。
如上图所示
(1)从输入层到隐藏层的原始数据X的编码过程:
(2)从隐藏层到输出层的解码过程:
那么算法的优化目标函数就写为:
其中dist为二者的距离度量函数,通常用MSE(均方差)。
稀疏自编码器通常用于学习诸如分类等任务的特征。稀疏自编码器就是普通自编码器的隐藏层加一个L1正则项,也就是一个训练惩罚项,这样我们训练出的编码器表征的特征更加的稀疏,从而能得到少且有用的特征项。
限制自编码器重构的一种方式是对其损失施加约束 -->稀疏性约束。可以使用神经元的输出作为神经元的激活度,即对于隐含层的第 j 个神经元,其激活度为:
则对于 m 个样本,其平均激活度为:
是一个 常数,表示的是稀疏性参数,通常可以取一个接近于 0 的常数( =0.05)。我们希望平均激活度能够尽可能接近稀疏性常数,通常可以取相对熵来衡量平均激活度与稀疏性参数之间的差异程度。
栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。
降噪自编码器就是输入换成了加噪的数据集,输出用原数据集去训练的自编码器,目的是习得降噪功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。