感知器神经网络模型研究
2014-09-05何立群占永平
何立群 占永平
(1九江学院信息科学与技术学院;2九江学院信息技术中心 江西九江 332005)
感知器神经网络模型研究
何立群1占永平2
(1九江学院信息科学与技术学院;2九江学院信息技术中心 江西九江 332005)
文章介绍人工神经网络中的典型模型单层感知器和多层感知器,给出标准的感知器学习算法及算法的实现步骤,在此基础上介绍了感知器神经网络模型的改进算法,并对这些算法的特点进行了分析。
感知器,神经网络,多层感知器
感知器是人工神经网络中的一种典型结构,它的主要的特点是结构简单,对所能解决的问题存在着收敛算法,并能从数学上严格证明,从而对神经网络研究起了重要的推动作用。虽然它提出的时间较早,至今却仍然对其它复杂的算法具有指导意义。
1 神经网络及感知器
人工神经网络是脑科学、神经心理学和信息科学等多学科的交叉研究领域,它在模式识别、机器学习、专家系统等多个方面得到应用,成为人工智能研究中的活跃领域。神经网络由一个或多个神经元组成。一个神经元包括输入、输出和“内部处理器”。神经元从输入端接受信息,通过“内部处理器”将这些信息进行一定的处理,最后由输出端输出。
感知器(Perceptron)是神经网络中的一个概念。感知器模型是美国学者罗森勃拉特(Rosenblatt)为研究大脑的存储、学习和认知过程而提出的一类具有自学习能力的神经网络模型,它是第一个机器学习模型。它把对神经网络的研究从纯理论探讨引向了从工程上的实践。感知器是经典的线性分类模型,是神经网络和支持向量机的基础。
2 单层感知器
Rosenblatt提出的感知器模型是一个只有单层计算单元的前向神经网络,称为单层感知器(Single Layer Perceptron),它是一种二元线性分类器。
2.1 单层感知器模型
单层感知器是最简单的神经网络,它包含输入层和输出层,而输入层和输出层是直接相连的。单层感知器模型的结构如图1所示。
图1 感知器神经元模型
图1显示,对于每一个输入值X=(x1,x2,…xd),通过一个权重向量W,进行加权求和,并作为阈值函数的输入,可以写成如下线性函数的形式:
(1)
式(1)中,xi是输入分量,wi是权值分量,w0是阈值,O是目标输出。作为分类器,可以用已知类别的模式向量或特征向量作为训练集。利用式(1),计算输入层中,每一个输入端和其上的权值相乘,然后将这些乘积相加得到乘积之和。如果乘积和大于临界值(一般是0),输出端就为1;如果小于临界值,输出端就为-1,将输入向量分成了两类,从而实现分类器的作用。
由感知器的模型结构可以看出,感知器的基本功能是将输入向量转化成1或-1的输出,这一功能可以通过在输入向量空间里的作图来加以解释。如果样本是二类线性可分的,则线性方程WX+w0=0是特征空间中的超平面,该超平面将特征空间划分成两个部分,模型的权值W与w_0确定好之后,当WX+w0≥0时,训练点会落在这个超平面的正例区;当WX+w0<0时,则会落在负例区。训练的目标是通过调整权值,使神经网络由给定的输入样本得到期望的输出[1]。
出于简化计算和方便推导的目的,假设x0=1,公式(1)可以写作:
O=f(WTX)
(2)
2.2 单层感知器学习算法
感知器习算法可以用来调整模型的权值,对于已有的训练样本,计算得到一个权值矩阵W,使得WTX=0这个超平面能够完全将两类样本分开。
假设训练样本集{(X1,Y1),(X2,Y2),…(Xm,Ym) },Xi∈Rd,Yi∈{+1,-1},m是训练集的总样本数。对于t=0,1,…,设Xi(t)是t时刻感知器的输入(i=1,2,…,m),Wi(t)是相应的权值,Yi(t)是正确的输出。下面给出PLA算法的实现步骤:
(1)首先将权值向量W进行初始化,可以为0或较小的随机数;
(2)循环遍历每个样本,计算函数的目标输出,将输出值与正确值相比较,如果f(WtTXm(t))=Y(m(t)),则跳过;
(3)如果f(WtTXm(t))≠Y(m(t),即找到一个错分的wt,此时该样本被称为(xm(t),yn(t));
修正这个错误,用下面的式子来调整权值:
W(t+1)←Wt+ηYm(t)Xm(t)
其中η为学习速率。
(4)重复(2)和(3)权值调整过程,直到所有的训练样本都分类正确或达到预先设计的训练次数,则停止训练。
PLA的主要功能是通过对训练样本集的学习,得到判别函数权值的解,产生线性可分的样本判别函数,从而判别样本所属的类别,实现分类器的作用。该算法属于非参数算法,优点是不需要对各类样本的统计性质作任何假设,属于确定性方法[2]。
3 多层感知器
单层感知器的缺点是只能解决线性可分的分类模式问题。对于非线性问题,采用多层网络结构可以增加网络的分类能力,即在输入层与输出层之间增加一个隐含层,从而构成多层感知器(Multi-layer Perceprons)。由输入层、隐含层(可以是一层或多层)和输出层构成的神经网络称为多层前馈神经网络。多层感知器的拓扑结构如图2所示。
图2 多层感知器模型
3.1 反向传播(Back Propagation,BP)算法[3]
反向传播算法也称为误差后向传播神经网络,它是一种用于前向多层神经网络的反传学习算法,也是神经网络模型中应用最广泛且最重要的一类学习算法。它具有理论依据坚实、推导过程严谨及通用性好的优点。
BP算法的学习过程由信号的正向传播与误差的反向传播两个过程组成,即:①正向传播:输入层接收外来的输入样本,各隐含层进行逐层处理后,输出层输出结果。将输出层的实际输出与期望输出进行比较,若两者不相吻合,则进入误差的反向传播阶段;②误差反向传播:用输出后误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此逐层反传下去,各层单元产生的误差信号,用来修正各单元误差(权值),以期误差最小。
在BP模型的学习训练过程中,可利用一些方法如梯度下降法,使权值不断的朝着输出误差减少的方向调整,直到网络输出的误差减少到允许的程度,或者可以事先指定必要的学习次数,达到既定次数即可停止训练。由此可知,BP算法的信号正向传播与误差反向传播的各层权值的调整过程是交替的、多次反复的。
BP算法的主要步骤如下:
(1)初始化:取一对BP网络输入样本(X,Y),m为输入结点的个数,对权值向量W赋较小的非零随机值,并设置学习步长η,允许误差ε;
(2)正向计算隐含层节点和输出层节点的输出:
隐含层节点输出Oj=f(∑i=1mWijXi),j=1,2,...,p,p为隐含层节点的个数;输出层节点输出Yk=f(∑i=1pWik(2)Op),k=1,2,...,n,n为输出结点的个数,f为非线性可微非递减函数,一般取为Sigmoid型函数;
(4)反向计算隐含层节点误差;
(5)修正各层的权值;
(6)取下一对样本返回(2)处进行循环,直到全部样本训练结束。
4 感知器算法改进研究
由于感知器自身结构的限制,使得它在实际应用中具有局限性,如原始的单层感知器只能处理线性可分问题,对线性不可分问题,算法在计算过程中会发生振荡现象,即算法无法停止。因此,对于有杂音的数据,人们只能期望找到错误最少的结果。在实际工作中,很多学者设计出各种准则以使算法中止,Gallant提出一种感知器的改进算法,即在PLA的迭代过程中引入一个口袋权向量来存放正确运行次数最多的感知器权向量,其目标是找到一个错分样本最少的解(最优解)。Gallant称这一改进算法为口袋算法(Pocket Algorithm),并且证明了对于整数和有理数输入情况下口袋算法的收敛性。Pocket PLA是一个贪心的近似算法,可以处理线性不可分问题,较好地解决了样本中的噪音数据和矛盾数据。
线性口袋算法改进了线性感知器算法,能够直接处理线性不可分问题。核感知器算法则利用核思想非线性地推广了线性感知器算法,使其可以处理原始输入空间中的非线性分类问题和高维特征空间中的线性问题。国内许健华、张学工等学者提出基于核函数的非线性口袋算法,即核口袋算法,其目标是找到一个使错分样本数最小的非线性判别函数,并证明了其收敛性。核口袋算法的特点是用简单的迭代过程和核函数来实现非线性分类器的设计。
此外,还有一些学者提出的平均感知器(Averaged Perceptron, AP)算法、信任权(Confidence Weighted, CW)学习算法、表决感知器(Voted Perceptron, VP)算法、被动主动(Passive Aggressive, PA)算法等等,都对原感知器算法进行了改进,它们或克服了学习速率过大所引起的训练过程中出现的震荡现象、或提高了分类准确性、或加快了学习速度、或解决不可分数据的问题。
除单层感知器外,许多学者对多层感知器BP网络进行了研究,认为该学习算法的收敛速度慢,需要较长的训练时间。从数学角度看,BP算法采用了按误差函数梯度下降的方向进行收敛,这就可能出现局部极小的问题,当迭代陷入局部极小值时,人们误认为得到了问题的解,其实误差符合要求的并不一定是真正的解;网络中隐含层节点个数的选取也是凭经验,尚无理论上的指导。为了让BP算法更好地应用在实际,国内外许多学者对算法进行了有效的改进。BP网络的改进算法大体上分为两类,一类是采用启发式技术,如附加动量法、自适应学习速率法、BP弹性(RPROP )方法等[4]:
(1)附加动量法。它在标准的BP算法修正权值时,在每一个权重的变化上加上一项动量因子,动量因子正比于上一次权重变化量的值,并根据反向传播法来产生新的权重的变化。在没有附加动量的作用下,网络可能陷入局部极小值,利用附加动量的作用有可能跳过这些极小值。这是因为附加动量法在修正其权值时,考虑了在误差曲面上变化趋势的影响,从而抑制了局部极小,找到误差曲面的全局最小值。这里动量因子实质上起到了缓冲的作用,它减小了学习过程的振荡现象,一定程度上加快了BP算法的收敛速度。
(2)自适应学习速率算法。标准BP算法的学习速率采用的是确定值,学习速率的选择非常重要,学习速率选得小虽然有利于总误差缩小,但会导致收敛速度过慢。学习速率选取得太大,则有可能导致无法收敛。为了解决这一问题,可以采用自适应调整学习效率的改进算法,此算法的基本思想是根据误差变化而自适应调整。如果权值修正后确实降低了误差函数,则说明所选取的学习速率值小了,应增大学习速率;如果没有则说明学习速率调得过大,应减小学习速率。总之使权值的调整向误差减小的方向变化。自适应学习速率算法可以缩短训练时间。
(3)动量-自适应学习速率调整算法。这一算法采用了附加动量法和自适应学习速率法两种方法的结合,既可以找到全局最优解,也可以缩短训练时间。此外,还有学者提出了隐含层节点和学习效率动态全参数自适应调整等算法,有效地改善了收敛效果。
另一类BP改进算法是对其进行了数学上的优化,如拟牛顿法在搜索方向上进行了改进;共轭梯度法则是在收敛速度和计算复杂度上均能取得较好效果,特别是用于网络权值较多的情形;Levenberg - Marquardt 法则结合了梯度下降和牛顿法的优点,在网络权值不多的情形下,收敛速度很快,优点突出。
5 结束语
神经网络是计算机智能和机器学习研究、开发和应用最活跃的分支之一。尽管经典感知器算法只能处理线性可分问题,但它是广大模式识别和神经网络研究人员所熟悉的最简单的学习机器,也是后来发展的许多复杂算法的基础。
[1]机器学习.笔记(三)k近邻算法和感知器模型[EB/OL]. http://blog.sina.com.cn/s/blog_62b0682a0101e8e0.html. 2013-04-18.
[2]刘建伟,申芳林,罗雄麟. 感知器学习算法研究[J]. 计算机工程,2010,36(7):190.
[3]蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.121.
[4]王坤.神经网络的特点及改进方法综述[J]. 科技广场,2011,24(7):227.
(责任编辑胡安娜)
2014-10-22
何立群,25871687@qq.com。
TP 273
A
1674-9545(2014)04-0037-(04)