APP下载

自编码器及其应用综述

2021-09-28来杰王晓丹向前宋亚飞权文

通信学报 2021年9期
关键词:正则编码器特征提取

来杰,王晓丹,向前,宋亚飞,权文

(1.空军工程大学防空反导学院,陕西 西安 710051;2.空军工程大学空管领航学院,陕西 西安 710051)

1 引言

深度学习作为机器学习领域的研究热点,自被Hinton 等[1]提出后,便深刻影响着机器学习的发展走向。深度学习通过构建多层神经网络模型,逐层提取样本的高级抽象特征,而后通过分类器或回归算法完成抽象特征到期望输出的映射。与浅层神经网络相比,深度学习模型的多层网络结构拥有更强的特征提取能力,避免了传统机器学习算法需要人工选取特征的局限[2],同时采用贪婪预训练方式,逐层初始化网络参数,加快了网络收敛速度[3]。深度学习模型的优异性能得益于其复杂的网络结构,而复杂的网络结构则需要大量样本进行训练。然而在有监督学习模式下,大量样本标签的人工标注是非常困难的,这促进了无监督深度学习模型的发展[4]。典型的深度无监督学习模型有自编码器(AE,autoencoder)[5-6]、受限波尔兹曼机(RBM,restricted Boltzmann machine)[7-8]与生成对抗网络(GAN,generative adversarial network)[9]。

自编码器作为典型的无监督深度学习模型,旨在通过将网络的期望输出等同于输入样本,实现对输入样本的抽象特征学习。Rumelhart 等[5]最早提出了自编码器的概念,Bourlard 等[6]对其进行了详细的阐释。随着深度学习得到空前的关注,AE 也被广泛研究与改进[10-13]。为获得高维且稀疏的抽象特征表示,Ng[10]通过在隐含层输出中引入稀疏性限制,迫使网络使用较少神经节点提取有效特征,提出了稀疏自编码器(SAE,sparse autoencoder)。Vincent 等[11]提出了去噪自编码器(DAE,denoising autoencoder)。DAE 在AE 中引入退化过程,运用添加噪声后的样本重构无噪声样本,使提取的抽象特征不易受噪声影响,具有更强的稳健性。为抑制输入样本中的微小扰动,Rifai 等[12]提出了收缩自编码器(CAE,contractive autoencoder)。CAE通过在AE 损失函数中添加收缩正则化项,以达到局部空间收缩效果。Kingma 等[13]提出了变分自编码器(VAE,variational autoencoder),并将其用于数据生成。凭借训练过程简单、多层堆栈容易、泛化性能优秀的特点,AE 及其改进算法被成功应用于目标识别[14-15]、入侵检测[16-17]与故障诊断[18-19]等领域。

本文将着重介绍AE 网络结构及其算法流程,梳理自编码器改进算法的创新点与实现方式。同时,结合最新文献,总结AE 在多个领域的研究进展。最后,通过分析当前AE 及其改进算法存在的问题,讨论其进一步的研究方向。

2 自编码器

作为在无监督学习中使用的神经网络,自编码器的输入与期望输出均为无标签样本,而隐含层输出则是样本的抽象特征表示。AE 首先接收输入样本,将其转换成高效的抽象表示,而后再输出原始样本的重构。

2.1 网络结构

自编码器通常包括两部分:编码器和解码器。编码器将高维输入样本映射到低维抽象表示,实现样本压缩与降维;解码器则将抽象表示转换为期望输出,实现输入样本的复现。自编码器结构如图1所示。

图1 自编码器结构

与全连接神经网络相同,AE 节点连接方式也为全连接,但由于采用无监督学习范式,AE 的输入输出均为无标签样本,不需要标签信息,旨在学习样本的内在结构,提取抽象特征。传统全连接网络采用有监督学习范式,其输出为样本标签,旨在完成特征到标签的映射。

AE 的训练过程包括编码和解码2 个阶段。编码过程,对输入样本进行编码得到编码层;解码过程,对编码层进行解码,得到输入样本的重构,并通过调整网络参数使重构误差达到最小值,以获得输入特征的最优抽象表示。

假设给定输入样本X=Rd×n,编码层与输入层间的权值矩阵W,编码层节点偏置bm,解码层偏置bd,节点激活函数g(·),自编码器首先通过线性映射和非线性激活函数完成对样本的编码

AE 的训练旨在使损失函数达到最小值

