时间:2023-03-01 16:26:58
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇神经网络设计,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
关键词: Matlab; 串联BP; 多函数拟合; 自定义网络
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2013)22?0014?03
0 引 言
BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland提出的,它是一种误差按反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络具有非常强的非线性映射能力,能以任意精度逼近任意连续函数,因此在人工智能的许多领域都得到了广泛的应用,如函数逼近、模式识别、分类和数据压缩等领域[1?2]。由于目前一个神经网络只能同时对一个函数进行拟合,针对此本文提出了一直串联BP网络同时实现两个函数的拟合。
1 BP网络结构与学习算法
BP神经网络是目前应用最广泛的拓扑结构。BP模型是一种多层前向网络,这里采用的是三层BP神经网络模型,它由输入层、隐层和输出层组成,其结构如图1所示,分别为:
(1)输入层节点,其输出等于[xi]([i]=1,2,…,n),将控制变量值传输到隐含层;
(2)隐层节点[j],其输入[hj],输出[oj] 分别为:
[hj=i=1nwjxi-θj=i=1n+1wjxi]
[oj=f(hj)]
(3)输出节点[k],其输入[hk],输出[ok] 分别为:
[hk=j=1m+1wjkoj]
[ok=f(hk)]
式中:[k]=1,2,…,[l];[f]为传输函数。
BP算法分两步进行,即正向传播和反向传播[3]。
(1)正向传播
输入的样本从输入层经过隐单元逐层进行处理,通过所有的隐层之后,在传向输出层。在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。
(2)反向传播
反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小[4]。
2 BP网络的串联模型
神经网络串联即由两个或两个以上的神经网络串联所组成的新型网络模型,用于串联的各神经网络称为子神经网络。神经网络串联模型中的各子神经网络首尾相连,如图2所示。
假设总的神经网络由k个子神经网络串联而成,即第一个神经网络的输出作为第二个神经网络的输入,第二个神经网络的输出做为第三个神经网络的输入,以此类推下去。每一个子神经网络均由同类型的神经网络构成,在本文中,每一个子网络都采用最常用的BP神经网络,其子网络的构建都遵循现有的BP网络的构建形式,其基本的子网络结构采用三层模式,一个输入层,一个隐含层和一个输出层[5?6]。
通过Matlab神经网络工具箱的自定义的方法来实现两个子BP网络的串联。
部分程序如下所示:
net=network;
net.numinputs=2;
net.numlayers=6;
net.biasConnect=[1;1;1;1;1;1];
net.inputConnect=[1 0;0 0;0 0;0 1;0 0;0 0];
net.layerConnect=[ 0 0 0 0 0 0;1 0 0 0 0 0 ;0 1 0 0 0 0;
0 0 1 0 0 0 ;0 0 0 1 0 0;0 0 0 0 1 0];
net.outputConnect=[ 0 0 1 0 0 1];
网络的拓扑结构如图3所示,其中每个子网络的隐含层节点为20个,传递函数为tansig,输出层采用线性函数[7]。
3 实验测试与分析
运用本串联BP网络在Matlab 2011的环境中同时对两个目标函数进行拟合。其目标函数为:
目标函数1:
[y=sin x]
目标函数2:
[y=x(1-16x2)e-x]
训练样本输入的设置:输入样本p={p1’,p1’}其中p1=[-1:0.05:1],目标向量T={t1’;t2’},其中t1= sin(3*pi*p1),t2= p1.*(1-1/6*p1.^2).*exp(-p1)。并加入噪声t3=sin(3*pi*p1)+0.15*randn(size(p1));t4=t2+0.15*randn(size(p1));T={[t3]’;[t4]’};对其进行训练仿真[8?10]。
网络的输出y包含了两个待拟合函数的拟合后的数据通过下面操作:
y1=cell2mat(y);
y2=y1’;
a=y2(1:1:41);
b=y2(42:1:82);
得到各自的拟合数据。
仿真结果如图4~图6所示。
由图4、图5仿真拟合曲线与待拟合函数曲线的比较可以看出此串联网络在通过加噪声的训练样本训练后能够很好的对两个待拟合函数进行拟合。由图6知在经过342次训练后其误差达到了0.000 978。可见,通过此串联BP神经网络准确地拟合了待拟合函数曲线。
4 结 语
通过以上叙述可以看出本文设计的串联神经网络能够和好地对函数曲线进行拟合,为同时实现多函数曲线的拟合提供了新的方法。
参考文献
[1] 张雨浓,蔡炳煌.人工神经网络研究进展及过程[M].北京:电子工业出版社,2010.
[2] 蒋正金,汪晓东,端木春江.采用BP神经网络拟合光纤位移传感器特性曲线[J].微型机与应用,2012,31(4):67?69.
[3] 郭军.BP神经网络算法研究[D].武汉:华中科技大学,2005.
[4] 贾丽会,张修如.BP算法分析与改进[J].计算机技术与发展,2006,16(10):102?107.
[5] 刘华,高大启.RBF_LBF 串联神经网络的分类应用及其学习算法[J].计算机应用,2004,24(10):100?104.
[6] 邓秋香.神经网络串并联学习算法在B超图像识别中的应用[D].武汉:武汉理工大学,2008.
[7] 张德丰.Matlab神经网络应用设计[M].北京:机械工业出版社,2012.
[8] 陈小宇,乔翠兰,汪瑞祥,等.基于BP算法神经网络的物理实验曲线拟合[J].物理实验,2002,22(9):10?13.
[9] 李洁.BP网络的算法及在Matlab上的程序仿真[J].西安航空技术高等专科学校学报,2009,27(1):42?43.
【关键词】PID控制;BP神经网络;模糊PID控制
Abstruct:PID control are widely used in industrial process control,but the traditional PID control because of its control parameters are fixed,and it is difficult to adjust its parameters online.So this paper studies a new adaptive fuzzy PID control method,to solve problem without the ability to learn,and put forward a kind of adaptive fuzzy control method based on BP neural network in this paper.It is the effective combination of fuzzy control,neural network and PID control.Simulation results show that this fuzzy PID control method based on BP neural network has good control effect.
Keywords:PID control;BP neural network;Fuzzy PID control
1.引言
常规PID在控制领域被广泛应用,利用数学算法来整定参数。而且随着控制系统的复杂,被控对象很难建立数学模型,人们开始探索新的控制方式。模糊控制不要求掌握被控对象的精确的数学模型,根据人工控制规则组织控制决策表,然后由该表决定控制量的大小。在一般的模糊系统设计中,规则是由经验丰富的专业人员以语言的方式表达出来的。但对于某些问题即使是很有经验的专业人员也很难将他们的经验总结、归纳为一些比较明确而简化的规则。在这种情况下,就可以应用神经网络的方法,依靠BP神经网络的自学习功能,实现模糊控制的神经、模糊融合技术,并借助其并行分布的结构来估计输入到输出的映射关系,直接从原始的工作数据中归纳出若干控制规则。从而为模糊系统建立起行之有效的决策规则。
2.PID控制器原理
2.1 PID控制的微分方程
PID控制器是一种线性控制器,它将给定值r(t)与实际输出值c(t)的偏差的比例(p)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。
式中:
2.2 PID控制器各环节的作用
(1)比例环节:及时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用以减小偏差。
(2)积分环节:积分作用会使系统稳定性下降,Kd大会使系统不稳定,但能消除静态误差。
(3)微分环节:能反应偏差信号的变化趋势,并能在偏差信号值变得太大之前,在系统中引入一个早期修正信号,从而加快系统的动作速度,减小调节时间。Kd偏大时,超调较大,调节时间短;Kd偏小时,超调量也较大,调节时间长;只有Kd合适时才能超调小,时间短。
3.BP神经网络与模糊控制
模糊控制是运用语言归纳操作人员的控制策略,运用变量和模糊集合理论形成控制算法的一种控制。如何让机器像人一样识别、理解模糊规则并进行模糊逻辑推理,最终得出新的结论并实现自动控制是模糊控制研究的主要内容。模糊控制器的基本结构如图1所示。
图1 模糊控制结构
人工神经网络是由大量人工神经元经广泛互连二组成的,它可用来模拟脑神经系统的结构和功能。人工神经网络可以看成是以人工神经元为节点,用有向加权弧连接起来的有向图。BP网络是一种利用误差反向传播训练算法的神经网络,是一种有隐含层的多层前馈网络,系统地解决了多层网络中隐含单元连接权的学习问题。BP学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。网络学习过程是一种误差边向后传播边修正权系数的过程。其结构如图2所示。
图2中隐含层第一层神经元为7个,分别对应7个模糊子集:NB、NM、NS、ZO、PS、PM、PB。第二层49个神经元代表49条规则。第三层7个神经元代表输出的7个模糊子集。模糊控制不依靠对象的数学模型,但模糊规则的建立需要人工经验。采用BP算法对工程经验和专家经验的模糊规则进行训练,其实就是把模糊规则用神经网络来表示,即经过神经网络的学习,将模糊规则以加权系数的形式表现出来,规则的生成就转化为加权系数的确定和修改。
神经网络是大规模并行运算,但由于网络结构复杂,训练和学习需要大量的时间,所以目前还无法实现实时控制。在具体应用中,我们是先离线将神经网络的各层权值和阈值训练出来,将其参数固定下来,然后将有系统检测、计算得到的误差变化直接代入非线性映射关系中,由计算机算出控制量,再用作被控对象。在matlab下以、、为输出的BP网络仿真训练如图3、图4、图5所示。
4.模糊PID控制器的原理与仿真
对于某一BP神经网络控制系统,其中内部变化及被控对象的数学模型为:
利用模糊控制对PID参数实现在线调节,原理如图6。
图6 模糊PID控制原理图
采用Z-N法和试凑法相结合,借助MATLAB的SIMULINK平台,对被控对象进行常规PID仿真。参数值:kp=15,ki=6,kd=0.05。如图7。作为比较,建立模糊PID控制器的仿真模型如图8。
图9、图10分别为被控对象G(s)在阶跃输入下常规PID和模糊PID仿真结果的比较。
经过仿真发现,常规PID控制缺点是超调量大,调节时间长,动态性能差。优点是控制精度高,稳定性能好。模糊控制动态性能很好,上升速度快,基本无超调。但由于模糊化所造成的稳态误差,在没有积分环节的情况下很难消除,故稳态性能差。模糊PID继承了二者的优点,摒弃二者缺点,具有更全面优良的控制性能。
5.结论
针对大滞后、慢时变、非线性的复杂系统,提出了一种基于BP神经网络的模糊PID控制算法,该算法不依赖被控对象的精确数学模型,可实现在线自调整模糊规则,从而增强了模糊控制器的自学习能力。通过算法的仿真研究,验证了算法的可行性。
参考文献
[1]李华.计算机控制系统[M].北京:机械工业出版社,2007.
[2]高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社,2007.
[3]蔡自兴.智能控制[M].北京:电子工业出版社,2003.
[4]李国勇.智能控制及其MATLAB实现[M].北京:电子工业出版社,2005.
[5]张德丰.MATLAB神经网络应用设计[M].北京:机械工业出版社,2009.
[6]刘金琨.先进PID控制及其MATLAB仿真[M].北京:电子工业出版社,2003.
[7]刘玲.三容水箱的单神经元自适应PID控制研究[J].信息技术,2005,3(8):32-137.
关键词:模糊神经网络;PID;控制系统;非线性
中图分类号:TP183 文献标识码:A文章编号:1007-9599 (2011) 20-0000-02
Design of Control System Based on FNN PID
Duan Zhengjun1,Zhao Ran1,Tian Wenxue2
(1.TISCO Stainless Steel Pipe company,Taiyuan030000,China;2. China Chemical Engineering Second Construction Corporation,Taiyuan030000,China)
Abstract:At present,many of intelligent algorithm apply to the non-linear control system,it is intelligent control systems,for example,neural network,fuzzy control.According to the neural networks and fuzzy control in this article,introduced design principles and implementation based on neural nerwork and PID algorithm.
Keywords:Fuzzy neural network;PID;Control System;Nonlinear
一、引言
模糊神经网络(FNN)是模糊逻辑控制和神经网络两者结合的产物。模糊逻辑控制和神经网络两者单独使用时候,都会有一定的缺陷。模糊逻辑在一定的论域上面有很好的收敛性,在进行模糊量的运算上有优势;而神经网络具有强的自学习、自适应、并行运算和精确计算的能力。因此,两者结合可以优势互补,从而很大提高综合能力。FNN-PID是将模糊神经网络融进PID算法中,实现二者结合。FNN-PID算法具有PID控制器优点、模糊控制的良好收敛性和对模糊量的运算优势,也有神经网络自学习、自适应的特性。
二、FNN系统结构
FNN具有很多种结构和算法,对于不同的控制对象,在综合考虑运算速度和精度的情况下,可以使模糊神经网络结构有所不同。本文模糊神经网络采用如图1的结构,两个输入变量是有 、 ,为误差E与误差变化量EC。输出变量为Y,为PID三要素中的一个。根据专家经验知识把每个输入因子分为(NM,NS,ZO,PS,PM)五个模糊状态记为T[ ]。
图1.模糊神经网络的结构
第一层至第三层是实现模糊控制规则,第四层去除模糊化并实现输出实际控制对象的值,每层的作用如下:
第一层为输入层,该层的节点直接与输入层相连,起着将输入向量X传送到下一层的作用,其节点个数等于输入变量个数。输入输出关系可表示为:
, i=1,2(1)
第二层为隶属函数层,其作用是计算输入量属于各语言变量值模糊集合的隶属函数值,节点个数 ,每个节点代表一个模糊集合,可表示为:
, j=1,2,3(2)
式中j―― 的模糊分割数, 、 ――高斯函数中第j个输入对第i个结点的中心和宽度。
第三层为模糊规则层,每个节点代表一条模糊规则。采用IF-THEN模糊规则,可表示为:
:If is and is and…is THEN Yis(3)
式中,1≤n≤2,1≤i≤3: (4)
第四层为输出层: (5)
三、FNN的学习算法及步骤
在学习方法上,我们选择在线学习,在线学习就是针对整个训练集的每一个输入和对应的输出要求,每学习一条规则,就进行一次连接权的调整;这样一轮一轮不断的自动的调整网络连接权,知道整个网络达到所有的要求的响应为止。学习目的是对产生样本规律的统计特性进行建模,从具体观测推测隐含的规律,输出结果与样本接近。为了提高测量的精度,要求 、 和 三个参数能够适应环境的变化,即可实时调节高斯隶属函数和连接第三、第四层的权重比。具体算法如下:
式(5)可以按下式表示:(6)
设 , , ,从而得到式(6)的简化形式为: ,由式子(6)和式子(7)得到(8)式:
(9)
(10)
定义输出误差为: (11),其中 ――k时刻的输出值, ――k时刻的输出期望值。
定义系统的性能指标为:(12)
采用反方向传播方法进行监督学习,使性能指标E值最小化。根据梯度下降方法有:
以上式子分别为(13),(14),(15)。其中 为学习速度,由于采用在线学习,那么 为一个定值。根据性能指标选取规则和专家经验知识,取终止条件为E≤0.005,具体的学习步骤如下:
步骤1: 、 、 及 的初始值在[0,1]之间随机选取, 的值为恒定值,根据经验决定。
步骤2:根据式子(11),(13),(14),(15)计算得出比较理想的 , , 值。
步骤3:根据式子(12)计算E,若E≤0.002,迭代结束。否则,令 , , 为初始值并返回步骤2。
四、PID-FNN系统的设计及实现
根据FNN结构可知,输入是误差和误差变化量,输出是PID控制参数中的一个,故我们设计PID-FNN系统时要使用3个FNN,选择这样的FNN结构是为了更加精确的得到PID所需要的修正值。当然,这里所用的FNN是已经结束学习过程的。PID-FNN控制系统的具体结构如图2所示。
PID-FNN系统具体实现过程如下:①根据FNN的学习算法,通过提供的样本对FNN-Kp、FNN-Ki和FNN-Kd进行训练,使其得到合适的权值,满足性能指标为止。②误差和误差变化量做归一化处理,作为FNN-Kp、FNN-Ki和FNN-Kd的输入。③根据式子(1)(2)(4)(5)计算FNN的各层的输出,FNN-Kp、FNN-Ki和FNN-Kd最后一层的输出就是PID控制参数Kp、Ki和Kd的修正值。④利用③中得到的修正值,对经典PID控制器所得出的Kp、Ki和Kd的值进行修正。⑤Kp、Ki和Kd的修正后的值传送给控制对象,并由图2中所示,控制结果反馈回到计算误差处进行误差计算。由此跳转到②步。
图2.FNN-PID系统结构
五、结束语
FNN融合了模糊控制和神经网络的特点,本文利用这一点设计了PID-FNN控制系统并予以实现。文章中介绍了FNN的系统结构和学习过程的算法以及步骤,然后设计了PID-FNN的系统结构,并且描述了具体的实现过程。
本文作者创新点:模糊神经网络(FNN)是模糊逻辑控制和神经网络两者结合的产物。两者结合可以优势互补,从而很大提高综合能力。从而能够更迅速、更精确的对PID参数进行修正,已达到最佳的控制状态。
参考文献:
[1]李士勇.模糊控制,神经控制和智能控制论[M].哈尔滨:哈尔滨工业大学出版社,1996
[2]曾黄麟.智能计算[M].重庆:重庆大学出版社,2004
[3]晁勤,傅成华.自动控制原理[M].重庆:重庆大学出版社,2005
[4]武嘉.辅助控制系统设计与仿真[M].北京:电子工业出版社,2005
关键词:邮件过滤;预处理;特征选择;神经网络集成
中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)01-171-03
The design of Spam Filtering System Based on Neural Network Ensemble
LIU Bao-ping, LI Ai-jun
(Information Management,Shanxi University of Finance & Economics,Taiyuan 030006,China)
Abstract: It is a very important function to deal with spam in the email services.On the basis of expressing the standard email corpus as the form of vector space model,and reducing the emails dimension,this paper uses neural network ensemble to construct the email classifier,then to filter the email;this method experiments on the spam corpus,it proved that the method of the spam filtering is effective.
Key words: email filtering;preprocess;feature selection;neural network ensemble
随着Internet的普及,垃圾邮件问题日益严重。垃圾邮件不仅占用网络带宽,降低整个网络运行效率,给用户时间和精力造成极大浪费,而且可能侵犯收件人隐私权,成为黑客利用的工具,对现实社会造成危害。对电子邮件进行过滤是有效对付垃圾邮件的主要手段。
目前,很多研究者已经对垃圾邮件的过滤方法进行了研究,其主要的邮件过滤方法有:1)黑白名单过滤,提供实时的黑白名单服务。其优点是节省带宽,缺点是对垃圾邮件识别率不高。2)基于规则的过滤方法,设置一些规则对邮件进行评估,邮件特征符合规则则加分,分数达到预先设定的阈值就判定为垃圾邮件。优点是易理解、推广,缺点是依赖于不断地更新邮件规则。3)基于统计的过滤方法,是针对邮件内容进行过滤的一种机器学习的方法,过滤正确率高,速度快,被认为是垃圾邮件处理技术中很受欢迎的一种方法[1]。这种基于机器学习的过滤方法已成为当前研究的主要方向,已有的算法包括贝叶斯分类方法、神经网络方法、KNN方法、Winnow方法等。但如何进一步提高邮件分类的准确率成为新的研究目标。
要提高邮件分类的准确率,分类器设计就成为邮件过滤过程中极其重要的环节。目前基于机器学习的分类方法已有多种,其中,基于神经网络的分类器是邮件分类中比较有效的方法[2]。但是,神经网络容易限于局部极小值,造成邮件的误分。而神经网络集成是用有限个神经网络对同一个问题进行学习,集成在某输入示例下的输出,由构成集成的各神经网络在该示例下的输出共同决定[3]。该方法可以显著地提高神经网络系统的泛化能力[4]。因此,采用神经网络集成的方法设计邮件分类器将会进一步提高邮件分类的准确性,本文就此方面进行研究。
1 基于神经网络集成的垃圾邮件过滤
1.1系统模型
本邮件过滤系统(如图1)主要是针对电子邮件内容进行识别、过滤。电子邮件过滤系统主要由邮件预处理、特征选择、分类器设计三个环节组成。本过滤系统中对邮件的处理过程:首先对邮件的原始语料库进行预处理,把标准邮件集处理成了机器学习算法可以直接处理的向量空间模型的形式;然后利用基于信息增益(IG)的属性选择方法对其进行降维处理,选取合适的维数;最后利用神经网络集成算法分别进行分类分析。
1.2 邮件预处理
为了便于邮件的过滤,对邮件数据集要进行预处理。
1.2.1 基于向量空间模型的邮件表示
本系统通过对邮件的原始语料库进行预处理,把标准邮件集处理成了机器学习算法可以直接处理的向量空间模型的形式。具体处理步骤如下:
1) 初始情况下,先定义一个特征项集合,把邮件语料库中所有出现的词都作为特征项集合的候选特征,输出一个特征项集合的字典。
2) 扫描语料库,把语料库中的每一封邮件都表示成维数(维数等于字典的长度)相等的向量形式,并以稀疏矩阵的形式存储(降低内存使用量)。
3) 移除那些在语料库中出现次数不大于4次(低频词),以及在每篇邮件中都出现的候选特征。这是因为低频词在语料库中出现的次数太少,对分类几乎不起作用;在每篇邮件中都出现的高频词,不具备区分类别的能力。这一步的特征移除可以加速特征选择过程,进一步降低内存需求。
4) 输出经步骤3)处理后的以向量空间模型表示的邮件数据集。
1.2.2 特征选择
为了能有效地分析垃圾邮件的特征,要对邮件数据进行降维。对于垃圾邮件常用的特征选择方法有:文档频率(Document Frequency)、信息增益(Information Gain)、互信息(Mutual Information)、 ?字2统计量(EHI)等。其中,信息增益被认为是最有效的属性选择方法之一[5]。因此,本文采用信息增益的方法对邮件数据集进行降低维处理,取信息增益值最大的前M个词为特征词。将邮件数据集进一步表示成M维的向量空间形式。信息增益表征的是特征词t在语料库中出现前后的信息熵之差,具体到分为垃圾邮件(spam)和正常邮件(ham)的二类问题,IG的公式如下:
其中,C1和C2分别代表合法邮件和垃圾邮件的类别;表示Ci类邮件在语料库中所占的比率;P(t)和P(t)分别表示特征词t 在语料中出现的概率和未出现的概率;表示t出现在Ci类中的概率;表示t未出现在Ci类中的概率。
1.3 分类器设计
在众多关于邮件分类的研究中,主要以单分类器为主,对过滤垃圾邮件效率的进一步提高又一定的局限,而集成分类器分类效果的贡献是非常显著的,因此采用集成的方法可以有效地提高垃圾邮件的过滤。
集成学习目的是利用模型之间的差异性提高学习系统的泛化性能。集成实现方法的研究主要集中在两个方面,即如何生成集成中的各个个体以及怎样将个体的输出结论组合。在生成集成中个体方面,最重要的技术是Boosting[6]和Bagging[7]。Boosting和Bagging是两种用来提高学习算法准确度的方法,大量关于Boosting和Bagging的实验和应用已证明了这两种方法的有效性。结论的结合的方法有投票法,加权投票法以及朴素贝叶斯法等等,其中,投票法包括绝对多数投票法或相对多数投票法。通常,在对分类器进行集成时,大多采用相对多数投票法,即若输出结果为某一分类的神经网络的数目最多,则判定属于该分类。
神经网络在很多领域已得到成功的应用,其网络模型在学习过程中容易陷入局部极小值被认为是它的主要缺点之一。然而,Perrone和Cooper[8]却认为,这一特性对神经网络集成泛化能力的提高起到了重要作用。因此神经网络集成用于邮件过滤系统,能够提高过滤系统的性能。
1.3.1集成系统中个体分类器的生成
经过实验,系统选取RBF神经网络作为基分类器,个体分类器的生成则采用基于样本选择的Boosting和Bagging。
1) Boosting算法的步骤见表1所示。
2 )Bagging算法的主要步骤见表2所示。
1.3.2 集成系统中结论的合成
Bagging采用多数投票方法进行假设的综合,有研究表明,简单的、不加权的投票方法是鲁棒的。 Boosting对每个基分类器的分类结果根据其分类错误率加以权值,然后对加权后的结果投票,最常用的权值计算方法是分类正确率或其变形。
2 实验及结果分析
2.1 语料选择
本文选取垃圾邮件的PU系列语料 作为实验数据。PU系列语料由希腊学者Androutsopoulos提供,其来源于提供者某个时段收到的真实电子邮件。该语料去掉了邮件的附件、HTML标记等,只保留了邮件主题和正文的纯文本内容,为保护提供者的隐私,语料采用加密的形式,用不同的整数替代邮件中的每个词干。
2.2 评价指标
垃圾邮件过滤系统的性能主要通过以下几个指标来评价:
1) 召回率(Recall):即垃圾邮件检出率,反映了过滤系统对垃圾邮件的发现能力,召回率越高,“漏识别”的垃圾邮件就越少。
2) 正确率(Precision):即垃圾邮件检对率,反映了过滤系统对垃圾邮件的判对能力,正确率越大,误判垃圾邮件的可能性越小。
3) 精确率(Accuracy):对所有邮件做出正确判断的概率。
4) 错误率(Error rate):对所有邮件做出错误判断的概率。
5) F值:将召回率和正确率综合成一个指标,是召回率和正确率的调和平均值。
此外,在垃圾邮件过滤的实际过程中,我们容易想到,将合法邮件判为垃圾邮件比将垃圾邮件判为合法邮件的代价要大,本文中用混淆矩阵(Confusion Matrix)反应此代价。
2.3 实验结果与分析
有研究者[9]用实验证明了,PU1语料、PU2语料、PUA语料效率最好的维数分别为1000维、100维、200维。据此,本文将PU1语料、PU2语料、PUA语料分别处理成了1000维、100维、200维的向量空间模型形式。然后将处理好的数据采用的RBF神经网络、AdaBoost(目前最流行的Boosting算法[10])、Bagging等分类算法对实例进行分类,采用十折交互验证法(10-fold-cross-validation)作为评估方法,得到如下实验结果,如图2、图3、图4和表3所示:
图2PU1上的试验结果 图3PU2上的试验结果
上述实验结果表明,对同一个语料库,神经网络集成算法较RBF神经网络算法,提高了精确率和F值,而正确率在提高的同时召回率有所下降,召回率在提高的同时,正确率有所下降,这是判别指标本身的性质。而且,从表3的混淆矩阵,可以看出AdaBoost算法和Bagging算法较RBF算法来说,将正确邮件误分为垃圾的邮件的概率也减少了,即代价减少了。
整体来说,评价指标值提高了,主要的原因就是神经网络集成将经过单个训练的神经网络的输出结果加以合成,采用了多数表决的方法,提高了邮件过滤的性能。实验结果表明神经网络集成方法对于垃圾邮件过滤的是非常有效的。
3 结论
该文重点研究了采用神经网络集成对垃圾邮件进行过滤的方法,同时对邮件过滤系统的数据进行了预处理,经过实验,与单分类器的过滤性能进行比较,结果证明了神经网络集成方法可以进一步提高垃圾邮件过滤的准确率。今后的工作重点是研究邮件多标签分类方法。
参考文献:
[1] 蒋秋香.垃圾邮件过滤技术的发展与现状[J].网络与通讯安全,2007(09).
[2] 黄国玉,龙润生.基于神经网络的邮件分类识别模型研究[J].南京大学学报,2008(06).
[3] Sollich P,Krogh A.Learning with ensembles:How overfitting can be useful.In: Touretzky D,Mozer M,Hasselmo Meds.Advances in Neural Information Processing Systems 8,Cambridge,MA:MIT Press,1996.190-196.
[4] 周志华.神经网络集成[J].计算机学报,2002(01).
[5] Y.Yang.A Comparative Study on Feature Selection in Text Categorization[C].Proceedings of the Fourteenth International Conference on Machine Learning,1997.
[6] Schapire R E.The strength of weak learnability.Machine Learning,1990,5(2):197-227.
[7] Breiman L.Bagging predictors.Machine Learning,1996,24(2):123-140.
[8] Perrone M P,Cooper L N.When networks disagree:Ensemble method for neural networks.In:Mammone R J ed.Artificial Neural Networks for Speech and Vision,New York:Chapman &Hall,1993.126-142.
关键词:BP神经网络;共轭梯度;分析器;入侵检测
中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)25-7229-04
The Designing of Neural Network Analyzer in Intrusion Detection System
LI Yan, LI Wei-chao
(Zhengzhou Institute of Aeronautical Industry Management,Zhengzhou 450015, China)
Abstract: By analyzing and comparing with BP algorithm and CGBP algorithm, the author proposes a neural network analyzer based on CGBP algorithm. After that, the author gives a specific design proposal. The analyzer has a practical and referential value. And the analyzer has obtained good results.
Key words: BP neural network; conjugate gradient; analyzer; intrusion detection
根据通用入侵检测框架(Common Intrusion Detection Framework, CIDF)模型,入侵检测系统通常有四个组件:事件产生器、事件分析器、响应单元和事件数据库。其中事件分析器,既分析子系统是入侵检测系统的核心部分,用于对获取的事件信息进行分析,从而判断是否有入侵行为发生并检测出具体的攻击手段。神经网络应用于分析器是研究入侵检测系统的一个方向。
在神经网络的实际应用中,使用最广泛的是BP(Back-Propagation)网络。它有一个不足是当学习速度较小时,其缓慢的学习速度使得网络的学习失去了意义。学习速度过大又会使得误差函数不能收敛。共轭梯度法在一定程度上克服了最速下降法迭代路径呈锯齿形现象。共轭梯度法用于训练神经网络称作共轭梯度反向传播算法(Conjugate Gradient Back Propagation, CGBP)[1]。
1 BP神经网络
1.1 神经元模型
任何一个神经网络都是由众多神经元组成的,每个神经元是生物神经元的模拟、抽象和简化,神经网络的处理能力正是来源于各层神经元之间的相互作用。每个神经元都具备以下三个基本的功能:
1) 接受输入。一般来说,一个神经元不止一个输入。如图1所示,具有R个输入的神经元其输入为p1,p2,…,pR 分别对应权值矩阵W的元素w1,1,w1,2,…,w1,R 。wi,j表示第j个神经元到第i个神经元的连接强度,简称权值。另一个输入是1乘上偏置值(或称偏移值)b。这个偏置值如果不想在神经网络中使用,也可以忽略。
2) 输入处理。神经元中对输入的处理按矩阵形式表示为:
n=Wp+b (1)
如图1,单个神经元的权值矩阵W只有一列元素。所有输入的加权和与偏置值b累加形成净输入n。
n=w1,1p1+w1,2p2+……+w1,RpR+b(2)
3) 计算输出。经过输入处理后所得到的n称为净输入,把它送入传输函数(也称活跃函数)f,在f中产生神经元的标量输出a:
a=f(n) 或 a=f(Wp+b)(3)
传输函数可以是n的线性或非线性函数。可以用特定的传输函数满足神经元要解决的特定问题。常用的有线性传输函数、对数-S形传输函数等。
拿这个神经元模型与生物神经元相对照,权值w对应于突触的连接强度,累加器和传输函数代表了细胞体,神经元输出a相当于轴突的信号。
1.2 神经网络拓扑结构
Paul Werboos博士于1974年在他的博士论文中第一次描述了训练多层神经网络的一个算法―误差逆传播(Error Back-Propagation)[2]学习算法,通常简称BP(Back-Propagation)算法。后来人们把应用BP算法进行网络训练的前馈型网络简称BP网络。
BP网络是一个多层网络,能够解决单层感知机不能解决的非线性可分问题。网络由输入层、隐含层和输出层组成。其中隐含层可以是一层也可以是多层。上下层之间各神经元实现全连接,而同一层神经元之间无连接。图2给出了只有一层隐含层的网络拓扑结构。
图2显示了两层BP网络(也有叫做三层的,把输入层算做一层)。在该拓扑结构中,有r个输入,隐含层中有s个神经元,输出层有n个输出神经元。为了简化,将这个网络记为r-s1-s2网络,对应每一层的结点数。各层神经元的多少则要根据具体的应用问题而定。
传输函数选择对数-S形函数,其数学表达式为:a=1/(1+e-n)。输入在(-∞,∞)之间取值,输出则在0到1之间。可以用来处理和逼近非线性的输入/输出关系。有研究表明,含有一个隐层的BP网络足以完成任意的维到维的映射[3]。因此本文采用只有一个隐含层,各层神经元是对数-S形传输函数的BP网络。
2 BP学习算法
BP算法是在监督学习下,适用于多层神经网络的学习算法。算法的学习过程分两个阶段:第一阶段是正向传播过程。输入信息由输入层输入经隐含层处理,最后通过输出层输出网络计算的结果;第二阶段是误差修正反向传播过程。比较输出层的实际输出与期望输出的误差,若不满足要求,按照减少误差的方向从输出层经隐含层逐层修正各连接权值,直到输入层。在网络学习过程中这两个阶段是反复交替进行的,只有在输出的误差满足要求或到达限定的循环次数时才会停止。
通过正向传播计算网络输出,把网络学习时输出层的输出结果与客观事实不一致的误差,归结为网络中各层神经元之间的连接权重或偏置值取值不当而造成的,因此通过反向传播过程把网络输出层神经元的误差逐层向输入层逆向传播,以“分摊”给各连接的神经元,从而算出各神经元的的参考误差,并据此对各神经元之间的连接权和偏置值进行相应调整,使网络实际输出更接近期望输出。BP网络学习的规则实质上是梯度最速下降法,权值沿误差函数的负梯度方向改变[4]。
权值变化为:
wi,j(k+1)=wi,j(k)+Δwi,j (4)
其中
η为学习速度。
偏置值变化为:
bi(k+1)=bi(k)+ Δbi(5)
其中
网络误差函数:
(6)
三层BP网络中各层权值及偏置值的变化如下:设输入节点pj(j=1,…,r),隐藏层节点hi(i=1,…,s1),输出层节点Ok(k=1,…,s2)。输入节点到隐藏层节点的网络权值为w1i,j,偏置值为b1i,输出为a1i。隐节点到输出节点的网络权值为w2k,i,偏置值为b2k,期望的输出为tk,实际的输出为a2k。
1) 网络的正向传递
隐含层第i个神经元的输出为:
(7)
输出层第k个神经元的输出为:
(8)
2)误差反向传播(利用梯度下降法求权值变化)
输出层的权值变化:
(9)
其中
令 δ2k=(tk-a2k) a2k (1-a2k)
所以有 Δw2k,i=η(tk-a2k) a2k (1-a2k)a1i=ηa1iδ2k (10)
输出层的偏置值变化:
(11)
其中
令 δ2k==(tk-a2k) a2k (1-a2k)(12)
所以有 Δb2k=η(tk-a2k) a2k (1-a2k)= ηδ2k (13)
隐含层的权值变化:
(14)
其中
所以有 (15)
令 (16)
则有 Δw1i,j=ηpjδ1i (17)
隐含层的偏置值变化:
(18)
其中
所以有 (19)
令 (20)
则 Δb1i=ηδ1i (21)
由以上算法的推导过程可以看出,计算权值或偏置值的变化要先求出各层各个节点的δ值,即误差。然后用这个误差乘输入得出梯度的近似值,再乘以学习速度即可。
3 共轭梯度反向传播算法实现
BP算法是最小均方误差的近似最快下降算法,从理论上讲η取任意小时,该方法一定会使误差函数趋于极小(局部或全局),但是当η过小时收敛速度很慢,使得网络的学习失去意义。共轭梯度法能在一定程度上克服最速下降法迭代路径呈锯齿形现象,又能避免牛顿法求Hessian 矩阵及其逆阵时的困难,不必计算或存储二阶导数信息就具有二次终止性[5],因此在较大的规模问题中十分有用。
在各种优化算法中选定不同的搜索方向和步长对算法的收敛性至关重要,BP算法选择的搜索方向是沿梯度的负方向搜索,而CGBP算法则利用一维搜索所得到的极小点处的最速下降方向生成共轭方向作为搜索方向,比最速下降法在速度和效果上有很大的改进[1]。设梯度向量为g,共轭向量为p,则第k次的共轭方向为:
(22)
其中 βk=(g(k)-g(k-1))Tg(k)/(g(k-1)Tg(k-1))(23)
权值的修正公式为: w(k+1)=w(k)+ηp(k)(24)
另外这里采用批处理算法,即梯度在整个训练集都应用于网络后才计算,以获得更精确的梯度计算。CGBP算法的具体步骤如下:
1) 随机产生初始权向量W,给定误差e>0,限定迭代次数K。
2) 执行神经网络的向前计算过程(整个训练集应用网络)。
计算系统误差,如果E
3) 用BP算法计算初始点梯度g(0)'(整个训练集应用网络),并求梯度方向的单位向量。
4) 令p(0)=-g(0),k=0,设定初始方向。
5) 确定最佳步长ηk,从W(k)出发沿p(k)进行一维线性搜索。
E(W(k)+ηkp(k))=minE(W(k)+ηkP(k))
6) 更新权值W(k+1)=W(k)+ηkp(k)
7) 判别 k=n 否?n表示被优化的参数数目。若等式成立说明已用完n个共轭方向,令W(0)=W(k+1),k=0,返回步骤2,否则执行下一步。
8) 计算系统误差E,如果E
9) 计算。
10) 计算新的共轭方向p(k+1)=-g(k)+βkp(k)。
11) 如果k≤K令k=k+1,返回步骤5,否则学习停止,W(k+1)作为目标函数E最小的最优值。
12) 存储网络参数和学习结果。
在上述过程中,一维线性搜索是算法很关键的步骤。确定函数在某个特定方向的极值一般包括两步:区间定位和区间缩小。
区间定位是找某个包含局部极小点的初始区间。按照文献[6]的方法,计算公式为:E(W0+kεp0),k=0,1,…,n。先计算某个初始点的性能指数E(w0),然后计算第二点的函数值,它距离初始点的距离是ε且沿初始搜索方向p0,按照点之间的距离依次增加一倍的方式继续计算新点,直到连续的两次计算的函数值增加时结束。此时可以知道极小点在倒数第一次和倒数第三次计算的函数值之间。
定位了包含极小值的区间,下一步就是缩小区间直到满足精度的极小点被定位。假设定位区间为[a,b]只有一个极小点,可以通过计算a, b间的两个内部点c和d来减少区间尺寸。如果F(c)F(d),极小点在[c,b]区间上。本文采用黄金分割搜索算法来实现上述方法。
4 神经网络分析器的设计
构造一个神经网络一般分为三步:一是收集数据和对数据预处理;二是构造和训练神经网络;最后是测试和修改神经网络。其中第二、第三步可能需要多次的训练和测试才能完成。
1) 数据收集
收集的数据是用来训练和测试神经网络的,它的好坏直接影响到分析器的性能。所以样本数据要具有广泛性、多样性、典型性、可靠性和均衡性等特征。把样本数据分成三组,前两组数据分别用于训练和测试,当分析器达到要求后再用第三组数据进行检验。
2) 数据预处理
从样本数据中提取那些正确反映事物本质且互不相关或相关性很小的特征值。然后将这些提取出的物理意义和不同量纲的特征值进行编码转换,并做归一化处理,以便作为BP 网络的输入变量使用。
3) 构造BP神经网络
根据问题的复杂程度选择神经网络的层数。正如本文前面介绍的,具有一个隐层的BP网络足以完成任意n维到m维的映射。增加隐层,虽然可以进一步降低误差,提高精度,但同时也使得网络复杂化,网络权值训练时间急剧增加。建立神经网络模型应优先考虑单隐层结构,若进行认真调整后仍无法满足要求时再考虑增加隐层。
分析器输入层神经元的个数等于选取的样本特征向量的维数。隐含层中神经元个数的确定目前还没有一定的理论依据,因而只能在试验过程中确定。先放入较少的节点数,输入样本对网络进行训练,若不成功则增加节点的数目,直至节点数较合理为止。输出层神经元个数等于分析器要实现分类问题的分类数。传输函数选择对数-S形函数。
4) 训练BP神经网络
采用本文前面介绍的CGBP算法用训练样本组训练神经网络。以文本文件的形式存储网络的各种数据。如在net_w.dat文件中存储了神经网络各层的权值和偏置值,net_a.dat存储了系统的检测结果和相关记录,net_p.dat存储的是网络的参数,test.dat中存储的是网络训练样本。
神经网络分析器流程图见图3。
5 结束语
本文通过对BP算法和CGBP算法的分析和比较,提出了基于CGBP算法的神经网络分析器并给出了具体设计方案。该分析器具有一定的实用和参考价值,应用效果良好,精度高,自适应能力更强,学习速度快,能够在很大程度上实现对未知的异常数据包的检测。
参考文献:
[1] Martin T Hagan, Howard B Demuth, Mark H Beale.神经网络设计[M]. 机械工业出版社, 2003.
[2] 刘振凯,贵中花,蔡青.神经网络系统的现状及发展趋势[J]. 计算机科学, 1996, 23(3): 70-72.
[3] 王景新,戴葵,宋辉等.基于神经网络的入侵检测系统[J].计算机工程与科学, 2003(6):28-31.
[4] 李宏刚,吕辉,李.一种BP神经网络的改进方法及其应用[J].中国工程科学,2005(5):63-65.
论文关键词:内燃机 人工神经网络 辅助方法
论文摘要:针对汽车发动机设计和性能评测当中有关参数计算的特点,提出应用人工神经网络方法进行辅助计算,以提高数据计算的结构化程度和处理速度。通过对具体数据的实际操作表明,应用本方法能够很好地表达原图表数据关系,所得结果的精度能够满足计算要求。
汽车发动机的性能包括动力性、经济性、生态特性——排放与噪声、可靠性及耐久性等多个方面,这些参数要通过在一定条件下的测试计算来获得。当发动机在非标准环境下运转时,其相关计算要通过参数进行修正,比如发动机的有效功率和燃油消耗率的计算。当发动机在非标准环境下运转时,其有效功率及燃油消耗率应修正到标准环境状况,当然也可由标准环境状况修正到现场环境状况,其中的有效功率和燃油消耗率修正系数在GB1105..1-87中以图表的形式给出,使用很不方便,本文应用人工神经网络对此图表信息进行处理,提高了数据计算的结构化程度和处理速度,取得了满意的效果。
1.神经网络的识别原理
在神经网络系统中,其知识是以大量神经元的互连和各连接的权值来表示的.神经网络映射辩识方法主要通过大量的样本进行训练,经过网络内部自适应算法不断调整其权值,以达到目的.状态识别器就隐含在网络中,具体就在互连形式与权值上.在网络的使用过程中,对于特定的输入模式,神经网络通过前向计算,产生一输出模式,通过对输出信号的比较和分析可以得出特定解。目前神经网络有近40多种类型,其中BP(Back Propagation,即反向传播)网络是最常用和比较重要的网络之一,本文就应用一种改进型的BP网络进行相应数据图表的识别映射。
BP网络由输入结点、输出层结点和隐层结点构成,相连层用全互连结构.神经网络的工作过程主要有两个阶段:一个是学习期,通过样本学习修改各权值,达到一稳定状态;一个是工作期,权值不变,计算网络输出。
B
P网络的学习过程由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经隐层单元逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的路径返回,通过修改各层神经元的权值,使得误差信号最小。
当给定一输入模式X=(x1,x2,….,xm)和希望输出模式Y=(y1,y2,…..,yn)时,网络的实际输出和输出误差可用下列公式求出:
隐含层输出:
式中——输入层至隐含层,隐含层至输出层的连接权;
——隐含层结点、输出层结点的阀值;
m、h、n——输入层、隐含层、输出层结点数;
f—— s型函数,f(x)=(1+e-x)-1.
如果误差太大不能满足要求,则需要用下列公式修正各连接权和阀值
为网络提供一组特定的训练模式,随机产生初始连接权和阀值,不断币复上述计算过程,直到网络全局误差小于给定的极小值为止.
由于BP网络的高识别能力,应用中采用了此结构形式.同时为提高其识别效果,加快网络的训练速度,缩短工作周期,应用了附加动量项和自适应速率的改进算法.
附加动量项法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响,其作用如同一个低通滤波器,允许网络上的微小变化特性,使网络陷入局部极小值的可能性大大减少。自适应速率是通过改变学习率,提高BP算法的有效性和收敛性,缩短训练时间.
2具体应用
根据以上理论,采用改进的BP神经网络形式,动量因子取0.9,对有效功率校正系数和燃油消耗率校正系数与指示功率比和机械效率的关系同时进行识别,采用双输入双输出的2-10-2结构、2-15-2结构、2-20-2结构进行训练,识别情况分别如表3-5所示。
转贴于
从实际的应用效果来看,2-15-2和2-20-2的逼近能力相似,2-15-2的速度快于2-20-2结构,而2-20-2结构的识别能力要远低于前两种结构,采用更少的隐层结点数就会使训练的时间过长,甚至使训练过程无法进行.因此最后选择2-15-2的BP网络结构作为最终的神经网络形式。如图1所示为训练次数与误差平方和之间的关系曲线,表4为部分网络输出与实际数值的比较.
通过以上计算分析可见,神经网络的映射输出能力是相当强的,通过合理的网络结构选择和具体的参数应用,完全可以满足优化设计的计算要求,大大缩短优化当中的计算迭代时间,提高计算效率。
3结论
(1)人工神经网络有很强的数据映射能力,能够很好地识别所给数据之间的对应关系,映射的精度可以满足一般设计计算要求.
(2)对于包含无规律图表数据的有关计算问题,应用神经网络是一个很好的加快运算速度的解决方法.
(3)在数据的映射识别当中,网络的结构形式和参数选择对于问题的求解精度和速度都是致关重要的’同时应当注意数据的过度训练问题.
(4)智能算法的应用为具体的工程计算提供了更方便、有效的手段,寻找有效的计算方法,以及多种算法的混合应用将是摆在设计人员的一个课题.
参考文献
[1]焦李成.神经网络系统理论[M]西安:西安电子科技大学出版社,1990.
[2]焦李成.神经网络的应用与实现[M].西安:西安电子科技大学出版社,1993.
[3]王文成.神经网络及其在汽车工程中的应用[M].北京:北京理工大学出版社,1998.
[4]张成宝,丁玉兰,雷雨成.人工神经网络在汽车变速器齿轮故障诊断中的应用[J].汽车工程,1999,21(6) 374-378.
[5]Watanahle Y, Sharp H S. Neural network learning control of automotive aotic-e suspension systems.lnternational,lournal of Vehicle Design[J],1999,21(2/3):124一147.
[关键词] 工作岗位;BP神经网络;系统设计
[中图分类号] F240 [文献标识码] A [文章编号] 1006-5024(2007)12-0030-04
[基金项目]安徽省高校青年教师科研资助计划项目“人工神经网络在工程评价中的应用”(批准号:2004jq143);安徽理工大学 青年科学基金资助项目“基于人工神经网络的综合评价系统设计”(批准号:2007jg12)
[作者简介] 汪克亮,安徽理工大学教师,硕士,研究方向为综合评价、决策分析;
杨 力,安徽理工大学副教授,硕士,研究方向为系统工程、复杂系统建模;
查甫更,安徽理工大学教师,硕士,研究方向为环境质量评价。(安徽 淮南 232001)
人力资源是企业中最宝贵的资源,对企业的生存、发展和竞争力的不断提高都起着至关重要的作用。人力资源的培育、开发与利用,不仅成为经济增长的决定性因素,而且直接构成企业核心竞争力的关键性战略资源。作为人力资源管理的一个重要组成部分,工作岗位评价是建立在工作说明书的基础上,综合运用多种学科的理论和方法。即它是按照一定的客观标准,从工作岗位的环境、劳动强度、承担责任、所需资格条件等因素出发,对工作岗位进行系统的衡量和评价,在定性的基础上进行定量测评,以量值来表现工作岗位特征,使得性质相同、相近的岗位具有统一的评判、估价标准。这种评价方法可以比较出岗位与岗位之间的相对价值大小,从而可以将员工在企业中的作用和贡献量化,为企业岗位归级、分类等工作奠定基础,为建立公平合理的薪酬制度提供客观依据。
对工作岗位进行评价的方法很多,传统的方法有排列法、分类法、评分法、因素比较法,等等。实践证明,这些方法都具备一定的合理性,但是还不够完善。这是由于评价指标的量值和权重的确定都是依据评估人员的经验进行的,主观性强,缺乏客观性,这样就在很大程度上使得评价结果缺乏公平性、科学性,从而进一步影响到薪酬制度的公平合理性。近年来出现的人工神经网络(Artificial Neural Network,简称ANN)因其广泛的自适应、自学习和强大的非线性映射能力,在多变量非线性系统的建模方面有着广泛的应用。BP神经网络(Back-Propagation Network)是目前在各领域中研究和应用最广泛的人工神经网络,体现了人工神经网络理论与应用中最精华的部分,它擅长的是处理那种规律隐含在一大堆杂乱无章数据中的映射逼近问题。由于工作岗位评价系统是由评价指标、评价标准、评价技术和方法等一系列子系统组成的复杂非线性系统,作为一种处理复杂非线性系统问题的有效工具,本文尝试利用BP神经网络来设计工作岗位评价系统,为定性和定量评价工作岗位提供一条新的思路。
一、工作岗位评价指标体系的建立
1.选择评价指标的原则
要对工作岗位进行公平合理的评价,前提是要建立科学的评价指标体系。因为工作岗位评价不仅要明确工作状况和工作量的差异,而且要满足企业人力资源管理基础工作的需要,促进人力资源管理工作的发展。因此,必须在决定工作岗位工作状况和工作量的众多因素中选择合适的因素,进行全面、科学的评价。对于评价指标的选择,应该考虑以下三个原则:
全面性。评价指标的全面性是进行科学评价的基础,评价指标应该能够全面地反映工作岗位的工作状况和工作量,体现不同岗位的工作差别,反映出岗位工作对企业的贡献。
可评价性。评价指标的可评价性主要体现在两个方面:一是指在目前企业的工作实际中,运用现有的技术和方法,能够对评价指标进行测定或评定,作出评价;二是指对每一个评价指标都能够按照统一的评价标准作出独立的评价,最好是能作出定量评价。
实用性。主要是指在选择评价指标的时候,选择那些对企业的人力资源管理工作有用、能促进企业人力资源管理工作发展的因素作为评价因素。这样可以使得评价结果能够直接应用于企业人力资源管理实践。
2.工作岗位评价指标体系
工作岗位评价的内容非常广泛,影响因素众多,我们经过深入调研,密切联系实际,依据上述的选择原则,共建立5个一级指标:劳动技能、劳动责任、劳动强度、劳动环境、社会心理因素。每个一级指标又由若干个二级指标组成,一共22个二级指标,这些指标既能全面体现企业岗位的工作状况和工作量,又能应用目前的技术和知识进行评定和测量,使岗位的具体工作抽象化、定量化,从而产生可比性。建立的评价指标体系如表1所示。
二、BP算法及其改进
1.BP神经网络
人工神经网络是人工智能的一个重要部分,人工神经元是人工神经网络的基本处理单元。它是一个近似模拟生物神经元的数学模型,通过与其相连的神经元接收信息。根据网络中神经元的连接方式,神经网络可以分为前向网络、反馈网络和自组织网络三种基本类型。
BP网络,又称为误差反向传播网络,是一种典型的前馈网络。它具有三层或三层以上的阶层,其各层之间各神经元实现完全连接,而每层的神经元之间无连接。BP网络主要是由输入层、隐含层、输出层组成,各层之间实现完全连接。输入信号从输入层节点输入,依次传过各隐含层节点,然后传到输出节点。实践已经证明了三层BP网络可以以任意精度逼近一个连续函数。
2.BP算法
BP网络所完成的信息处理工作,从数学意义上讲是利用映射训练样本(x1,y1),(x2,y2),…(xk,yk)…,实现从n维欧氏空间子集到f[A]的映射。BP网络的学习过程是由正向传播和反向传播两部分组成。在正向传播过程中,输入样本从输入层经过隐含层处理并传向输出层,每一层神经元状态只影响下一层神经元状态,如果在输出层得不到期望的输出,则转入反向传播。此时,误差信号从输出层向输入层传播并沿途调整各层之间的连接权值以及各神经元的偏置值,以使误差信号不断减小,经过反复迭代,当误差小于允许值,网络的训练结束。BP网络具体的学习过程按以下步骤进行:
(1)置各权值或阈值的初始值:Wji(0),θj(0)为小的随机数值。
(2)提供训练样本:输入矢量Xk,k=1,2,…,P;期望输出dk,k=1,2,…,P;对每一个输入样本进行下面(3)到(5)的迭代。
(3)计算网络的实际输出及隐含层单元的状态:
okj=fj(∑wjiokj+θj),其中f(x)为转移函数,采取Sigmoid函数,即
(4)计算训练误差:
δkj=okj(1-okjj)(tkj-okj) (输出层)
δkj=okj(1-okj)∑δkmwmj(隐含层)
(5)修正权值和阈值:
wkj(t+1)=wji(t)+ηδjoki+α[wji(t)-wji(t-1)]
θj(t+1)=θj(t)+ηδj+α[θj(t)-θj(t-1)]
(6)当k每经历1至P后,判断指标是否符合精度要求:
E≤ε; ε:精度。
(7)结束。
3.BP算法的改进
传统的BP网络把一组样本的输入/输出问题变为一个非线性优化问题,使用了优化中最普通的梯度下降算法。BP算法在应用中最突出的优点是具有很强的非线性映射能力,网络的隐含层数、各层的神经元数以及网络的学习系数都可以根据具体情况任意设定,对问题的识别具有很强的功能,对于复杂的非线性模型仿真从理论上来说可以达到任意小的程度。在实际预算中,标准BP算法存在着收敛速度慢和容易陷入局部极值两个重要问题。为此,我们以如下两项措施来改进BP算法。
(1)学习率自适应调整。标准BP算法收敛速度慢的一个重要原因是学习速率不当。学习率太小,收敛太慢;学习率太大,则可能导致振荡甚至发散。我们采用学习率的自适应调整,即当连续两次迭代其梯度方向相同时,表明下降太慢,将步长加倍;而当连续两次迭代其梯度方向相反时,表明下降过头,则步长减半。
(2)加动量项。标准BP算法在修正w(t)时,仅按照t时刻的瞬时负梯度方向进行修正,没有考虑以前时刻的梯度方向,从而使学习过程常常发生振荡,收敛很慢。我们加动量项的目的是为了降低网络对误差曲面细节的敏感性,从而抑制网络限于局部极小。
改进后的权值修正公式为:
w(t+1)=w(t)+α(t )[(1-η)d(t)+ηd(t-1)]
α(t)=2λα(t-1)
λ=sign[d(t)d(t-1)]
式中:α(t)为学习率,为k时刻的负梯度,η为动量因子,0≤η≤1。
三、基于BP神经网络的工作岗位评价系统设计
1.评价指标的标准化
由于工作岗位评价涉及到一系列的指标,有定性指标和定量指标,各个评价指标的量纲也不一样。因为根据BP网络的特点,输入节点数据的取值范围应该是[0,1],所以,必须对评价指标进行标准化处理。
(1)定量指标
对于评价指标ui,其中mi和Mi分别为评价指标ui的最小值和最大值。设ri为决策者对评价指标ui的属性值xi的无量纲化值,且ri∈[0,1]。根据评价指标的类型,可采用下列两种无量纲化标准函数:
当目标越大评价越好时,
当目标越小评价越好时,
(2)定性指标
在该评价指标中,大部分是一些不能直接量化而只能进行定性描述的指标,可以采用确定指标评价等级隶属度的方法来实现其量化。其方法是:设Ui为定性评价指标,Ui相对于评价集A=(α1,α2,…,αn)的隶属度向量为:ri=(ri1,ri2,…,rin)。此处隶属度向量可采用专家调查的方法,并通过集值统计方法来确定,或者可以通过模糊数学中确定隶属函数的方法来确定。另外,一种最简单的方法就是直接利用专家打分的方法来确定,评分时专家充分审核、分析每个工作岗位的影响因素,给出各个评价指标评分值,取值范围是[0,1]。但是,为了保证与定量指标的可比性,可以根据上面定量指标的处理方法,将得到的评分值进行标准化处理后再作为神经网络的输入。
2.系统结构设计
实践证明,具有单隐层的BP网络可以逼近任意连续函数。本文设计了一个三层BP网络来模拟工作岗位评价系统的评价过程。其中,将评价指标的标准化值作为网络的输入向量,所以,本文中输入节点共有22个,输出节点为1个,输出值为工作岗位评价结果,即工作岗位相对价值的量化值。由于输入向量和输出向量之间不满足线性关系,因此,选择单极性的sigmoid函数作为转移函数。另外,隐含层的节点数也直接影响到网络的性能。对于隐含层节点数的确定,我们可以采用经验公式:Pm= Pn+r+L,其中,Pm、Pn、r分别为隐含层、输入层、输出层的神经元数目,L为1-10之间的一个整数。可以采取对比实验的方式来选择最佳隐含层节点的数目。采用改进BP的算法来进行学习,根据学习时间及次数与达到全局误差的综合效果来看,6个隐含层神经元比较合适。
以技术知识要求、质量责任等22项工作岗位评价指标的标准量化值作为网络输入向量,用X=(xi,x2,…,x22)表示;隐含层节点用向量Y=(y1,y2,…,y6)表示;O=(o1)表示输出向量,根据转移函数的性质,o1∈[0,1],是工作岗位的综合评价值,用S∈[0,1]来表示,分值越大,则表明该工作岗位的相对价值越高;反之,相对价值就越低。 将训练集的实际输出数据转换为[0,1]的数值,期望输出用T=(t1)表示。 输入层节点到隐含层节点的权值用向量V=(v1,1,v1,2,…,v22,6)表示,隐含层节点到输出层节点的权值用向量W=(w1,1,w2,1,…,w6,1)表示。对于隐含层有:
yj=f(∑vijxi) (j=1,2,…,6)(1)
对于输出层有:
oj=f(∑wj1yj)(2)
这样(1)、(2)两式就建立了工作岗位评价系统。系统结构图如图1所示:
3.网络训练样本的获得
神经网络要具有评价功能,必须经过一定数量样本数据的训练。所以,获得适当数量的训练数据是进行网络训练的前提。选取某个企业的20个工作岗位作为实证分析的对象,即神经网络的训练单元。其中,将该企业的20个工作岗位的22项评价指标的专家打分值作为训练单元的输入数据,而以相应工作岗位的评价值作为网络的期望输出。对于网络期望输出结果的获得,我们可以采取常用的层次分析法(The Ana-lytic Hierarchy Process,简称AHP),这种方法是由美国著名的运筹学家T.L.Saaty于20世纪70年代提出的一种以定性与定量相结合的系统化、层次化决策分析方法。层次分析法的原理是把复杂的问题分解为各组成因素,将这些因素按支配关系分组,以形成有序的递阶层次结构。通过两两比较判断,确定每一层中因素的相对重要性,建立判断矩阵,通过矩阵的最大特征值与特征向量的计算,得出该层要素对于上层准则的权重。利用层次分析法,不仅可以得出每一个工作岗位评价指标对于工作岗位相对价值的权重,而且可以将每一个评价指标的评分值与指标权重加权相加,得出每一个工作岗位的综合评价值,该评价值就能作为网络的期望输出。这样采用层次分析法,便能获得训练样本与仿真样本。
4.网络训练与系统仿真
获得了网络训练样本数据,再对网络进行训练。我们将编号为1-15岗位数据作为训练单元输入BP神经网络,给定的学习精度为ε=0.0001,初始学习速率为0.05,每个训练样本岗位的综合评价值作为网络期望输出。采用Matlab 7.0神经网络工具箱对网络进行训练,当训练误差达到了精度要求,训练停止。将编号为16-20的样本岗位作为仿真样本来检验网络的评价和预测精度,发现网络的仿真结果同样本的评价结果非常接近,如表2所示。这一点表明该网络具有很好的泛化能力,采用BP神经网络建立工作岗位评价系统是完全可行的。
四、结束语
工作岗位评价是企业人力资源管理工作的重要内容,对工作岗位进行科学、客观的评价,是确定公平、合理的薪酬制度的基础,这一点对于提高员工工作积极性和保持企业活力都具有很重要的意义。本文在建立工作岗位评价指标体系的基础上,采用BP神经网络来设计企业工作岗位评价系统,利用BP神经网络自身强大的非线性映射能力和很强的自学习性、自适应性和容错性,能够充分地挖掘出样本评价指标中有关规律和信息,揭示影响工作岗位相关因素的内在作用机制,有效地克服评价过程中人为确定标准值和权重的主观性因素的干扰,并且针对BP网络收敛慢、容易陷入局部极小的缺点,采取了加动量项和学习率自适应调整的方法进行改进,以弥补BP网络的缺陷,更能够体现工作岗位评价的科学性和客观性。仿真试验表明,该评价系统取得了令人满意的结果。在实际应用中,为了保证系统评价的有效性,应该对系统进行必要的修改和调整,对系统的运行状况进行检查和控制,力求系统达到准确、高效、易操作及具备良好的适应性。只要做好以上工作,基于BP神经网络的工作岗位评价系统就能够成为企业人力资源管理的有效工具。
参考文献:
[1]沈世镒.神经网络系统理论及其应用[M].北京:科学出版社,1998.
[2]焦李成.神经网络系统理论[M].西安:西安电子科技大学出版社,1993.
[3]安鸿章.工作岗位的分析技术与应用[M].天津:南开大学出版社,2001.
[4]安鸿章.工作岗位研究原理与应用[M].北京:中国劳动出版社,1998.
[5]李永杰,李强.工作分析理论与应用[M].北京:中国劳动社会保障出版社,2005.
[6]赵曼.人力资源开发与管理[M].北京:中国劳动社会保障出版社,2002.
[7]石全涛.现代人力资源开发与管理[M].上海:上海交通大学出版社,1999.
[8]杨力.基于BP神经网络的城市房屋租赁估价系统设计[J].中国管理科学,2002,(10).
[9]张新红,郑丕谔.基于神经网络的管理信息系统综合评价方法[J].系统工程学报,2002,(5).
1986年,rumelhart提出了反向传播学习算法,即bp(backpropagation)算法。反向传播bp(back propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一[1]。这种算法可以对网络中各层的权系数进行修正,故适用于多层网络学习。bp算法是目前应用最广泛的神经网络学习算法之一,在自动控制中是最有用的学习算法,它含有输人层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层。在隐层中的神经元也称隐单元。隐层虽然和外界不连接,但是,它们的状态影响着输入输出之间的关系。也就是说,改变隐层的权系数,可以改变整个多层神经网络的性能[2]。
1bp 神经网络模型
bp 神经网络模型由一个输入层、一个输出层以及一个或多个隐含层构成,同一层中各神经元之间相互独立。输入信号从输入层神经元开始依次通过各个隐含层神经元,最后传递到输出层神经元, 图1给出了包含一个隐含层的bp网络模型结构,隐含层神经元个数为m。理论研究表明:具有一个输入层,一个线性输出层以及sigmoid 型激活函数的隐含层bp 网络能够以任意精度逼近任何连续可微函数[3]。
三层感知器中,输入向量为x=(x1,x2…xi…xn)t,图1中x0=-1是为隐层神经元引入阈值而设置的,隐层输入向量为y=(y1,y2…yj…ym,)t,图中y0=-1是为输出层神经元引入阈值而设置的;输出层输出向量o=(o1,o2, …,ok,ol)t,期望输出向量为d=(d1,d2, …,dk,dl)t,输入层到隐层之间的权值矩阵用v表示,v=(v1,v2, …,vj, …vm)t,隐层到输入层之间的权值矩阵用w表示,w=(w1,w2, …,w,k …wl)t,下面分析各层信号之间的关系[4]。
图1三层bp网络
对于输入层:
ok=f(netk) k=1,2, …,l,netk=∑mj=0wjkyj k=1,2, …,l;
对于隐层:
yj=f(netj)j=1,2, …,m,netj=∑ni=0vijxij=1,2, …,m;
以上两式中,激活函数都是sigmoid函数。
f(x)=11+e-x,f(x)具有连续、可导的特点且f’(x)= f(x)[1- f(x)]。
根据以上公式,我们可以推导出权值调整量δwjk和δvjk分别是:
δwjk=ηδokyj=η(dk-ok)ok(1-ok)yj,δvij=ηδyjxi=η(∑lk=1δokwjk)yj(1-yj)xi
2智能公交实时调度模型总体设计
公交公司的行车计划一般在年初就制定完成,调度员根据行车计划进行调度,遇到节假日、雨天等突况时,就凭调度员的工作经验调度。因此,可以考虑使用bp神经网络算法,在智能公交实时调度中加入误差反向传播算法,利用误差反向传播算法超强的学习能力和泛化能力,通过对公交海量历史调度数据的学习,建立公交车到达目的站点的预测模型。通过实时gps数据,就可以预测车辆到达目的地的大概时间,为建立智能公交调度提供极大的方便。智能公交实时调度模型如图2所示。
图2智能公交实时调度模型
从图2可以看出,智能公交实时调度模型分为3个主要模块。
(1)数据处理分析模块。智能公交实时调度模型的基础模块,数据来源于两个部分:一是公交历史行车数据,包括发车时间、天气等数据;二是gps定位系统采集的实时数据,主要是各个时刻采集的运行数据。该模块根据各预测模型的需要,选择合理的数据输入,并对数据进行处理。
(2)预测模型模块。通过对现有数据的分析、预测,得到车辆到达调度站的运行时间预测结果。
(3)智能实时调度模块。输入预测模型可以得到车辆运行时间,根据公交历史调度计划以及公交客流数据,可以适当改变当前调度计划,临时下达调度指令,为建立与实际客流相结合的调度方法提供决策支持。
(4)基于bp神经网络的预测模型。公交车辆的运行时间总的来说还是比较固定的,但是有时候会随着道路拥挤情况、节假日、天气情况等有所改变。由于神经网络具备以任意精度逼近连续函数功能,具有较强的自我学习能力和泛化能力,能够充分体现输入数据与输出数据之间复杂的映射关系。因此,本文采用bp神经网络来预测车辆到达时间。
2.1输入变量对公交运行时间的影响
把公交车运行时间分
为几个阶段,车辆到达目的地所需要的时间往往与该公交车处于的阶段有着某种必然的联系,根据车辆实时gps数据及车辆运行过程中所处的时间,设ti为公交车实时时间,所以ti在那个阶段对车辆运行有直接影响, ti可以根据gps数据实时取得。
车辆位置:车辆在运行过程中所处的位置对公交车到达目的站有着一定的影响,根据gps实时数据,可以计算出车辆离终点站有多少距离,将车辆在ti时刻距调度站的距离作为影响因素。
天气情况:天气的好坏对公共汽车的运行产生比较大的影响,一般情况下,公交车在晴天的运行时间要比雨天少,车速比雨天快。
星期情况:从周一到周日,不同日子有着不同的客流,所以星期情况对公交的运行产生一定的影响。
节日:重大节日客流量明显增多,车辆的运行时间也会有所延长。
2.2变量获取
bp神经网络需要大量数据作为输入、输出样本,因此在构建bp神经网络前,首先要做的工作就是获取这些数据。利用先进的信息技术,可以获取公交车辆运行的gps数据,而天气、星期情况、是否节假日这些变量则可以在大量的历史数据中获得。
2.3基于神经网络的车辆预测模型
预测模型将采用三层bp神经网络,即一个输入层,一个隐层以及一个输出层,输入层一共有5个变量,分别是时间、车辆位置、天气情况、星期情况以及节假日。隐含层节点数目一共有11个节点。输出层为1个节点,采用有导师的学习方法。至此本文建立的bp网络结构为5×11×1,bp网络结构如图3所示。
图3bp神经网络结构
bp神经网络的车辆运行时间测算模型如图4所示。
其中:t 为当前时刻,w(t-t),当前时刻t之前t时刻神经网络输入层与隐层以及隐层与输出层之间的权值矩阵。
f(t):车辆从起始站到当前时刻车辆的运行时间。
f’(t):预测样本的输出时间。
xi(t):t时刻的第i个输入向量,i∈[0,1],其中xi为车辆在t时刻到达调度站的距离的输入向量,x2为天气情况输入向量,x3为车辆运行所处的星期输入向量,x4为车辆运行当天是否节日的输入向量,x5为gps采集数据的时刻向量。
图4bp神经网络的车辆运行时间测算模型
2.4样本数据取值及归一化方法
(1)gps定位数据。在车辆运行过程中,对车载gps数据进行采集,采集完成后通过一定的方法进行计算,从而得出车辆离到达站的距离,设该距离为一对一使用归一化处理,使得转换后的数值就落在(0,1)上。
(2)天气情况。在一段时间内,公交车会碰到不同的天气,不同的天气对公交的运行产生不同的影响。我们把天气进行分类,一共分为7种状况,分别是大雨、小雨、雪、大雾、小雾、晴天和阴天,用不同的数字来表示这7种天气情况。
(3)星期情况。对于不同的星期采用不同的分类方法表示,从星期一到星期日也采用不同的数字表示。
(4)节假日。节假日可以用布尔变量来表示,true是节假日,false为非节假日。
3结语
国内大多数公交调度优化研究都是着眼于静态调度,而本文将研究重点放在了实时调度方面,在智能公交实时调度中加入bp神经网络技术,用误差反向传播算法超强的学习能力和泛化能力,通过对公交海量历史调度数据的学习,建立公交车到达目的站点的预测模型。通过实时gps数据,就可以预测车辆到达目的地的大概时间,为建立智能公交调度提供极大的方便。
参考文献参考文献:
\[1\]李翔,朱全银.adaboost算法改进bp神经网络预测研究[j].计算机工程与科学,2013(8).