APP下载

基于自编码算法的深度学习综述①

2018-09-17崔广新李殿奎

计算机系统应用 2018年9期
关键词:鲁棒性编码器编码

崔广新,李殿奎

(佳木斯大学 信息电子技术学院,佳木斯 154007)

随着大数据时代的到来,互联网的海量资源比较容易获得.但是,由于“维数灾难”的影响,就使得高维数据处理变得十分困难,基于深度学习的自编码算法是数据降维的一个新的热点.自编码算法横跨计算机科学、数学和工程技术等其他多个学科,并且它广泛的应用于经济、政治、天文、地理等社会生活领域中.自编码算法的最大优点是模型的表达能力强,它可以很好的处理具有高维稀疏特征的数据,通过无监督学习可以减少无关和冗余数据,从而降低维数.

1 自编码算法

自动编码器是Rumelhart于1986年提出的,是一个典型的三层神经网络结构,包括输入层、隐藏层和输出层[1].

设输入层和输出层的维度为n,隐藏层的维度为m,样本数集.

设编码函数为f,编码过程指的是从输入层到隐藏层;设解码函数为g,解码过程指的是从隐藏层到输出层.

自动编码器的编码部分是利用非线性映射函数将输入数据映射到隐藏层单元,设h表示隐藏层的神经单元激活,则其数学表达式为:

其中,w表示的是连接输入层和隐藏层之间的权值矩阵,Sf表示的是编码器激活函数,通常取Sigmoid函数,即f(x)=1/(1+e−x).

解码部分计算原理与编码部分类似,利用编码得到的隐藏层重构出原始输入数据.其解码函数的数学表示如下:

其中,y表示的是解码器对输入数据的重构,sg表示的是解码器激活函数,通常取Sigmoid函数或者恒等函数,w表示的是隐藏层与输出层之间的权值矩阵w,并且,自动编码器的参数 θ={w,p,q}.

输出数据y可以看作是对输入数据x的预测,如果输出数据y与输入数x的接近程度是我们可以接受的,那么该自动编码器就保留了原始数据的大部分信息,该自动编码器也就训练好了[2].

用重构误差函数L(x,y)来刻画y与x的接近程度.

当sg为恒等函数时:

当sg为Sigmoid函数时:

最后重复使用梯度下降算法迭代计算JAE(θ)的最小值,就可以求解自编码网络的参数 θ,也就完成了自动编码器的训练.

2 基于自编码算法的改进算法

2.1 稀疏自编码算法

稀疏自编码算法与传统自编码算法降维特性不同,稀疏自编码算法试图学习过完备数据,通过适当的稀疏正则化可以达到过完备的效果[3].

一般采用稀疏性限制确定神经元是否被激活,如果神经元输出接近1,则说明被激活.对于Sigmoid函数,如果输出接近0则认为神经元被抑制;对于tanh函数,输出接近–1则认为被抑制,通过使大量神经元处于被抑制的条件限制下从而使自动编码器达到稀疏的目的[4].

2.2 降噪自编码算法

降噪自编码算法(Denoising Automatic Encoder,D AE)是自编码算法的一个变种,其实就是在自编码算法上加入了噪声鲁棒性约束.

降噪自编码算法的过程是:首先将原始输入数据x随机的添加噪声干扰,就会得到受干扰的输入数据x.自动编码器通过编码函数f将x映射到隐藏层,从而就会获得隐藏层特征表达式h,然后自动编码器通过解码函数g将隐藏层的特征表达式h再映射到输出层,就会获得输入数据的重构y.如果最终得到的重构数据y能够很好地保持原始输入数据x的信息,那么我们就可以说这个网络具有很好的鲁棒性.

降噪自编码算法最重要的就在于为输入数据添加干扰噪声[5].最常见的方法有两种,一种是加入additive isotropic Gaussian noise,令即噪声干扰部分 ε服从标准方差为 σ2的标准正态分布.另外一种是 binary masking noise,该方法只需要以概率P(A)将输入向量x的部分分量赋值为0,以1 −P(A)的概率分量保持不变,这样就做到了将输入向量x添加干扰变成了干扰向量x˜,参数 σ和P(A)都是用来控制噪声强度的.

2.3 收缩自编码算法