在AE 中,损失函数通常可取平方误差损失函数或交叉熵损失函数。对于输入样本与重构,平方误差与交叉熵损失函数分别为

AE 通常利用梯度下降算法,反向传播误差以调整网络参数,通过迭代微调逐步使重构误差函数达到最小值,以学习样本数据中的关键抽象特征。当采用梯度下降算法时,假设学习速率为η,AE的连接权值与偏置更新式分别为

研究者通常将多个AE 进行级联,构建堆栈自编码器,采用逐层贪婪训练方式,将上一级AE 的隐含层输出作为下一级AE 的输入,进行层次化特征提取,使最终提出的特征更具代表性,且维数通常较低[20]。堆栈自编码器通常具有对称的多隐含层结构,对应于解码与编码过程,但被应用于分类或回归问题时,一般将解码部分舍去,将最终的编码用于分类[21]或回归[22]。

2.2 算法流程

对于特定的输入样本,自编码器通过特征的正向传播与误差的反向传播,采用梯度下降算法更新网络连接权值与节点偏置,使重构样本逐步逼近输入样本,进而提取样本的抽象特征。算法流程如算法1 所示。

算法1自编码器算法

输入训练样本,隐含层节点数m,激活函数g(·),学习速率η,最大迭代次数Nmax

输出映射函数f:Rd→Rd

1) 初始化,迭代次数N=0,随机赋值连接权值与节点偏置W,bm,bd;

2) whileN<Nmax

3) 更新迭代次数N=N+1;

4) 正向传播,利用式(1)和式(2)计算隐含层输出H和样本重构;

5) 利用式(4)或式(5)计算网络误差J(W,b);

6) 反向传播,利用式(6)和式(7)分别更新权值W和偏置bm、bd;

7) end while

8) 返回映射函数f(X)=g(WTg(WX+bm)+bd)

以上流程中,算法停止条件仅为最大迭代次数。在实际应用中,还可设定期望误差等其他停止条件。

除AE 以外,基于神经网络的无监督学习算法还包括 RBM、GAN 与自组织映射(SOM,self-organization mapping)[23]。表1 归纳了上述无监督学习算法的目的、实现方式与特点。

表1 基于神经网络的无监督学习算法分析与比较

与主成分分析、独立成分分析等常用无监督学习算法相比,AE 通过将特征进行加权融合,转化为维数更低、更具代表性的高级抽象,能够有效利用次要特征中的重要信息,而不是一味地舍弃次要特征,因此采用AE 进行特征提取或降维后的抽象特征,更有助于分类与回归任务。与RBM 相比,AE 不需要对比散度算法中的采样运算,训练时间更短。与SOM 相比,AE 通过改变隐含层节点数,可以完成任意维度特征空间的映射。

3 自编码器的改进

传统自编码器仅通过最小化输入样本与重构样本之间的误差来获取输入样本的抽象特征表示,这可能导致自编码器学习到的特征仅仅是原始输入的恒等表示,不能保证提取到样本的本质特征。为避免上述问题,需要对传统自编码器添加约束或修改网络结构,进而产生了SAE、DAE、CAE 与VAE 等改进算法。

3.1 稀疏自编码器

稀疏自编码器在自编码器中添加稀疏性限制,以发现样本中的特定结构,避免网络对恒等函数的简单学习。在SAE 中,稀疏性限制迫使隐含层节点大部分时间被抑制,即隐含层节点输出接近于0(因激活函数不同而不同),使网络仅依赖少量隐含层节点进行编码和解码,提取到的特征稀疏性更强。

稀疏性限制需要在损失函数上添加关于激活度的正则化项,对过大的激活度加以惩罚,以降低隐含层节点激活度。通常采用L1范数或KL 散度(Kullback-Leibler divergence)正则化项。

当采用L1范数正则化项时,给定aj(xi)表示隐含层节点j对输入xi的激活值,λ表示控制惩罚程度的L1正则化系数,则SAE 的损失函数为

当采用KL 散度正则化项时,给定稀疏性参数ρ,隐含层节点j的平均激活度为,KL 正则化系数β,SAE 的损失函数为

KL 散度计算式为

稀疏性参数ρ通常为一个较小的值(如ρ=0.05),表示隐含层节点的理想平均激活度,为满足这一条件,隐含层节点的激活度必须接近0。的计算式为

KL 散度随着ρ与之间差的增加而单调递增,这使SAE 的训练会强迫隐含层节点的平均激活度接近ρ,更多的节点激活度接近0,以增强所提取特征的稀疏性。

