无监督的神经网络模型-自编码器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无监督的神经网络模型-自编码器相关的知识,希望对你有一定的参考价值。

参考技术A 自编码器(简称AE)是一种无监督的神经网络模型,最初的AE是一个三层的前馈神经网络结构,由输入层、隐藏层和输出层构成,其核心的作用是能够学习到输入数据的深层表示。自编码器最初是用来初始化神经网络的权重参数,实践证明,这种通过逐层训练加微调得到的初始化参数要比传统的对称随机初始化参数效果好,更容易收敛,并且在一定程度上缓解了BP算法在深层网络训练中出现的梯度消失问题。

当前自编码器的主要应用有两个方面,一是特征提取;另一个是非线性降维,用于高维数据的可视化。自编码器的核心设计是隐藏层,隐藏层的设计有两种方式分别是:

(1)当隐藏层神经元个数小于输入层神经元个数时,称为undercomplete。该隐藏层设计使得输入层到隐藏层的变换本质上是一种降维的操作,网络试图以更小的维度去描述原始数据而尽量不损失数据信息,从而得到输入层的压缩表示。当隐藏层的激活函数采用线性函数时,自编码器也被称为线性自编码器,其效果等价于主成分分析(PCA)。

(2)当隐藏层的神经元个数大于输入层神经元个数时,称为overcomplete。该隐藏层设计一般用于稀疏编码器,可以获得稀疏的特征表示,也就是隐藏层中有大量的神经元取值为0。

降噪自编码器

降噪自编码器(DAE)其目的是增强自编码器的鲁棒性。自编码器的目标是期望是重构后的结果输出X与输入数据x相同,也就是能够学习到输入层的正确数据分布。但当输入层数据收到噪音的影响时,可能会使获得的输入数据本身就不服从原始的分布。在这种情况下,利用自编码器得到的结果也将是不正确的,为了解决这种由于噪音产生的数据偏差问题,DAE在输入层和隐藏成之间添加了噪音处理,得到新的经过逄处理后的噪音层数据为y,然后按照这个新的噪音数据y进行常规自编码器变换操作。

栈式自编码器

栈式自编码器(SAE),也被称为堆栈自编码器、堆叠自编码器。是将多个自编码器进行叠加,利用上一层的隐藏层表示作为下一层的输入,得到更抽象的表示。SAE的一个很重要应用是通过逐层预训练来初始化网络权重参数,从而提升深层网络的收敛速度和减缓梯度消失的影响。对于常见的监督学习,SAE通过下面两个鸡蛋作用于整个网络。

1.逐层预训练

通过自编码器来训练每一层的参数,作为神经网络的初始化参数,利用逐层预训练的方法,首先构建多个自编码器,每一个自编码器对应于一个隐藏层。

2.微调

经过第一步的逐层预训练后,得到了网络权重参数更加合理的初始化估算,就可以像训练普通的深层网络一样,通过输出层的损失函数,利用梯度下降等方法来迭代求解最优参数

稀疏编码器

稀疏编码器的网络结构和自编码器一样,同样是一个有三层结构构成的前馈神经网络,在稀疏编码中,期望模型能够对任意的输入数据,得到隐藏层,以及输出层,并且输入数据、隐藏层、输出层门组下面两个性质。

(1)隐藏层向量是稀疏的,则向量有尽可能多的零元素

(2)输出层数据能够尽可能还原输入层数据。

以上是关于无监督的神经网络模型-自编码器的主要内容,如果未能解决你的问题,请参考以下文章

深度学习时代的图模型,清华发文综述图网络

[Python人工智能] 三十八.Keras构建无监督学习Autoencoder模型及MNIST聚类可视化详解

[Python人工智能] 三十七.Keras构建无监督学习Autoencoder模型及MNIST聚类可视化详解

Aalto博士论文深度生成神经网络模型: 捕获视觉数据中复杂模式,92页pdf

自监督学习:自编码器

『cs231n』无监督学习