收缩自编码算法(Contractive Automatic Encoder,CAE)是自编码算法的一个变种,其实就是在自编码算法上加入了一个规则项.当训练样本的输入存在微小扰动时,CAE被提出来保持中间层表示的鲁棒性,它主要通过惩罚输入数据的敏感性来保持中间层表示的鲁棒性[6].该惩罚因子是自动编码器编码部分的Jacobian矩阵的Frobenius范数.

从几何角度来说,特征表示的鲁棒性可以看作是投影到特征空间的输入数据空间,尤其是数据生成分布的样本领域空间的压缩.从解析的角度来说,惩罚因子的限制提高了CAE对于输入数据中的微小扰动的鲁棒性,数据表示的准确性较高,且重构特征并不受惩罚因子的影响.可以平衡误差代价函数的重构误差与鲁棒性.

2.4 栈式自编码算法

栈式自编码是一种由多层自编码构成的神经网络模型.它通常能得到输入的“层次型分组”或者“部分-整体分解”结构.栈式自编码神经网络的第一层会学习到原始输入的一阶特征(像图片里的边缘),第二层会学习到二阶特征,该特征对应一阶特征里包含的一些模式(像在构成轮廓或者角点时,什么样的边缘会出现),更高层还会学到更高阶的特征,但耗时较长.

该深度学习模型的训练过程为:首先,网络中的每一层依次通过逐层贪婪训练法来训练整个深度神经网络,即原始输入用于训练第一层网络参数,然后把该隐藏层的输出作为下一层的输入,如此反复,依次逐层训练学习各层网络的参数.在无监督预训练之后,我们在最后一个自动编码器的编码层上添加一个分类器,然后使用监督学习通过有标记样本来调整分类器的参数.此外,多层神经网络的监督学习也可以用来微调所有层的参数,同时改善结果.

2.5 边缘降噪自编码算法

边缘降噪自编码算法是Chen为克服降噪自编码算法计算强度高、处理时间长等缺点提出来的一种衍生算法[7],但控制噪声强度的参数不易确定.

2.6 稀疏降噪自编码算法

通过研究传统自编码算法,提出了一种将稀疏性限制加在降噪自动编码器的隐藏神经元上的方法,可以让较少隐藏层的激活单元表示最有效的特征,但没有考虑输入与输出的局部近似性.

2.7 稀疏边缘降噪自编码算法

稀疏边缘降噪自编码算法(Sparse Margin Denoising Auto-Encoder,SMDAE)是自编码算法的一个变种,其实就是将稀疏性约束条件表达式和边缘降噪约束条件表达式添加在隐藏层上面.同时结合了稀疏自编码算法和边缘降噪自编码算法的特点,噪声干扰分布和重构误差函数还可以继续改进.

2.8 卷积自编码算法

卷积自编码算法(Convolutional Auto-Encoder)是在自编码算法基础上,将普通的矩阵内积操作替换为卷积操作.这种操作更适合处理二维输入数据,但耗时较长.

2.9 卷积稀疏自编码算法

在自编码算法中加入卷积与反卷积操作构成CAE,再加入稀疏化操作,构成卷积稀疏自编码器.使用CSAE-S对输入数据进行预处理,尽可能实现初步无损特征提取,然后使用CSAE-V对数据进行降维,实现低级特征抽象,再加入Pooling层实现高级特征抽象以及提高网络泛化性.将CSAE中的卷积编码部分按CSAE-S、CSAE-V、Pooling顺序栈式堆叠,最后加入Full连接层和Softmax分类层,则形成CSAENN.

整个CSAENN的耗时主要在于权值稀疏化部分,因此整个网络的时间复杂度达到了 O(n3).CSAENN的另外一个优点就是准确率有一定的提高.经过稀疏化后的权值提取出的特征相似性更少,即代表性更强,因此可以更好地表示原图像.增加迭代次数、增加样本数量可获得更高的准确率.

3 自编码算法的应用案例

3.1 图像识别领域