与其他自编码器相比,SAE 能够有效学习重要特征,抑制次要特征,提取的抽象特征维度更低,更具稀疏性。但SAE 无法指定特定节点处于激活或抑制状态,且稀疏性参数的设置缺乏指导,通常需要额外的参数影响实验进行确定。

3.2 去噪自编码器

为避免传统自编码器学习到无编码功能的恒等函数,去噪自编码器在AE 的基础上引入了退化过程。DAE 在退化过程中对输入样本添加噪声,以改变输入样本的数据分布,而后通过训练重构无噪声的样本,防止AE 简单地将输入复制到输出,迫使AE 提取的抽象特征更加反映样本本质、更具稳健性。DAE 网络结构如图2 所示。

图2 DAE 网络结构

DAE 中,退化过程是指对于每一个输入样本,按照一定比例v将其特征值置为0 或其他值,这个比例v被称作退化率。退化过程如图3 所示(对于灰度图像,置0 意味着置黑)。

图3 退化过程

DAE 加入退化过程的自然原理是人眼在看物体时,如果物体某一小部分被遮住了,人眼依然能将其识别出来。该现象说明人所带有的“生物”自编码器所提取的特征更具有代表性与稳健性,对于输入中含有一定噪声的样本数据,它经过编码、解码后仍能得到纯净无噪的样本。这要求自编码器不仅要有编码功能,还要有去噪作用[8]。然而,即使样本中含有噪声,AE 却只能重构含有噪声的输入样本。所以,对原始样本进行适当的退化处理,再让自编码器重构原始样本,这样所提取的特征更本质、更抗干扰[11]。

与其他自编码器相比,DAE 能够在一定程度上克服输入样本中存在的噪声干扰,提取的抽象特征更具有代表性与稳健性。但DAE 引入了额外的退化过程,增加了模型的训练时间,且算法对退化率敏感,过小的退化率难以有效提升算法性能,而过大的退化率会使输入样本严重失真,降低算法性能。

3.3 收缩自编码器

收缩自编码器在传统自编码器的基础上,通过在损失函数上添加收缩正则化项,迫使编码器学习到有更强收缩作用的特征提取函数,提升对输入样本小扰动的稳健性,防止对恒等函数的学习。

假设收缩正则化系数为λ,隐含层输出关于输入样本的雅可比矩阵为Jf(x),CAE 的损失函数为

从损失函数看,CAE 通过重构误差与收缩正则化项的平衡以提取样本的抽象特征。收缩正则化项使CAE 学习到的函数对于输入的梯度都较小,而重构误差迫使CAE 保留完整的信息。在两者共同作用下,特征提取函数关于输入的梯度大都较小,只有少部分梯度较大。这样在输入具有小扰动时,较小的梯度会削弱这些扰动,从而提升CAE 对输入小扰动的稳健性。

需要注意的是,CAE 与DAE 存在差别。DAE通过对输入样本添加噪声,经过编码与解码获得样本的稳健性重构;CAE 通过对损失函数添加正则化项,提升特征提取函数稳健性。CAE 是通过内部因素提升特征提取稳健性,而DAE 则是通过外部因素提高特征提取稳健性。

与其他自编码器相比,CAE 能够抵抗输入样本存在的一定扰动,提取到的抽象特征具有更强的稳健性。但收缩正则化项在具有多个隐含层的自编码器中难以计算,因此CAE 通常仅包含单一隐含层。

3.4 变分自编码器

作为特殊的自编码器,变分自编码器并非判别式模型,而属于生成模型。VAE 旨在通过对样本分布的学习,采用估计分布近似逼近样本真实分布,进而由估计分布生成原始样本的类似样本[24]。VAE结构如图4 所示。

图4 VAE 结构

图4 中,Z为隐变量,μ与σ为隐变量Z的均值与标准差,与分别为编码过程与解码过程学习到的条件分布,对应识别与生成模型[25]。其中,为使VAE 具有样本生成能力,而非确定的映射过程,隐变量Z需为随机变量,且为简化计算,通常假设隐变量Z服从多元正态分布,即为近似后验分布,旨在逼近未知的真实先验分布,通常假设为正态分布。而需被提前定义,针对二值与实值样本,通常分别选择伯努利分布与正态分布。

