自编码器及其几种变种

自编码器
自编码器是一种基于无监督学习的数据压缩和特征提取的表达方法。
主要种类有一般的自编码器,降噪自编码器,稀疏自编码器,和栈式自编码器。自编码器( autoencoder) 是一种有效的数据维度斥缩算法,主要应用在以下两个方面
1·构建 一种能够 重构输入样本并进行特征表达的神经网络
2·训练多层神经网络时,通过自编码器训练样本得到参数初始

第一条中的“特征表达”是指对于分类会发生变动的不稳定模式,或者输入样本中包含噪声等情况,神经网络也能将其转换成
可以准确识别的特征 当样本中包含噪声时,如果神经网络能够消除噪声,被称为降 噪自编码器( denoising autoencoder) 另外还有一种称为稀疏自编码器( sparse autoencoder )的网络,它在向编码器中引入
了正则化项,以去除冗余信息。
第二条中的“得到参数初始值”是指在多层神经网络中得到最优参数,多层神 经网络的训练,首先要利用随机数初始化训练样本的参
数,然后通过训练样本得到最优参数 但是,如果是层数较多的神经网络,即使使用误差反向传播算法也很难把误差梯度有效反馈到底层,这样就会导致神经 网络训练困难 所以,需要使用自编码器计算每层的参数,并将其作为神经网络的参数初始值逐层训练,以使得到更加完善的经网络模型

自编码器
自编码器及其几种变种_第1张图片
自编码器及其几种变种_第2张图片
训练编码和解码参数,使误差函数收敛于极小值。
降噪自编码器
在普通自编码器基础上有所改进,即将输入样本加入噪声进行训练,最终效果为
1.保持输入样本不 变的条件下,提取能够更好地反映样本属性的特征
2.消除输入样本中包含的噪声
稀疏自编码器
提出稀疏自编码的初衷是中间神经元个数太多降低压缩效率,太少重构样本有困难。其原理是加入正则化项,使大部分单元输出变为0,利用少数单元完成数据重构。
重构函数
加入正则化项的重构函数
第J个单元的平均激活度
科尔贝克 莱布尔距离函数
ρ表示平均激活度的目标值,KL距离表示平均激活度和目标值的差异,ρ越接近于0,中间层平均激活度越小。β表示稀疏性的权重。在训练网络时,需要通过不断调整参数使 β达到极小值 和神经网络
一样,稀疏向编码器的训练也需要使用误差反向传播算法,通过对误
差函数求导计算输入层和中间层之间,以及中间层和重构层之间的
连接权重 w及偏置 bj 的调整值 。自编码器及其几种变种_第3张图片
反向误差传播调整参数。
栈式自编码器
其结构就是输入层和中间层进行多层堆叠,首先训练第一层编码器,然后保留第 一个编码器的编码部分,并把第一个自编码器的巾间层作为第二个向编码器的输入层进行训练,后续过程就是反复地把前一个编码器的中间层作为后一 个编码器的输入 ,进行迭代训练 ,通过多层堆叠,栈式编码器能够有效地完成输入模式的压缩。

栈式自编码器和 多层神经经网络都能得到有效的参数,所以我们可以
把训练后的参数作为神 经网络或卷积神经网络的参数初始值 ,这种方
法叫作预训练。 首先, 选取多层神经网络的输入层和第 一个中间层,组成一个自编码器,然后先进行正向传播,再进行反向传播,计算输入与重构结果的误差,调整参数从而使误差收敛于极小值 ,接下来训练输
入层与第二个中间层的参数 ,把正向传播的的值作为输入,训练其与第
二个中 层之间的参数 然后调整参数,使第 一个中间层与第二 个中
间层反向传播的值之间的误 差收敛于极小值 这样,对第 一个中间层的
值的重构就完成了。 对网络的所有层进行预训练后,可以得到神经网络
的参数初始值。

你可能感兴趣的:(深度学习,自编码器)