五、自动编码器

版权声明:转载需转载声明 https://blog.csdn.net/qq_32285693/article/details/83957112

                                                 自动编码器(AE)

1、自动编码器的基本思想

         直接用一个单层或者多层神经网络对输入数据进行映射,得到输出向量,作为从输入数据中提取出的特征

核心问题:怎么设定训练目标

         解决思路:编码器+解码器框架

 

2、网络结构

         编码器-将输入数据映射为特征向量

         解码器-将特征向量映射回输入向量,重构

        

 

3、损失函数

         损失函数定义为重构误差-类似PCA的做法

         

           输入与输出:(X,X)

             

      训练算法和普通的神经网络相同(BP算法+梯度下降)

        

4、特征提取

         实际使用时,只需要编码器网络,解码器只用于训练阶段

         输入一个数据向量,即可得到特征向量

 

5、去噪自动编码器(Denoising Autoencoder,DAE

         在训练样本中加入随机噪声,重构的目标是不带噪声的样本数据

         用自动编码器学习得到的模型重构出来的数据可以去除这种噪声,获得没有被污染过的数据

         对于每个样本向量X随机选择其中的一部分分量,将它们的值置为0,其他分量保持不变,得到的带噪声向量x

        

                 输入与输出:(\widehat{x},x)

 

6、稀疏自动编码器

         加入稀疏性惩罚项,让编码器的输入结果稀疏

         编码器网络隐含层的第i个神经元的平均激活度为对所有训练样本的激活函数的均值,记为ρi

       ρ为人工指定的活跃度,是一个接近于0的数

       使用相对熵构造惩罚项

      

      加上惩罚项后的目标函数变为

7、收缩自动编码器(Contractive Auto-Encoders,CAE

         训练时在损失函数中加上正则化项,使得编码器函数的导数尽可能小

       

       正则化项是编码器函数导数的二范数平方

      

 

8、多层自动编码器

         层叠自动编码器由多个自动编码器串联组成,能够逐层提取输入数据的特征,在此过程中逐层降低输入数据的维度,将高维的输入数据转化为低维的特征

         训练层也是逐层进行的。给定输入向量,采用无监督方式训练第一层自动编码器。把第一个自动编码器的输出作为第二个自动编码器的输入,采用同样的方法训练第二个自动编码器

         重复第二步直到所有自动编码器训练完成。把最后一个自动编码器的输出作为最终的输出

         在每一层,都会得到输入数据的不同抽象特征,随着层数的增加,这个特征越来越抽象

猜你喜欢

转载自blog.csdn.net/qq_32285693/article/details/83957112