VAE 的训练目标旨在最小化输入样本分布P(X)和重构样本分布距离,通常采用KL 散度进行分布之间的距离衡量,即

但由于真实分布的未知性,KL 散度不可直接计算,因此VAE 引入近似后验分布,并采用极大似然法优化目标函数,推导出其对数似然函数

由于KL 散度非负,因此L(X)称为似然函数的变分下界,其计算式为

式(17)中等号右边第一项为正则化项,第二项为VAE 期望重构误差的负值。VAE 通过最小化损失函数,使估计分布接近P(Z),且期望重构误差接近0。

需要注意的是,在VAE 训练过程中,需要对隐变量Z进行随机采样,无法求导,导致无法采用反向传播算法优化参数。为克服该问题,VAE 提出了重参数技巧,引入参数ε~N(0,I),通过抽取L个样本εi,将隐变量Z的直接采样变换为的线性运算,使其能够采用梯度下降算法进行优化。

VAE 的训练可以分为3 个阶段:编码、采样和解码。编码阶段,对于输入样本X,VAE 通过识别模型产生隐变量Z分布的均值μ与标准差σ;采样阶段,对于均值μ与标准差σ,VAE 通过重参数化技巧,生成隐变量Z的随机采样样本;解码阶段,对于隐变量Z的采样样本,VAE 通过生成模型生成新样本。

与其他自编码器相比,VAE 属于生成模型,能够估计样本的真实分布,进而生成类似样本,但也因此不能直接应用于分类与回归任务中。并且由于需要最小化重构误差,与GAN 相比,生成的样本更加自然,却也更加模糊。

3.5 自编码器的其他变体

1) 卷积自编码器

传统自编码器通常采用全连接层,这会造成图像空间信息的损失,而卷积自编码器(CoAE,convolutional autoencoder)[26]受卷积神经网络启发,采用卷积层与池化层取代全连接层,以更好地保留图像的空间信息。在CoAE 中,编码过程由卷积层和池化层(下采样层)组成,解码过程由上采样层和卷积层组成,其中上采样层为池化层的逆过程。

假设X表示输入样本,Wk与bk分别表示第k个卷积核的权值与偏置,*表示卷积运算,g(·)表示池化函数,hk表示第k个卷积核所提取的抽象特征,则CoAE 的编码过程为

解码器将各个卷积核提取的抽象特征进行解码重构,并将其合并为最终的重构样本。

CoAE 的损失函数为

式(20)中等号右边第二项为权值L2范数正则化项,与传统正则化自编码器相同,用于控制权值的衰减程度,以降低噪声影响,提升网络的泛化性能,并改善过拟合现象。

与其他自编码器相比,CoAE 能够直接应用于图像样本的处理,提取到的特征能够保留更多的图像空间信息。但由于涉及卷积、池化及其逆操作,CoAE 的实现更复杂。

2) 极限学习机-自编码器

传统自编码器需要误差的反向传播,通过迭代微调修改网络参数,这使其易陷入局部最优,且需要较多的训练时间。为克服局部最优问题并减少训练时间,极限学习机-自编码器(ELM-AE,extreme learning machine autoencoder)[27]将极限学习机(ELM,extreme learning machine)与AE 相结合,随机赋值隐含层输入权值与偏置,并通过求取隐含层输出权值的最小二乘解,完成网络训练,使网络参数不需要迭代微调,极大增加了网络训练速度,而且最小二乘解为全局最优解,保证了算法的泛化性能。

ELM-AE 网络结构与AE 相同,但其隐含层输出权值通常以β表示,并且为保证ELM-AE 的泛化性能,隐含层输入权值与偏置需要进行正交化,即WTW=I,bTb=I。ELM-AE 隐含层输出H与重构样本的关系为

ELM-AE 隐含层输出权值β的求解方法与网络各层节点数有关。当输入层节点数N与隐含层节点数L不同时,β计算式为

当输入层节点数N与隐含层节点数L相同时,β计算式为

与其他自编码器相比,ELM-AE 不需要采用梯度下降算法进行迭代微调,极大缩减了训练时间。但由于随机赋值的隐含层输入权值与偏置无法通过迭代进行调整,导致ELM-AE 的算法性能通常具有较大程度的波动。

3) 自编码器改进算法比较

除上述算法以外,研究者还提出了其他自编码器改进算法[28-35],包括区分自编码器[28]、L21范数自编码器[29]、对抗自编码器[30]等。表2 归纳总结了上述自编码器改进算法的出发点与改进方式。

