多层感知器神经网络反向传播算法的实现与研究

2020-12-23 02:00陈文云
科学与信息化 2020年32期
关键词:人工神经网络支持向量机人工智能

摘 要 本文通过实现多层感知器神经网络反向传播算法,对其中各神经元突触权值和偏置的自适应收敛速度的影响因素进行研究,包括激活函数、学习率和特征的提取及其初始化等。并通过非线性可分的“异或”问题来进行验证,实验结果表明反向传播算法在学习率、特征初值和激活函数选择得当的前提下是一种高效的算法。

关键词 人工智能;人工神经网络;多层感知器;支持向量机

引言

随着信息技术(处理器、存储、网络和物联网等技术)的步深化和人类社会信息化程度的不断提高,需要处理的数据量和种类越来越多,靠人脑来处理这些海量数据已经不可能[3]。利用计算机的高速数据处理特性,来处理这些海量数据是必由之路,如何训练计算机使其具有像人脑类似的智能是当务之急。

以模拟人脑神经系统的工作原理的人工神经网络(ANN: Artificial Neural Network),主要解决非线性可分的复杂问题[1],

逐渐成为人工智能(AI: Artificial Intelligence)主要的技术之一。神经网络的主要思想是通过将非线性问题分解为若干线性问题,从而可以在每个神经元利用机器学习算法,如K均值(K-Means)和支持向量机(SVM: Support Vector Machine)[1-3]等。

1神经网络概述

1.1 神经元模型

神经元是神经网络进行信息处理的最基本单元[1],它既能处理线性数据,也能处理非线性数据,其模型如图1所示:

神经元模型由三种元素组成:突触、加法器和激活函数[1]。

此外,它还包含外部偏置,它根据其数值的符号和大小,来增加或减弱输入信号加权和通过激活函数对神经网络输入。神经元的信号传递特性由如下的线性代数式定义[1]:

1.2 神经网络

神经网络以分层结构为基本特征,根据功能的不同可分为三类[1]:输入层、隐藏层和输出层,如图2所示。神经元按所在网络层的不同,分别称为源节点、隐藏节点和输出节点。

根据网络中信息流动的不同,神经网络构造结构可分为[1]:

前馈网络和递归网络。前馈网络结构中,信息从源节点逐级向后传递,直到最后的输出节点;而递归网络结构中,神经元的输出与其输入会构成反馈环。神经网络的构造方式,与用于训练网络的学习算法紧密联系。

2多层神经网络以及反向传播学习算法

反向传播神经网络主要特征,是神经元的输出会反馈给其输入神经元,如图3所示。反向传播算法是基于多层感知器(神经网络)提出,是训练多层感知器的流行算法,由“前向阶段”和“反向阶段”两个阶段组成[1]:

(1)前向阶段:网络中各突触权值和偏置固定,输入信号(xi)从输入层开始在网络中一层一层沿着突触传播,直到到达输出层。在此阶段,函数信号在每个神经元的传递方式遵循式(1.1)和式(1.2)的定义。

(2)反向阶段:将前向阶段的输出信号(yj)与期望值(dj)之间的误差信号(ej)从输出层向输入层传播,并修改其经过的神经元突触权值wkj和偏置bk。

信号反向传播算法,是基于神经元的前向传播信号流在最小均方(LMS: Least Mean Square)误差[1,7]作用下的结果。图4为任意神经元前向信号流图。

根据神经元前向传播信号流,定义神经元j的诱导局部域定义为vj(n)[1]为:

定义总误差E(n)为所有输出层神经元的信号误差的平方和,设输出层有k个神经元,其中第j个神经元的输出信号误差ej为输出信号yj(n)与该信号期望值dj之差,记为:

反向传播在输出层和隐藏层的传播略微不同,主要體现在局部梯度δj(n)的计算方式不同,在输出层中的计算相对直接,在隐藏层中的梯度是基于其后一层的计算结果递归而得。

2.2 输出层神经元的反向传播算法

图5为输出层任一神经元的前向信号流图,根据其信号流图以及导数的链式公式得其局部梯度δj(n),并将式(2.5),(2.6)和(2.7)代入。故局部梯度式(2.10)在输出层的重写为:

2.3 隐藏层神经元的反向传播算法

图6为隐藏层任一神经元的前向信号流图,根据隐藏层的神经元的级联结构及其信号流图可以看出,(设神经元j的后一层有m个神经元)根据式(2.1)可得,后一层神经元k的诱导局部域对神经元j的输出信号yj(n)=xj(n)的偏导数为:

根据链式导数公式,神经元j的局部梯度δj(n)可以通过后一层所有神经元k的局部梯度δk(n), k=0,1,2…m递推而得。代入式(2.7),(2.10)和(2.13)可将式(2.10)在隐藏层的重写为:

3反向传播算法收敛速度的影响因素