利用人体生物学特征已成为获取相关信息的重要途径,徐文瀚等人提出一种运用栈式自编码网络进行面部年龄识别的方法[8];针对传统人脸表情识别算法鲁棒性差,李江等人提出一种降噪自编码神经网络的方法[9];余涛将稀疏自编码应用在手写字的识别中,与传统人工神经网络相比,参数少,对图像的平移具有一定的容忍度,不易造成过拟合[10];针对网络上大量重复视频的问题,王飞飞将稀疏自编码用于近重复视频检索[11],取得了较好的检索精度;王勇将稀疏自编码应用在森林火灾的图像分类中[12],该方法直接从图像块的像素中提取图像数据的特征,提高了森林火灾与类似物体的分类准确率.

3.2 语音识别领域

马勇等人提出了一种基于稀疏神经网络的说话人分割方法[13],为了避免网络在训练中出现过拟合问题,还采用了dropout技术提高网络的鲁棒性;针对中文语音情感识别的问题,朱芳枚同时结合了降噪自编码算法和稀疏自编码算法的优点,提取了具有鲁棒性和稀疏性的语音情感二次特征[14];针对在语音识别中,传统径向基随机初始化的问题,黄丽霞等人将深度自编码应用在语音识别噪声鲁棒性的研究中[15];王辉等人采用稀疏自编码算法来提取模仿听觉神经的稀疏触动信号,将其作为表征语音信号[16];在声学模型方面,也不断地尝试新的深度神经网络,王山海利用深度自编码算法研究出它的模型参数对于孤立词语音识别产生的影响[17].

3.3 故障诊断领域

针对浅层网络特征提取能力有限的问题,陈仁祥等人提出采用深度自编码神经网络的方法对轴承进行识别[18];温博文将深度自编码算法应用于飞机操纵面故障诊断当中[19],该方法无需精准的飞机模型,诊断速度快、精度高;为了实现风机齿轮箱的故障诊断检测分析,刘辉海提出了一种深度自编码网络模型[20];针对在复杂纹理背景噪声下传统路面裂缝检测系统检测效率低,易造成漏检、错检等问题,钱彬等人提出了一种运用稀疏自编码进行裂缝自动检测的方法[21];朱煜奇将栈式降噪自编码应用在故障诊断中,有效的克服了局部极值与梯度消失的问题[22].

3.4 其它领域

袁静等人将稀疏去噪自编码应用在异常行为检测中,该方法比传统的自编码网络在全局异常行为检测中更加有效[23];针对在入侵检测中SVM受时间与空间复杂度的约束,高妮等人提出一种自编码神经网络应用于此[24];杨辉华等人采用稀疏降噪自编码对真假药品近红外光谱数据进行建模,可以做到真实有效的鉴别药品的真伪性[25];针对常规毒理学实验方法的周期长、耗资高等问题,黎红等人提出采用降噪自编码提取隐含毒性化合物的特征,使得有毒化合物的化合物毒性预测和活性预测都能被实现;魏扬威将自动编码器应用于英语作文自动评分系统,相比于传统自动评分方法皮尔森相关系数高出9.7%,具有非常好的应用价值[26].

4 结论与展望

对各算法作对比分析,如表1.

表1 各算法对比

自编码的最大优点是模型的表达能力强,它可以很好的处理具有高维稀疏特征的数据,通过无监督学习可以减少无关和冗余数据,从而降低维数.虽然自编码算法已经在很多领域都取得了令人瞩目的成绩,但其仍处于起步阶段,还面临诸多问题:像如何判定网络的隐藏层层数和隐藏层节点数;如何改进梯度下降法,使得网络可以获得更好的局部极值点,甚至是可以获得全局最优点;如何评价通过自动编码器所学到的特征是优劣的,并且如何解释该特征;如何处理大数据的大样本量,高维属性和多样性的数据类型等问题.

未来自编码的发展趋势:在自然语言处理领域,期待利用AE模型的更多新算法,可以更好地理解自然语言中的句子或整个文档;在信息检索领域仍有待突破,期待涌现新的深度结构及其算法;在计算机视觉领域,期待更多的深层结构和算法能够更好地处理目标和行为识别这类复杂的问题.

猜你喜欢

鲁棒性编码器编码
融合CNN和Transformer编码器的变声语音鉴别与还原
生活中的编码
设定多圈绝对值编码器当前圈数的方法
武汉轨道交通重点车站识别及网络鲁棒性研究
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
《全元诗》未编码疑难字考辨十五则
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
子带编码在图像压缩编码中的应用
Genome and healthcare