表2 自编码器改进算法的分析与比较

这些改进算法主要通过3 种方式对自编码器进行创新:1)对损失函数增加特定的正则化约束,改善所提取特征的特定性质;2)优化网络结构,保留有效信息或增加数据生成能力;3)与其他算法相结合,改善训练方法,减少训练时间。

4 自编码器的应用

作为典型的深度学习模型,自编码器凭借其优异的特征提取能力,已被应用于目标识别、入侵检测、故障诊断、文本分类、图像重建等诸多领域中。

4.1 目标识别

目标识别作为机器学习技术的热点应用领域,一直备受关注,而提升目标识别性能的关键是有效的特征提取与分类。随着传感器性能的增强,其能够获取的目标信息及其种类也在增加,这使传统人工特征提取方式难以深入挖掘目标的潜在本质特征,进而影响目标识别性能[36]。而以自编码器为代表的深度学习技术能够实现目标特征的自动提取,摆脱人工提取的局限,有利于目标识别性能的提升。自编码器在目标识别上的应用,根据数据源种类的不同,大致可分为基于自编码器的高分辨距离像(HRRP,high resolution range profile)识别与合成孔径雷达(SAR,synthetic aperture radar)图像识别。

对于HRRP 识别,Mian 等[14]将稀疏自编码器应用于小样本识别中,通过堆栈稀疏自编码器(SSAE,stacked SAE)逐层提取样本抽象特征,softmax 分类器完成类别标签的映射与网络参数的迭代微调,实现了小训练样本条件下的目标HRRP识别,并验证了自编码器的特征提取性能优于PCA等传统方法。Feng 等[15]为突破传统浅层模型特征提取能力的局限,通过引入平均像正则化项,提出了矫正自编码器及其深度模型。矫正自编码器将HRRP 与其平均像之间的马氏距离作为正则化项添加到AE 损失函数中,迫使特征提取过程考虑HRRP的结构相似性与振幅波动性,使提取的抽象特征能够有效缓解斑纹效应与异常值影响。为保持SAE对HRRP 识别的泛化性能,提升训练速度,Zhao等[37]将SAE 与ELM 相结合,提出了SAE-ELM 方法。该方法首先通过SAE 逐层提取抽象特征,而后使用ELM 完成分类,不需要参数的迭代微调,极大减少了训练时间。为实现多角度HRRP 目标的角度特征提取与分析,Chen 等[38]首先采用SSAE 逐层提取低维抽象特征,然后通过流形学习,利用低维空间映射完成目标角度特征的提取与可视化,并分别在仿真与实测数据上验证了该方法的有效性。

对于SAR 图像识别,Kang 等[39]提出了基于堆栈自编码器的SAR 目标识别特征融合算法,该方法首先提取SAR 图像的基线特征与纹理特征,而后将通过零成分分析法降维后的特征代入堆栈自编码器中进行抽象特征提取与融合,最后采用softmax 分类器完成抽象特征到类别标签的映射。为提升AE 在小样本条件下的特征提取能力,Deng等[40]将暗含样本类别信息的欧氏距离约束添加到AE 中,迫使其提取的抽象特征具有更强的类间可区分性,并将Dropout 正则化技术应用到改进AE的深度模型中,防止出现过拟合现象。Dong 等[41]首先综合分析了自编码器及其改进算法,然后通过具体的SAR 图像识别实验,验证了自编码器进行提取特征的有效性,分析了不同参数对AE 泛化性能的影响,并比较了堆栈自编码器与其他典型算法的分类性能。为提升SAR 图像的特征提取性能,增强抽象特征的类内聚集性,Guo 等[42]通过对卷积自编码器施加紧凑性约束,提出了紧凑卷积自编码器。该方法将类内样本距离正则化项添加到损失函数中,同时最小化重构误差与类内样本距离,以生成更具区分性的抽象特征,并通过在MSTAR 数据集上的实验证实了方法的有效性。

4.2 入侵检测

入侵检测旨在通过分析网络数据分组中的协议类型、服务类型以及持续时间等特征,识别其中的恶意攻击行为,为应对非法入侵提供预警,保障网络安全[43]。然而,随着大数据、云计算等技术的突飞猛进,网络安全威胁日益复杂,问题复杂度不断升高,数据维度不断增加,这使传统机器学习方法难以有效提取特征,存在学习效率低、误报率高的现象,而自编码器高效的特征提取能力,有利于发现潜在安全威胁,为解决复杂的入侵检测问题提供可能。