本文用Python语言实现了多层感知器反向传播算法,并基于图7所示的2x2x1(2输入层源节点2隐藏层节点1输出层节点)多层感知器神经网络为例,以非线性可分的(或识别问题为对象,来研究反向传播算法的收敛速度的影响因素。

3.1 算法实现

本文实现的反向传播神经网络算法主要由三个模块组成:异或特性随机数据生成器、反向传播多层感知器和辅助模块。异或随机数据生成器主要负责异或随机数据生成,辅助模块与matplotlib库和numpy库接口,负责绘图和计算功能。反向传播多层感知器是核心,包括算法的前向阶段和反向传播阶段计算、误差统计、停止判断以及边界探测等功能,以及一个神经网络参数库,保存计算突触权值/偏置的最终结果和中间结果,以及临时结果(如每个神经元的输出和局部梯度等)。软件结构和算法实现的流程图如图8所示。

3.2 数据生成

设有点p0(0,0),p1(0,1),p2(1,0),p3(1,1),其中p0(0,0),p3(1,1)是一类数据,p1(0,1),p2(1,0)是另一类数据,区分这两类数据的就是非线性可分的异或识别问题:点的两坐标相同时,即(0,0)或(1,1),代表数据类I;点的两坐标不同时,即(0,1)或(1,0),代表数据类II。直观可知,区分两组数据可分别用两组相同斜率直线来实现:正斜率直线组和负斜率直线组。

为体现数据的随机性,并更接近应用实际,样本数据分别以点p0,p1,p2,p3为圆心,半径为0.2的范围内随机生成50个随机点,即每一类100个数据点。为简化数据的处理,不失一般性,对数据进行零均值处理,如下图所示。

为体现算法的普遍适用性,后面的每个实验的输入数据都是按照上述约束随机生成,并相互独立,以保证其独立同分布(iid: independent identical distributed)。

3.3 反向传播算法的收敛

由式(1.1)和(1.2)可知,神经网络特性由其中各神经元的突触权值(wji)、偏置(bj)和激活函数(φ(vj))决定。激活函数是事先决定的,突触权值和偏置是神经网络对数据的学习结果。学习过程收敛速度不仅与样本数据的复杂度有关,而且还与突触权值和偏置初值设定和学习率(η)设定直接相关。

(1)激活函数的选择

常用的激活函数有:逻辑函数、sigmoid函数和正切双曲函数等。较好的激活函数通常是单调奇函数[1],正切双曲函数满足这个条件,常作为激活函数使用。正切双曲函数定义如下:

选择合适的系数α和b是必要的,LeCun的研究建议下面的经验值[4-5]:

故本案選择的正切双曲函数将神经元的输出限制在(-1.7159,1.7159)范围内。

(2)学习率对收敛速度的影响

固定权值/偏置(wji、bj)初值表示的特征和激活函数φ(vj),来研究不同学习率η对算法收敛的影响。本小节的实验结果都是基于相同的提取特征(正斜率直线组)的两个特征初值为

(1,-1,1)和(-1,-1,1),然后通过选取不同学习率η来研究其如何影响学习算法的收敛速度、学习结果和学习曲线,如下图所示:

通过对比研究,可以发现:

1)当η小于或等于0.08时,学习曲线总能收敛,学习后的神经网络能清晰分开两类数据。

2)随着学习率η从0.005增加到0.08,学习率η每增加一倍,算法收敛所需的轮回数减少一半,即收敛速度提高一倍。正如式(2.9)表明的权值修正量△wji(n)与学习率η成正比,即相同初始总误差(由权值初值决定),权值修正量△wji(n)增加一倍,总误差收敛到0(接近于0)所需要的轮回数减少一半,如下图表所示:

3)学习率太大(η=0.16)时,学习曲线出现震荡现象,学习后的神经网络会导致部分误判。为了进一步研究学习率对学习曲线震荡的影响,下图对比了学习率从0.08到0.2区间的变化情况。可以看出:

①对于非收敛学习率,随着学习率值η越大,学习过程震荡越严重。

②对于非收敛学习率,随着学习率值η越大,学习过程震荡发生得越早。

(3)特征提取初值对收敛速度的影响

神经网络中每个隐藏层的神经元对数据样本的特征提取,是通过该神经元的所有突触权值和偏置体现的,神经网络的学习过程就是找到各神经元的最优特征参数(突触权值和偏置)。

反向传播神经网络是通过设置初始的突触权值和偏置,反复利用输入信号在前馈网络的传播和错误信号的反向传播来修正各神经元的特征权值和偏置,最终找到最优的突触权值和偏置。因此,在给定的神经网络结构和算法的情况下,不同的初始特征参数值的设定策略直接影响网络的收敛速度。

下面通过固定收敛学习率(η=0.01),来研究不同的特征参数初值设定策略对网络的收敛的影响。

全0初始化策略:初始化变量为0是算法设计的常用方法,但是对具有特殊物理含义的神经网络的突触权值和神经元偏置的初始化,0代表神经元之间的连接强度为零。零权值不仅将阻止信号从前向后传播,而且阻止误差信号从后向前反向传播,从而导致突触权值和偏置无法根据输入、输出信号进行自适应调整。此时,只有输出层的偏置会根据误差值进行调整。经过50轮回的学习,各神经元突触权值和偏置收敛结果如下:

结合上图可以看出,①网络收敛速度很快(因为只有输出层的偏置会根据误差值进行调整);②最终均方误差较大(0.253033);③网络的输出值与输入无关,只与输出层偏置有关,该输出值正好是两类数据期望值的“最优”中间值,即两类数据的分界边缘。

故该初始化策略,不能使网络学习到有用的特征信息,起不到任何数据区分作用。

全1初始化策略:初始化突触权值和神经元偏置为1,不仅代表所有神经元之间的全连接,更重要的是根据学习过程可知,相同的特征初值使同层的神经元表现出相同的学习过程,进而其突触权值和偏置收敛到相同值(由局部收敛性决定)。对本例的非线性可分的异或问题,样本数据至少具有两个特征(参见3.2节),这就意味着至少将要丢失一个特征信息。由下表和下右图所示的实验结果可知,①收敛后学习曲线上的总误差较大(0.2487747);②较高的错误识别率。

故神经网络权值和偏置的全1初始化策略,对异或问题样本数据的学习只能找到数据的一个特征,有较高的识别误差率。

已知初始化策略(正斜率直线组):根据本例的先验知识可知,异或问题的数据有两种特征表现(参见3.2节):两根正斜率直线或两根负斜率直线。

对正斜率直线组,初始化隐藏层两个神经元特征为:(w10,w20)=(1,-1), b0=w00=1; (w11,w21)=(1,-1), b1=w01=-1。经过200轮回的网络学习,各神经元突触权值和偏置收敛结果如下:

结合下图可以看出,①网络收敛速度相对较快(约200个轮回);②最终均方误差较小(0.00363874);③有清晰的区分边界,错误识别率低。

已知数据全部特征的情况下,网络收敛快、识别错误率低,找到区分数据的最优解。

已知初始化策略(负斜率直线组):对负斜率直线组,初始化隐藏层两个神经元特征为:(w10,w20)=(1,1), b0=w00=1; (w11,w21)=(1,1), b1=w01=-1。经过300轮回的网络学习,学习所得网络特征参数为:

结合上图可以得到与“已知初始化策略(正斜率直线组)”实验中相似的结论。

随机初始化策略:在未知数据的确切特征情况下,通过随机数生成各神经元的突触和偏置的初值是可行的方案。通过这种方案得到网络的初值后,经过500轮回的随机初始化突触权值和偏置的学习,学习结果呈现一定随机性,大约有80%左右的网络能收敛到两个特征,数据被正确分类,且总均方误差保持在较低水平(0.01425589),如下图表所示。

另外20%的结果,不尽如人意,学习结果的均方误差较高,从而边界不清晰,与数据有重叠现象。

分析原因,大概有两类:一是随机生成的权值/偏置初值相似,导致相应的神经元提取的特征都收敛到同一个“局部最优”特征上,从而使一部分特征丢失;二是随机生成的权值/偏置初值太小,根据式(2.11)知总误差对其偏导数过大,进而使对其修正值△wji过大,从而导致学习过程震荡,根据3.2.2节的结论可以通过降低学习率来缓解,但是以降低收敛速度为代价。

4结束语

多層感知器神经网络反向传播学习算法的收敛速度,与学习率η的大小成正比,但其值太大会导致学习过程震荡而不收敛,建议取小于10-2的值;各神经元突触权值和偏置的初值选择对网络的收敛起着重要作用:①根据数据特征有目的地设置各神经元突触和偏置是最佳选择;②随机选择各突触权值/偏置次之,此时应选择相对较小学习率η以应对可能的较小随机初值,以避免学习过程震荡;③单特征的线性数据可以用全1初始化;④避免使用全0初始化突触权值/偏置。

参考文献

[1] Haykin S.神经网络与机器学习[M].3版.北京:机械工业出版社,2011:207.

[2] Mohri M,Rostamizadeh A,Talwalkar A. Foundation of Machine[M]. Cambridge:MIT press,2012:65.

[3] Murphy K.Machine Learning:A Probabilistic Perspective[M]. Cambridge:MIT press,2012:109.

[4] LeCun,Y.Efficient Learning and Second-order Methods[C].Conference and Workshop on Neural Information Processing Systems. Denver,1993:11.

[5] Le Cun Y.Generalization and network design strategies,CRG-TR-89-4[R].Toronto:University of Toronto,1989.

作者简介

陈文云(1970-),男,重庆合川人;学历:博士,职称:副教授,现就职单位:百色学院,研究方向:并行计算,机器学习、大数据以及人工智能相关的算法和系统。

猜你喜欢
人工神经网络支持向量机人工智能
基于人工神经网络的故障诊断专利浅析
2019:人工智能
人工神经网络发展历史与训练算法概述
人工智能与就业
数读人工智能
基于人工神经网络的优化配置研究
动态场景中的视觉目标识别方法分析
论提高装备故障预测准确度的方法途径
基于熵技术的公共事业费最优组合预测
基于支持向量机的金融数据分析研究