Li 等[16]提出一种将AE 与深度置信网络相结合的入侵检测方法,该方法首先采用AE 进行特征降维,然后采用深度置信网络对降维后的数据进行分类。相较于传统深度置信网络,该方法的检测准确率得到一定提升。Javaid 等[17]与Al-qatf 等[44]将SAE应用于入侵检测中,2 种方法首先采用独热编码处理符号特征,然后通过SAE 进行层次化抽象特征提取,最后分别使用softmax 分类器与支持向量机(SVM,support vector machine)完成类别映射。2 种方法均在NSL-KDD 数据集上进行实验,通过准确率、精准率、召回率与F 值等指标的变化,验证算法有效性。为改进AE 与VAE 中的抽象特征表示,迫使抽象特征向原点聚集,Cao 等[45]通过增加AE损失函数中的抽象特征L2范数正则化项,重构VAE损失函数中的KL 散度项,提出了缩小自编码器与狄拉克变分自编码器,并将其应用于异常检测中。Chouhan 等[46]将堆栈自编码器与改进的卷积网络相结合,提出了一种新的入侵检测方法。该方法将多个堆栈自编码器用于原始特征空间到抽象特征空间的转换,得到多个不同的抽象特征空间,并采用信道增强方法将不同的抽象特征空间进行叠加,而后代入改进的卷积神经网络中进行分类,完成异常行为的检测。对于入侵检测数据集中存在的类别不平衡问题,通过将类别标签作为VAE 的额外输入,Lopez-martin 等[47]提出了一种新的变分生成模型,并将其用于少数类的生成中,有效提升了检测准确率。通过将统计分析方法与自编码器相结合,Ieracitano 等[48]提出了一种新的入侵检测方法。该方法先后采用异常值分析剔除异常值、最小最大归一化统一数值范围、独热编码数值化符号特征,而后通过数值0 的比例进行特征剔除,接着将剩余特征分别通过AE 与softmax 分类器完成特征降维与分类。Tang 等[49]为进一步提升特征提取能力,通过在输入层与隐含层间新增用于计算特征注意力向量的注意力机制层,将注意力机制引入AE 中,提出了注意力自编码器(AAE,attention autoencoder),并将堆栈注意力自编码器(SAAE,stacked AAE)与深度神经网络(DNN,deep neural network)相结合应用于入侵检测中。

4.3 故障诊断

机械故障诊断通过对获取的机械运行状态信息进行分析比较,旨在及时发现机器异常或故障,从而减少故障或事故的发生[50]。传统故障诊断方法基于对振动信号的分析与处理,通过经验知识进行特征提取与选择,并选择浅层分类器完成故障类别的判定。然而,随着现代化机电设备发展,传感器数量增多、采样频率升高、数据量加大,且振动信号的非线性、非高斯分布性等特性凸显,传统方法难以实现故障的快速准确判断,这促使包括自编码器在内的深度学习技术应用于故障诊断中。

Zhang 等[18]与Lu 等[19]分别将AE 与DAE 应用于滚动轴承故障诊断中,使用其深度结构实现振动信号的抽象特征提取,克服了传统人工特征提取的局限,极大提升了故障诊断准确率。为实现特征的自动提取,克服训练样本与测试样本间的差异性,Wen 等[51]将SAE 与迁移学习相结合,提出了基于深度迁移学习的故障诊断方法。该方法将训练样本与测试样本均采用SAE 逐层提取样本抽象,并在网络损失函数中加入最大平均差异正则化项,最小化训练和测试样本抽象特征之间的差异,使提取的抽象特征能同时有效表征训练与测试样本。在常用故障诊断数据集上的实验表明,该方法的预测准确率高于深度置信网络、SVM 等算法。Li 等[52]将稀疏与邻域原理应用于ELM-AE 中,通过在损失函数中增加稀疏与邻域正则化项,更新隐含层输出权值的最小二乘法,迫使抽象特征保留样本的全局与局部流形结构,提升其可区分性,并与ELM 及其深度模型进行对比分析,验证了所提方法在故障诊断上的有效性。为提取含噪声振动信号的有效故障特征,Yu[53]提出了一种基于负相关学习的选择性堆栈去噪自编码器集成模型。该模型首先将bagging 算法应用于堆栈去噪自编码器(SDAE,stacked DAE)中,通过bootstrap 采样训练样本,使用不同的采样样本进行SDAE 抽象特征提取,然后利用负相关学习进行微调,构建分类器,最后采用粒子群算法对SDAE 进行选择性集成,得到稳定性与泛化性能最优的模型。Zhao 等[54]为解决故障样本少所导致的类不平衡问题,将VAE 引入故障诊断框架中,通过增扩少数类的振动信号样本,构建出类别平衡的训练样本,并代入CNN 中进行分类。实验结果表明,与真实信号相比,VAE 生成的振动信号具有相似的时频特性,能够促进诊断准确率的提升。Yu 等[55]为提升对一维振动信号的特征提取能力,将一维卷积自编码器应用于齿轮故障诊断中,并引入残差学习对其进行改进。Gao 等[56]提出了一种基于半监督堆栈自编码器与集成极限学习机相结合的高压开关故障诊断方法。该方法首先采用自适应噪声完备经验模态分解对针对信号进行处理,得到时频能量矩阵,然后对能量矩阵采用半监督堆栈自编码器进行自动特征提取,接着采用集成极限学习机建立两级分类器,第一级用于正常或异常状态识别,第二级用于异常状态的具体故障类型识别。在验证实验中,该方法的分类准确率可达到99.5%。

4.4 其他领域

1) 文本分类

文本分类旨在通过文档的标题、关键词、正文等特征信息,对其所属类别进行判定,从而代替人工完成文本信息的分类管理。随着深度学习技术的发展,AE、CNN 等算法已逐步应用于文本分类中[57-59]。

许卓斌等[57]为提升AE 在词嵌入中的效果,通过在AE 隐含层中加入全局调整函数,实现特征的合并,增强特征向量的稀疏性,并在20 News Groups数据集上验证了该改进方法的有效性。为提升高维度文本的特征提取能力,减少训练时间,冀俊忠等[60]提出了基于ELM-AE 的文本分类方法。该方法首先利用ELM-AE 对高维度文本进行特征降维,而后通过堆栈ELM-AE 实现文本抽象特征的层次化提取,并计算输出层权值的最小二乘解进行文本分类。Xu等[61]针对半监督文本分类问题,提出了一种半监督序列变分自编码器。该方法通过将未标记样本的类别标签作为离散潜变量,最大化样本的似然变分下界,从而隐式推导出未标记样本的潜在类别分布,并通过解决序列解码器的自回归问题,使其能够应用于文本分类。

2) 图像重建

图像重建技术旨在根据物体测量数据,通过数据处理重新建立物体图像。但是常见的压缩感知[62-63]、字典学习[64-65]等图像重建方法具有重建时间过长与超参数选择困难的问题[66]。而基于深度学习的图像重建方法,能够学习样本的高级抽象特征,避免了传统方法的人工特征提取,在重建精度与速度上实现了突破[67]。

Tan 等[68]将AE 应用于图像重建与识别中,通过重建误差指标,比较了堆栈自编码器与主成分分析法、深度置信网络的性能。Mehta 等[69]为提升DAE 对异常值的稳健性,实现实时医学影像重建,将原有的欧氏范数(L2范数)损失函数替换为L1范数损失函数,降低了异常值影响,提升了网络参数的稀疏性,同时采用少量的矩阵乘积运算,极大搞高了重建速度。为保留更多的图像细节,Zhou等[70]通过在卷积自编码器中引入结构相似度与多尺度结构相似度指标,构成结构增强损失项,添加到损失函数中,提出了结构增强卷积自编码器,并将其作为生成器与对抗生成网络相结合,用于高度欠采样样本的图像重建。在不同欠采样率与采样类型下的对比实验表明,该方法能够以较少的模型参数重建更高质量的图像。

5 存在的问题及研究方向

尽管近年来研究者对自编码器及其改进算法进行了深入研究,但现阶段仍存在以下问题亟须解决。

1) 无监督学习模式对特征提取能力的限制

与有监督学习相比,无监督学习模式摆脱了对样本标签的依赖、避免了人工标注的困难,但也因此失去了样本标签的辅助,标签信息难以有效应用于特征提取中,使自编码器性能与有监督学习存在一定差距。因此,研究半监督[71]或有监督条件下的自编码器[72],合理运用标签信息提升自编码器特征提取能力,是一个需要重点关注与解决的问题。

针对此问题,一方面可以通过在自编码器输入层或输出层中直接添加样本标签,同时重构输入样本及其标签,强迫自编码器在编码与解码过程中考虑到标签损失,使提取的特征更加符合不同样本的类本质。另一方面,可以通过在损失函数上添加暗含标签信息的类内离散度或类间离散度正则化项,在最小化损失函数的过程中,减少抽象特征的类内距离,增加类间距离,增强抽象特征的类可区分性,提升自编码器的特征提取能力,使抽象特征更适用于分类任务。

2) 硬件要求高,训练时间长

复杂的网络结构依赖大量的训练样本,以自编码器为代表的深度学习模型具有较高的时空复杂度,需要消耗巨大的计算与存储资源,这对硬件设备提出了更高要求,往往导致训练时间过长[73]。

针对此问题,一方面可以将模型压缩技术应用于自编码器中,采用剪枝算法剔除冗余节点或通道[74],实现网络结构的精简,或对权值进行稀疏化,抑制部分神经节点,完成对网络参数的压缩。另一方面可以研究轻量化自编码器算法,借鉴ELM-AE 算法,对自编码器的训练方式进行改进[75],减少参数迭代微调次数,提升算法训练效率。此外,还可以通过研究分布式优化算法来降低模型的计算复杂度[76],或研究并行计算方法以充分利用现有计算资源。这些方法有助于降低自编码器的结构复杂度,降低软硬件要求,减少训练时间。

3) 缺乏有效超参数设置方法

以自编码器为代表的深度学习模型具有隐含层层数、节点数等众多的超参数,这些超参数对模型泛化性能有重大影响,因此如何合理设置超参数是一个重要问题。

目前,超参数的设置一般采用试错法,通过比较超参数不同排列组合下的模型性能,选出最优的超参数设置,然而这并不适用于超参数数量较多的情形。针对此问题,一个可行的方法是将遗传算法[77]、粒子群算法[78]、蝙蝠算法等算法应用于超参数优化中,将超参数取值作为搜索目标,自编码器泛化性能作为评价标准,通过上述搜索算法,寻找能够满足最优泛化性能条件下的超参数取值,实现自编码器超参数的自动学习与设置。

4) 随机初始化引入额外噪声

目前,绝大多数自编码器及其改进算法对网络参数均采用随机初始化,这不可避免地引入了额外噪声,影响算法的收敛速度与泛化性能。因此,如何有效地进行网络初始化是一个值得深入研究的问题。

针对此问题,一方面可以通过在损失函数中添加L1或L2范数正则化项,以降低随机初始化导致的噪声影响,另一方面可以采用Glorot 初始化方法[79]、He 初始化方法[80]等其他改进初始化方法,在缓解噪声影响的同时,使自编码器的训练过程更加稳定,避免出现梯度消失或爆炸现象。

5) 难以适应小样本条件,易产生过拟合

自编码器及其深度结构由于模型结构复杂,需要大量样本进行训练,在小样本条件下训练自编码器极易产生过拟合,进而降低模型泛化性能。因此小样本条件已成为制约自编码器应用的关键因素。

针对此问题,可从样本扩充与模型优化2 个方面加以解决。在样本扩充方面,既可通过平移、旋转、过采样等传统方法对有限样本进行数据扩充,也可通过VAE 或GAN 等深度生成模型学习真实样本的估计分布,生成有限样本的类似样本,解决小样本条件下的样本稀缺问题。在模型优化方面,可将迁移学习应用于自编码器中,通过在相似充足数据集上的预训练阶段与在小样本数据集上的迭代微调阶段,完成对网络参数的优化,解决小样本条件下的训练不足问题。

6 结束语

随着在各领域的成功应用,深度学习受到了广泛关注,而自编码器作为典型的无监督深度学习模型,凭借训练过程简单、多层堆栈容易、泛化性能突出等优点,成为近年来的研究热点。本文详细介绍了自编码器及其改进算法,阐述了其基本理论及算法流程,梳理与分析了自编码器在多个具体应用领域的研究进展,最后总结了现有自编码器算法在学习模式、训练时间与超参数设置等方面所存在问题,给出了可行的解决方法,展望了自编码器的研究方向。希望本文能为今后自编码器相关研究提供一定的参考。

猜你喜欢

正则编码器特征提取
半群的极大正则子半群
融合CNN和Transformer编码器的变声语音鉴别与还原
设定多圈绝对值编码器当前圈数的方法
π-正则半群的全π-正则子半群格
Virtually正则模
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案