前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的经典神经网络算法主题范文,仅供参考,欢迎阅读并收藏。
关键词: 模拟电路; 特征选择; 故障诊断; 神经网络; 粒子群算法
中图分类号: TN710.4?34; TP183 文献标识码: A 文章编号: 1004?373X(2016)19?0140?04
Abstract: The analog circuit is influenced by its characteristics and external environment, and its fault is non?linear and time?varying. The available fault diagnosis models of analog circuit are difficult to solve the match problem of features and classifier parameters, an analog circuit fault diagnosis model based on particle swarm algorithm optimizing feature and neural network is presented. The current situations of analog circuit fault diagnosis are analyzed, and their shortcomings are pointed out. The features of analog circuit fault diagnosis are extracted. The neural network is used as the classifier of analog circuit fault diagnosis. The analog circuit fault features and neural network parameters are optimized with particle swarm optimization, and simula?ted with Matlab 2012. The results show that the performance of the proposed model is superior to that of other reference models, and has wide application prospects.
Keywords: analog circuit; feature selection; fault diagnosis; neural network; particle swarm optimization
0 引 言
当前电网系统规模不断增大,各种电路越来越复杂,电路出现故障的概率急剧上升,相对于数字电路,模拟电路工作环境更加复杂,再加上自身特性,模拟电路故障诊断具有更加重要的实际应用价值,一直是电网系统研究中的重点[1]。
国内外学者对模拟电路故障诊断进行了相应的探索和研究,提出了许多有效的模拟电路故障诊断模型[2]。当前模拟电路故障方法主要分为传统模型和现代模型两类方法,传统模型主要有专家系统与灰色理论等[3?4],属于线性的模拟电路故障诊断模型,对小规模模拟电路故障诊断效果好,但对于大规模的模拟电路,建模效率低,同时由于模拟电路工作状态与特征间是一种复杂的非线性关系,传统模型无法描述其变化特点,故障诊断正确率急剧下降,难以满足模拟电路故障诊断的实际应用要求[5]。现代模型基于非线性理论进行模拟电路故障诊断建模,主要有神经网络与支持向量机等[6?7],现代模型通过自适应学习拟合电路工作状态与特征间的非线性关系,成为当前模拟电路故障诊断的主要研究方向,其中支持向量机的训练过程相当耗时,很难满足模拟电路的故障诊断要求,应用范围受到一定的限制[8]。神经网络的学习速度要快于支持向量机,且模拟电路故障诊断结果不错,尤其是BP神经网络进行故障诊断时,速度较快,应用最为广泛[9]。BP神经网络的模拟电路故障诊断结果与参数相关,如参数选择不当,则会导致模拟电路故障诊断性能下降[10]。模拟电路的状态特征同时亦与诊断结果密切相关,然而当前模拟电路故障诊断模型将神经网络参数与特征选择问题分开考虑,完全割裂了两者之间的关系,无法构建高准确率的模拟电路故障诊断模型[11]。
针对当前模拟电路故障诊断中的特征和神经网络参数不匹配的问题,提出一种粒子群算法选择特征和神经网络的模拟电路故障诊断模型(PSO?BPNN)。在Matlab 2012平台进行了仿真实验。结果表明,本文提出模型的模拟电路故障诊断性能要远远优于其他参比模型。
1 相关理论
1.1 模拟电路工作状态的特征提取
Step3:更新惯性权重,调整粒子的飞行速度和位置,产生新的粒子群。
Step4:若达到了结束条件,就可以得到模拟电路故障诊断的最优特征子集和最合理的BP神经网络参数。
Step5:建立模拟电路故障诊断模型,并对待检测的模拟电路故障进行检测,根据检测结果采取相应的措施。
3 结果与分析
为了分析PSO?BPNN的模拟电路故障诊断性能,采用图2的模拟电路进行仿真实验,在Matlab 2012平台下进行编程实现PSO?BPNN,模拟电路故障诊断参比模型为:
(1) 原始模拟电路故障诊断特征,BP神经网络参数随机确定的模拟电路故障诊断模型(BPNN1);
(2) 原始模拟电路故障诊断特征,粒子群算法优化BP神经网络参数的模拟电路故障诊断模型(BPNN2);
(3) 粒子群算法选择模拟电路故障诊断特征,然后随机确定BP神经网络参数的模拟电路故障诊断模型(BPNN3)。
共收集100个模拟电路故障诊断的训练样本,50个模拟电路故障诊断测试样本,采用PSO?BPNN对训练样本进行学习,所有模型都运行100次,然后统计测试样本的实验结果,其平均诊断率和误诊率如图3,图4所示,对图3,图4的模拟电路故障诊断结果进行对比和分析,可以得到如下结论:
(1) 与BPNN1的实验结果相比较可以发现,BPNN2获得了更优的模拟电路故障诊断结果,因为BPNN2采用粒子群算法优化了BP神经网络参数,使得模拟电路故障诊断率更高,这表明BP神经网络参数会影响模拟电路故障诊断的结果。
(2) BPNN3的模拟电路故障诊断也要优于BPNN1,这是由于粒子群算法对模拟电路故障特征进行了选择和优化,得到了对电路故障诊断结果有重要作用的特征子集。
(3) 在所有模拟电路故障诊断模型中,PSO?BPNN的模拟电路故障诊断率最高,误诊率得到了降低,这是由于BPNN2和BPNN3只从一个方面对特征或者BP神经网络参数进行了优化,没有同时对它们进行优化,因此不可能建立性能优异的模拟电路故障诊断模型,而PSO?BPNN同时从特征和BP神经网络参数两个方面进行优化,因而能够获得更加理想的模拟电路故障诊断结果。
4 结 语
传统模拟电路故障诊断模型仅对特征或者BP神经网络参数进行优化,易出现特征和分类器参数不匹配的问题,为此提出基于PSO?BPNN的模拟电路故障诊断模型,首先根据Volterra级数提取模拟电路工作状态的特征,然后采用BP神经网络作为模拟电路故障分类器,并利用粒子群算法优化特征和BP神经网络参数,最后进行仿真实验,仿真结果表明,PSO?BPNN解决了当前模拟电路故障诊断模型存在的局限性,获得了更高的模拟电路故障诊断率,在模拟电路故障诊断中具有广泛的应用前景。
参考文献
[1] 朱大奇.电子设备故障诊断原理与实践[M].北京:电子工业出版社,2008.
[2] 陈圣俭,洪炳熔,王月芳,等.可诊断容差模拟电路软故障的新故障字典法[J].电子学报,2006,4(2):129?136.
[3] 金瑜,陈光福,刘红.基于小波神经网络的模拟电路故障诊断[J].仪器仪表学报,2007,28(9):1600?1604.
[4] 刘本德,胡昌华,蔡艳宁.基于聚类和SVM多分类的容差模拟电路故障诊断[J].系统仿真学报,2009,21(20):6479?6482.
[5] 黄洁,何怡刚.模拟电路故障诊断的发展现状与展望[J].微电子学,2004,34(1):21?25.
[6] 彭敏放,何怡刚,王耀南.模拟电路的融合智能故障诊断[J].中国电机工程学报,2006,26(3):19?24.
[7] 张超杰,贺国,梁述海.小波变换与主元分析相结合的模拟电路检测方法[J].哈尔滨工程大学学报,2010,31(5):570?575.
[8] 刘美容,何怡刚,方葛丰,等.遗传小波神经网络在模拟电路故障诊断中的应用[J].湖南大学学报,2009,36(3):40?44.
[9] 申宇皓,孟晨,张磊,等.基于同步优化的支持向量机模拟电路故障诊断方法研究[J].太原理工大学学报,2010,41(4):420?424.
[10] 胡清,王荣杰,詹宜巨.基于支持向量机的电力电子电路故障诊断技术[J].中国电机工程学报,2008,28(12):107?111.
[11] 王承,叶韵,梁海浪,等.基于多频测试和神经网络的模拟电路故障诊断[J].计算机工程与应用,2013,49(5):1?3.
关键词:聚类;k-means;算法;实验
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)32-1176-02
Study on the Initial Centrists of K-means Algorithm
MOU Ying1, QUAN Tai-feng2
(1.College of Physics and Information Technology, Chongqing Normal University, Chongqing 400047,China;2.Chongqing Communication Institute, Chongqing 400035, China)
Abstract: In order to conquer the problem that k-means algorithm depends on initial cluster centrists, so this paper discusses use competition neural network and the mind of density to improve the classic k-means algorithm. The two methods are able to improve the random choice of the initial centrists in the classic k-means algorithm. Experimental results show that the two algorithms are effective.
Key words: clustering; K-means; algorithm; experiment
1 引言
聚类是将数据对象分组成为多个类或簇,在同一个簇中对象之间具有较高的相似度,而不同簇中的对象之间差别较大[1]。在聚类算法中,K-means算法是其中一种最常用最知名的划分方法[2],它根据事先确定的K值,把样本分为K类,使所有样本到聚类中心的距离平方和最小。现在K-means算法已经应用到各种领域,包括图像和语音数据压缩,用径向基函数网络进行系统建模的数据处理等[3],但经典K-means算法在运行初期随机产生聚类初始点;如果初始聚类点离数据本身中心较近,则算法运行效率较高否则反之。
本文将竞争神经网络和经典K-means算法相结合,提出一种基于竞争神经网络的K-means算法。另外还采用基于密度的思想进行寻找初始聚类中心,从而改变经典K-means算法对初始聚类中心的随机选择。实验结果表明,这两种方法有效的克服了K-means对初始聚类中心的依赖性。
2 经典K-means算法
经典K-means算法的基本思想是:给定一个包含n个数据对象的数据库,以及要生成的簇的数目k,随机选取k个对象作为初始的聚类中心,然后计算剩余各个样本到每一个聚类中心的距离,把该样本归到离它最近的那个聚类中心所在的类,直到调整结束且聚类平均误差准则函数E已经收敛。
K-means算法的具体描述如下:
1)任选k个对象特征矢量作为初始聚类中心:z1(0),z2(0)…zk(0),令t=0
2)将待分类的对象特征矢量集{xi}中的对象逐个按最小距离原则分配给k类中的某一类,即
如果
i=1,2,…N(1)
则判xi∈wi(t+1)。
其中dij(t)表示xi和wj(t)的中心zj(t)的距离,上角标表示迭代次数。于是产生新的聚类wj(t+1)(j=1,2,…,k)。
3)计算重新分类后的各类心
式中nj(t+1)为wj(t+1)类中所含对象的个数。
因为这一步采取平均的方法计算调整后各类的中心,且定为k类,故称K-均值法。
4)如果Zj(t+1)=Zj(t)(j=1,2,…,k),则结束;否则,t=t+1,转至(2)
经典K-means算法的计算复杂度为O(nkt),其中,n为对象个数,k为聚类个数,t为循环次数。由于它要求用户输入希望产生聚类的数目,而实际中的k值也很难被精确的确定,往往表现为一个模糊的取值区间[4]。并且在经典K-means算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择得不好,可能无法得到有效的聚类结果,所以这个算法的聚类结果对初值的依赖是很强的,这也成为K-means算法的一个主要问题。然而其方法简单,结果尚令人满意,故应用较多。
3 两种改进算法介绍
3.1 基于竞争神经网络的K-means算法
竞争神经网络是基于生物神经系统中的“侧抑制”现象形成的。竞争神经网络的显著特点是它的输出神经元相互竞争以确定胜者,胜者指出哪一种原型模式最能代表输入模式。竞争神经网络是一种“自发”分类器,一种基于感知机的无监督的神经网络[5]。因此利用竞争神经网络来对经典K-means算法的初始聚类点进行改进,使改进后的K-means算法的初始聚类中心稳定的靠近于数据本身的类中心,从而减少经典K-means的循环次数。
考虑到竞争神经网络的建网速度,在训练竞争神经网络的时候,将原始数据按照10%进行采样,用采样后的数据建立竞争神经网络。按照竞争神经网络的聚类结果,将簇中数据的均值作为初始聚类中心输入经典的K-means算法,从而起到优化初始聚类中心的作用。具体的采样方法是,以α为半径画圆,在这个圆内随机选取数据点的10%作为采样数据,α越小,其采样频率越高,采样到的数据越多;α越大,其采样频率越低,采样到的数据越少。当α取一个较适中的值的时候,采样到的数据可以反映原始数据的分布,也能够有效的减少数据量。
图1为基于竞争神经网络的K-means算法的流程图。
算法描述如下:
1)从文件中读出数据。
2)利用最小-最大规范化操作将数据的每个属性映射到 空间。
3)采用欧式距离,计算各个数据之间的相异度矩阵。
4)计算Davg=AVG(Dij),α=Davg/2即α取数据平均相异度的一半。以α为半径,按10%的采样频率进行数据采样。
5)将采样后的数据输入竞争神经网络进行初始聚类。
6)将初始聚类产生的各个簇的对象的均值作为经典K-means算法的初始聚类中心。
7)运行经典K-means算法。
3.2 一种基于密度的K-means算法
由于经典的K-means算法对聚类个数和初始聚类中心存在依赖性的问题,所以其结果可能是局部最优的。如果随机选择的聚类初始点靠近于数据本身的中心,则算法运行的循环次数少,而且数据分类也比较合乎实际;当随机选择的初始聚类点不是很好的时候,算法运行的循环次数会增加,而数据分类也在一定程度上趋向于局部最优。这个改进思路就想利用数据的分布,寻找能够代表不同簇的数据,并利用他们周围的数据来对这些数据进行修正,试图寻找比较靠近于数据本身中心的初始聚类点。具体来说,首先寻找相距最远的两个点A和B,认为他们代表数据的两个簇。然后选取一个点C,使AC和BC的距离都大于某一个值,如此重复,直到找到k个代表点。接着在每个代表点附近寻找α・n/k个点,其中α表示采样频率,n表示数据个数,k表示簇数目。这些点和该代表点属于同一簇,然后对这些认为属于各簇的数据求平均,将得到的k个初始聚类点输入经典K-means算法。图2为一种基于密度的K-means算法的流程图。
算法描述如下:
1)从文件中读出数据。
2)输入k,表示数据需要聚成几类。
3)利用最小-最大规范化操作将数据的每个属性映射到[0,1]空间。
4)采用欧式距离,计算各个数据之间的相异度矩阵。
5)寻找两个相距最远的点,设为A和B,将它们作为簇中心,置h=2。
6)如果k>h,寻找一个点C,使C到已有簇中心的聚类大于ymax-β,其中ymax=(Davg+MAX(Dij))/2,Davg=AVG(Dij) (0
7)在这k个点的周围,寻找与其最近的α・n/k个点,其中α=0.1。
8)将这些认为属于某个簇的点做平均,将他们的均值作为经典K-means算法的初始聚类中心。
9)运行经典K-means算法。
4 实验
4.1 测试数据
本文的算法均使用matlab进行仿真实验,并与经典K-means算法进行比较。为了便于更加直观的观察聚类结果,采用了主元分析(PCA)进行降维处理,将数据投影到3维空间上进行显示。实验测试数据采用来自UCI测试库的专门用于测试分类、聚类算法的Iris数据库,以及一组客观的个人信用数据。表1列出了各测试数据集的记录数、属性数和类别数。
4.2 实验结果对比
首先实验同时使用两种改进算法和K-means算法对Iris数据进行聚类,表2是三种算法的实验结果对比,其中可以看出,两种改进方法的循环次数远远小于经典K-means算法。
然后实验同时使用两种改进算法和K-means算法对Credit数据进行聚类,表3是三种算法的实验结果对比,其中可以看出两种改进方法的循环次数小于经典K-means算法。
4.3 实验结果分析
通过实验结果对比可以看出:经典的K-means算法与聚类数目和初始聚类中心的选择有很大关系,多次运行算法,从不同的初始聚类中心出发会得到不同的聚类结果和准确性,具有一定的主观性和随机性,算法稳定性不好。基于竞争神经网络的K-means算法在运行经典的K-means算法之前用竞争神网做了一个预处理,而基于密度的K-means算法在运行经典的K-means算法之前做了一个预处理。这两种算法都改变了初始聚类中心的随机选择,使输入经典K-means算法的初始聚类中心离数据本身的类中心较近,改变其对聚类初始中心的依赖问题;而在竞争神网建立网络的时候,利用采样数据进行训练,有效降低了数据量,减少了竞争神网的建立速度;并且多次运行算法,结果较稳定。从实验结果也可以看出,它在两组测试数据上运行得较好。
5 结论
本文针对经典K-means算法的主要不足,采用优化聚类中心的方法提出了基于竞争神经网络的K-means算法和基于密度的K-means算法,从而使K-means算法能够自适应的确定聚类中心,避免初始聚类中心的随机性,在一定程度上弥补了经典算法的不足。
从实验的结果来看,采用随机选取初始聚类点的方法,初始聚类中心靠近数据本身的类中心时近时远,非常不稳定,用于实际的数据聚类,效果不太好。而采用了一系列的改进算法后,其初始聚类点离数据本身类中心较近,并且较稳定,用于实际的数据聚类,效果较好。
参考文献:
[1] HAN Jia-wei, Kamber M.数据挖掘:概念与技术[M].范明,孟小峰,译.北京:机械工业出版社,2001:223-230.
[2] Belouchrani A,Abed-meraim K,Cardoso J F,et al.A Bjind Source Separation Technique Using Second-order Statistics[J].IEEE Trans.Signal Processing,1997,45(2):434-444.
[3] Charalampidis D,Kasparis T.Wavelet-Based Rotational Invariant Roughness Features for Texture Classification and Segmentation[J].IEEE Transactions on Image Processing,2002,11(8):825-837.
[关键词]无线传感器,路由,BP神经网络
中图分类号:TN929.5 文献标识码:A 文章编号:1009-914X(2015)41-0243-01
1.概述
近年来,微电子机械系统、无线通讯和数字化电子领域快速发展,使得开发出用于短距离通信的低能耗、低成本、多功能传感器节点成为可能。这些节点能感知环境,数据处理和通讯[1]。基于传感器节点协作的传感器网络提升了应用领域与能量,传感器网络是传统传感器研究的重大改进。
传感器网络有广泛的应用领域,可以用于监控和收集分布式区域中的各种目标和信息。图1展示了一个经典的WSNs,该领域主要是设计一个有效的路由算法,增进通讯连通能力,目标是减少能量消耗、延长传感器网络的生命周期。与能量消耗相关的论文研究成功近年来不断涌现。
2.无线传感器路由问题建模
一个大的传感器网络由很多簇组成。传感器节点并不直接发送数据,而是在一个簇中由一个中心节点(Sink)完成数据收集工作。但是,由于发射信号限制,一个传感器节点只能和它发射半径之内的其它节点相连,本文的内容就是针对一个簇之内的信息收集工作展开的。
S是所有传感器节点的集合,E是一个节点的连接集合。是簇中的一个节点,代表着在节点u和v之间传输 1k的数据需要消耗的能量,本文使用如下无线通讯模型:接收1KB的数据包消耗传感器节点 1k的电能,发送放大器的能量消耗与距离相关,节点(u, v)之间用C(u, v)代表[2]。信息收集路径从sink节点开始,完成信息收集之后返回到同一节点,代表着一个完整的路径,so是sink节点。路由的能量消耗按如下公式定义:
D 代表传输数据的大小,是一个动态值。
3.基于BP神经网络的数据融合模型
反向传播网络(BP网络)是前向神经网络中最重要的一种,该网络的监督学习算法采用误差反向传播算法。该算法[3]的学习过程主要有两个:信号的正向传播与误差的反向传播。主要是通过修正各层神经元的权值,使得总的误差信号最小。近几年,,研究人员开展了很多基于神经网络的无线传感器网络数据融合方面的研究工作。实验结果表明,把BP神经网络应用传感器数据融合中,可以大大降低传送数据的特征维数,提高无线网络的数据融合效率。
3.1 BP神经网络
BP网络是利用BP算法的前向型神经网络,其是在多层感知器的基础上增加了反向传播信号,可以较好地处理非线性的数据信息,具有较好的泛化能力,广泛地应用在系统模型辨识、预测或控制。
BP神经网络中的神经元模型中的激发函数通常选用非线性的Sigmoid函数:
只有当系统特性在正负区间变化时,激发函数选择对称的Sigmoid函数,又称为双曲函数:
BP神经网络的网络结构由输入层、输出层和隐层组成,其中隐层可以有多层,不过最常用还是单隐层的三层BP网络。
3.2 BP神经网络权值调整规则
BP网络的学习过程是就将误差反向传播并修正网络权值直到网络的总误差最小。定义BP神经网络的输入输出模型对应的系统误差函数为:
利用梯度最速下降法解析如何调整连接权值使误差函数E最小。
BP神经网络训练过程[4]:当确定网络结构后,始对BP神经网络进行训练。BP神经网络的学习是由信号的正向传播与误差的反向传播两个过程组成的,在正向传播时,输入样本信号从输入层进入网络,通过隐层处理最后传送给输出层,如果输出结果与期望值不符,则把误差进行反向传播,根据上面的权值调整系数调整权值的变化,直到网络输出层的输出结果满足要求为止。
4.基于BP神经网络的 路由仿真实验
无线传感器网络与神经网络在有些地方很类似,比如无线传感器网络中的传感器节点具有感知数据处理信息的能力,相当于神经网络中的神经元;无线传感器网络节点之间通过一定的规则传递信息,则相当于连接神经元的突触。神经网络算法与无线传感器网络中应用的数据融合技术有相同的功能,即通过一定的规则对大量的数据进行运算处理,从而得到反映这些数据特征的结果。因此,可以把神经网络算法应用到无线传感器网络中实现数据的融合。
实验中,设置传感器节点数目为 100,200,300,400 和 500。传感器网络环境是一个 200m*200m 的空间[5-6]。令传输数据的大小为 1KB,发射半径分别为 20m 和 30m。实验结果是 50 次运行的平均值。图2 和图 3现实了算法在不同数据集上最有解的变化趋势,从中可以看出能量的逐步变化,并且,图 3 的能量消耗更小,因为发射半径较大。
5.结论
本文利用BP神经网络模型解决无线传感器网络路由问题,实验中,采用了不同规模的网络实验数据,并同该领域其它经典算法进行比较,验证了本文所提方法在该领域的有效性。下一步的可针对模型在大规模数据集上表现没有中小规模优秀的问题方面展开。
参考文献
[1]张重毅,适用于无线传感器网络的移动路由算法[D]. 吉林: 吉林大学计算机科学与技术学院, 2007.
[2] 李凤保,李凌.无线传感器网络技术综述[J]. 仪器仪表学报, 2005,26(3):559-561.
[3] Shih E, Cho S, Ickes N, Min R, Sinha A, Wang A, Chandrakasan A. Physical layer driven protocol and algorithm design forenergy-efficient wireless sensor networks[C]. Proceedings of the ACM MobiCom 2001, Rome: ACM Press, 2001, 272-286.
[4] 唐勇,周明天,张欣.无线传感器网络路由协议研究进展[J]. 软件学报,2006,17(3):410-421.
关键词:人工神经网络 峰值识别理论 洪水预报
洪水预报作为非工程性防洪措施正日益受到重视,准确及时的洪水预报为防洪决策提供了科学的依据.人工神经网络模拟了人类大脑的结构及其功能,从而具有对模糊信息或复杂的非线性关系进行识别与处理的能力[1,2].
早期关于人工神经网络在水文水资源系统中的应用与研究的进展情况,文献[3]有较为详细、系统的介绍.其中,关于洪水预报的研究成果,大多处于如何应用人工神经网络算法进行洪水预报的阶段,即如何将洪水预报的实际问题概化成人工神经网络可以识别的算法模型.近期的研究成果表明,研究的问题更加深入,如LINDA SEE(1999)[4]将洪水过程分为上升段、洪峰段和下降段三部分,分别建立相应的预报模型,充分考虑了不同阶段的洪水过程其演进规律的差异.Fi-John Chang(1999)[5]引入洪峰预报误差和峰现误差作为洪水预报精度的评价标准,对于洪峰预报精度给予了高度的重视.能否保证较高的洪水峰值的预报精度,是将人工神经网络的实时洪水预报技术实际应用的关键性问题.
本文在总结大量实践经验的基础上[6,7],提出了一种能够进行峰值识别的改进BP算法(Error Back Propagation with Peak Recognizer,简称BPPR).该算法在修改网络权重时偏重大值,即大值误差对权重的修改起主要作用.这种改进的BP算法使人工神经网络洪水预报模型对洪峰峰值的预报精度显著提高,从而保证了洪峰预报的可靠性.
1人工神经网络的峰值识别理论
洪水预报主要是为防汛服务的,通常对洪峰时段的水位(或流量)的准确预报尤为重要.但是,对于经典的BP算法,网络训练是根据全局误差修改网络权重的,这种权重修改方法很难控制洪峰水位(或流量)的训练精度,训练后的网络权重所贮存的信息很可能更多地反映了样本数量较大的中、低水位(或流量)的变化规律.所以,经过训练的网络对中、低水位(或流量)的预报精度相对较高,而对洪峰的预报精度往往低一些.如何提高人工神经网络模型对洪峰水位(或流量)的预报精度,是人工神经网络理论应用于洪水预报的关键问题之一.
本文是在结合实际课题广泛研究的基础上,提出了一种能够提高网络模型峰值识别精度的改进BP算法.
1.1 峰值识别的基本思想 经典BP算法的训练过程由信号的正向传播与误差的逆向传播两个过程组成.其中,误差的逆向传播是基于网络全局误差并按“误差梯度下降”的原则对网络权重进行修改.如果对原来基于“全局误差”的权重修改原则进行合理调整,使权重的修改倾向于减小输出值较大样本的网络映射误差,这是峰值识别原理的基本思想,其实质是在误差逆向传播的网络权重修改过程中,遵循了侧重于“峰值样本误差”的权重修改原则.
1.2峰值识别的算法峰值识别理论的实现方法,是在引入动量项和采用学习率自适应调整的改进BP算法[4]的基础上,对峰值样本的网络误差引入合理的修正系数,使网络的权重向着使峰值训练误差减小的方向修改.
首先,从经典BP算法开始.设有输入为x1(t)、x2(t)、…、xn(t)的n维输入,输出为xL1(t)、xL2(t)、…、xLm(t)、的m维输出和若干隐层组成的多输入、多输出人工神经网络模型.这里的t为样本序列号,这样的样本共有P对.
第l层中第i个神经元节点所接收到的上一层输入总和为
式中:Nl为第l层神经元节点总数;w(l)ij为第l层i节点与第l-1层j节点之间的连接权重;θ(l)i为第l层i节点的阈值.
第l层中第i个神经元节点的输出为
x(l)i(t)=f(y(l)i(t))=1/1+exp(-σy(l)i(t)) (1≤l≤L,1≤i≤Nl) (2)
式中:f()为转移函数,这里采用的是对数型的单极性Sigmoid函数;σ为决定Sigmoid函数压缩程度的系数.该系数越大,曲线越陡;反之,曲线越缓.
则,当训练次数为k时,网络输出层及隐层的误差信号可表示为
式中:d(L)i(t)为训练样本的期望输出.
那么,网络权重的修改公式为
式中:η(k)为训练次数为k时的学习率;α为动量项系数.
以上为经典BP算法的基本内容.基于峰值识别的思想,实现网络误差修正倾向于输出样本的较大值,定义误差修正系数ξ
ξi=di(L)(t)/d(L)max(t) (7)
式中:d(L)max(t)为训练样本期望输出的最大值.
为了进一步提高神经网络模型的训练速度,改善网络峰值识别的精度,可以在上述修正系数的基础上,增设误差修正放大系数μ.那么,加入误差修正系数ξ及误差修正放大系数μ后,当训练次数为k时,网络输出层误差信号的向量表达式如下
应用该算法进行网络训练,能够使峰值误差修正占优,从而提高网络对峰值的映度.
2 应用实例
2.1 工程概况及基本模型 珠江流域西江段的水系关系比较复杂,如图1所示.从柳州站、迁江站、南宁站或贵港站预报梧州站洪水目前还是一个难题.结合现有的研究成果,介绍洪水预报峰值识别理论的有效性.选取珠江流域从对亭站、柳州站、迁江站、南宁站预报江口站洪水的江口站洪水预报模型,分别以BP算法与引入峰值识别理论的BPPR算法进行网络训练.以多年实测记录数据为训练样本,并采用下一年的记录数据为测试样本,即以1988、1992~1994、1996~1998各年的水位(流量)资料为训练样本,以1999年水位(流量)资料作为测试样本.
图1 珠江流域西江段主要水情站及洪水平均传播时间示意
*传播时间单位:h
传统相应水位的洪水预报方法是根据天然河道洪水波的运动原理,分析洪水波在运动过程中,波的任一相位自上游水情站传播到下游水情站的相应水位及其传播时间的变化规律,寻找其经验关系,以此进行洪水预报[8].人工神经网络对信息的分布存储、并行处理以及自学习的能力,决定了它具有对模糊信息和复杂非线性关系的识别与处理能力.网络的训练学习过程,就是网络认知事物内在规律的过程.构造基于人工神经网络洪水预报模型的首要问题,是如何将洪水过程合理地概化成人工神经网络可以映射的输入、输出关系.
以上游干流和主要支流水情站的水位(流量)资料作为网络模型的输入,以下游水情站所形成的相应水位(流量)作为网络模型的输出;同时,将下游同时水位(流量)作为网络模型的输入,以模拟下游初始水位的影响.洪水自上游水文站至下游水文站的传播时间就是网络对洪水的预见期.
本题中所建立的江口站洪水预报模型中,作为江口站的上游水文站共有对亭、柳州、迁江和南宁等站,其中的迁江站处于干流河道.值得一提的是,对亭站方向的来水属山区洪水,特点为量小、峰高、历时短,洪水过程线陡起陡落,其结果是水位的变化非常大,而实际的流量又很小,这无疑会影响水位预报模型的识别精度.为了减少这种小支流的干扰,在建立水位预报模型时,未将对亭站的水位作为输入项.在建立流量预报模型时,为了保证水量的总体平衡,仍将对亭站的流量作为一项输入.
以3h为一个间隔时段进行洪水数据采集来组织样本,以干流迁江站t时刻水位(流量)、对亭站(t-3)时刻流量、柳州站(t-3)时刻水位(流量)、南宁站(t-8)时刻水位(流量)和江口站t时刻水位(流量)作为网络的输入,江口站(t+T)时刻的水位(流量)为网络的输出.其中,T为网络的预见期,即洪水自上游迁江站传播到江口站的时间,亦为峰现时间.在组织样本时,采用洪水在各站间的实测传播时间,但网络预报的预见期为平均预见期,即T=9时段,约28h(洪水在各站间的传播情况见图1).图2为江口站洪水预报模型的网络拓扑结构图.
图2 江口站洪水预报模型的网络拓扑结构
在网络结构设计中,输入与输出节点数由实际问题而定,而隐层数及隐层节点数是网络设计中的关键问题.在实际问题中,常常无法估计问题的真实复杂程度,通常采用双隐层.关于隐层节点数目的确定,直接关系到能否成功地解决问题.实际上,隐层节点数决定于训练样本的多少、样本噪音的大小以及所面对问题的复杂程度.若隐层节点数太少,网络映射能力不足;若隐层节点数太多,不仅增加网络的训练时间,还会引发所谓“过度吻合”问题,即虽然增加了训练精度,但是由于网络过多地获得了样本的个性特征,而掩盖了样本的共性特征,从而造成预报精度的下降.目前的研究成果,还不能在理论上提供一套科学的推导方法,试算法是可靠的常规方法.本题经多次试算,合理的拓扑结构为:水位预报模型(4-40-20-1),流量预报模型(5-40-20-1).
图3 水位预报模型中BP算法与BPPR算法映结果比较
网络模型的初始权重在(-1,1)之间随机产生,动量项系数α取0.9.初始学习率η0在基本BP算法中取0.001,在BPPR算法中取0.0005,初始学习率往往会因不同网络模型而不同.BPPR算法的峰值误差修正放大系数μ取2.0.水位模型的训练停止条件为平均映射误差l≤0.20m,流量模型的训练停止条件为平均映射误差q≤500m3/s.
2.2 计算成果 分别采取BP算法与BPPR算法进行网络模型的训练,两种算法对于峰值水位(流量)的映射情况见图3、图4.以完成训练的网络模型对1999年的洪水情况进行测试预报,预报结果见图5、图6.
图4 流量预报模型中BP算法与BPPR算法映射结果比较
2.3 成果分析 图3、图4反映了完成训练的网络模型对训练样本中洪峰水位与流量的映射情况,从图中可以看到,BP算法对于洪水演进规律具有很高的映度,引入峰值识别理论的BPPR算法能够进一步提高网络对洪水峰值的映度,这种作用对于较高洪峰识别效果更为明显.
图5 1999年水位预报结果比较
图6 1999年流量预报结果比较
图5、图6为网络模型对1999年洪水主洪峰的预报情况.在水位预报模型中,BP算法对洪峰的预报误差为0.13m(低于实测值);BPPR算法的预报误差为-0.05m(高于实测值).在流量预报模型中,BP算法对洪峰的预报误差为291m3/s;BPPR算法的预报误差为-83m3/s.
这里所采用的峰值误差修正放大系数μ实质上与样本集中大值样本所占的比例有关,大值样本所占比例越小,μ的取值越大;反之,则小.在实际操作中,ξμ是作为一个参数进行权重调节计算的,所以μ的取值又受样本集中最大值和最小值间比例关系的限制.
如果放大系数选取过大,网络训练容易失稳,造成训练误差增大;反之,网络权重的修改难以体现洪峰样本的贡献.具体取值由实际问题而定,在珠江流域的洪水预报模型中,放大系数的取值范围为1.5~2.5.
从网络模型的训练识别和测试预报两方面的研究成果来看,人工神经网络对于洪水演进规律的识别具有较高的精度,能够模拟洪水的动态过程,其中,引入峰值识别理论的BPPR算法有利于提高模型对峰值的映射与预报精度,效果明显.这些改进效果对于水文水资源预报中,可能效果并不十分显著,但在防汛中,水位预报对防洪决策至关重要,往往十几厘米的误差,直接影响到防洪方案的决策.因此,峰值识别理论对基于BP算法的洪水预报模型来讲,具有重要意义.
3 结束语
基于人工神经网络的洪水预报方法作为防洪减灾领域一种新的研究途径,将智能化思想引入到对洪水过程的计算模拟,更能反映洪水复杂非线性的动态演进规律.研究结果表明,人工神经网络算法能够很好地映射洪水的演进规律,做到对洪水实时的监测与预报,预报精度较高.
针对洪峰预报精度在防洪减灾工作中的重要性,本文提出了基于峰值修正理论的BPPR算法,该算法能够很大程度上提高峰值的训练与预报精度,从而保证了洪水预报网络对洪峰水位、流量预报结果的可靠性,具有很高的实际应用价值.这种峰值识别理论与算法还可以应用于潮汐预报、地震预报等峰值预报过程起主要作用的相关领域,具有一定的普适性.
关键字:汽车电机故障方法
1.电机故障诊断的特点及实施电机故障诊断的意义
1.1电机故障诊断的特点
电机的功能是进行电能与机械能量的转换,涉及因素很多,如电路系统、磁路系统、绝缘系统、机械系统、通风散热系统等。哪一部分工作不良或其相互之间配合不好,都会导致电机出现故障。因此,电机故障要比其它设备的故障更复杂,其故障诊断所涉及到的技术范围更广,对诊断人员的要求也就更高。一般来说,电机故障诊断涉及到的知识领域主要有[20]:电机理论、电磁测量、信号处理、计算机技术、热力学、绝缘技术、人工智能等。电机故障诊断的复杂性还表现在故障特征量的隐含性、故障起因与故障征兆之间的多元性。一种故障可能表现出多种征兆,有时不同故障起因也可能会反映出同一个故障征兆,这种情况下很难立即确定其真正的故障起因。另外,电机的运行还与其负载情况、环境因素等有关,电机在不同的状态下运行,表现出的故障状态各不相同,这进一步增加了电机故障诊断难度,所以要求对电机进行故障诊断首先必须掌握电机本身的结构原理、电磁关系和进行运行状况分析的方法,即掌握电机各种故障征兆与故障起因间的关系的规律。
1.2实施电机故障诊断的意义
电机的驱动易受逆变器故障的影响,在交流电机驱动系统中,逆变器短路故障将会使电机产生有规律波动的或是恒定的馈电扭矩,使车辆突然减速。研究表明:逆变器出现故障时,永磁感应电机将产生较大的馈电扭矩,而且永磁电机也有存在潜在的高消磁电流的问题。而感应电机在逆变器出现故障时所产生有规律的馈电扭矩将由于有持续的负载而迅速衰减,这说明了感应电机具有较高的容错能力,适应混合动力系统的要求。开关电机磁阻是最具有故障容错能力的电机,而且当其有一个逆变器支路出现故障时电机仍能产生净扭矩,另外,开关磁阻电机成本低,结构紧凑,但是开关磁阻电机有较大的噪声和扭矩脉冲,而且需要位置检测器,而这些缺点使得开关磁阻电机在现阶段不适合应用于混合动力客车上。在混合动力客车动力系统中,电机是作为辅助动力的,而且电机属于高速旋转设备,如果电机出现故障,电机产生的瞬态扭矩将使车辆的稳定性和动力性将受到影响,而且,电机由高压电池组驱动,如果电机出现故障而不能及时容错,电机产生的瞬态电流将使电池受到损害,因此在混合动力系统中对电机进行故障诊断是非常必要的。
2.电机的故障诊断方法及典型故障诊断分析
2.1电机故障的诊断方法
(1)传统的电机故障诊断方法
在传统的基于数学模型的诊断方法中,经典的基于状态估计或过程参数估计的方法被应用于电机故障检测。图1为用此类方法进行故障诊断的原理框图。这种方法的优点是能深入电机系统本质的动态性质,可实现实时诊断,而缺点是需建立精确的电机数学模型,选择适当决策方法,因此,当电机系统模型不确定或非线性时,此类方法就难以实现了。
(3)基于模糊逻辑的电机故障诊断方法
图3为基于模糊逻辑的电机故障诊断方法框图,故障诊断部分是一个典型的模糊逻辑系统,主要包括模糊化单元、参考电机、底层模糊规则和解模糊单元。其中,模糊推理和底层模糊规则是模糊逻辑系统的核心,它具有模拟人的基于模糊概念的推理能力,该推理过程是基于模糊逻辑中的蕴涵关系及推理规则来进行的。模糊规则的制定有两种基本方法:第一,启发式途径来源于实际电机操作者的语言化的经验。第二,是采用自组织策略从正常和故障电机测量获得的信号进行模糊故障诊断的制定,将此方法通过计算机仿真实现,对电机故障有较好的识别能力。
(4)基于遗传算法的电机故障诊断方法
遗传算法是基于自然选择和基因遗传学原理的搜索算法,它的推算过程就是不断接近最优解的方法,因此它的特点在于并行计算与全局最优。而且,与一般的优化方法相比,遗传算法只需较少的信息就可实现最优化控制。由于一个模糊逻辑控制器所要确定的参变量很多,专家的经验只能起到指导作用,很难根据指导准确地定出各项参数,而反复试凑的过程就是一个寻优的过程,遗传算法可以应用于该寻优过程,较有效地确定出模糊逻辑控制器的结构和数量。
遗传算法应用于感应电机基于神经网络的故障诊断方法的框图如图4所示。设计神经网络的关键在于如何确定神经网络的结构及连接权系数,这就是一个优化问题,其优化的目标是使得所设计的神经网络具有尽可能好的函数估计及分类功能。具体地分,可以将遗传算法应用于神经网络的设计和训练两个方面,分别构成设计遗传算法和训练遗传算法。许多神经网络的设计细节,如隐层节点数、神经元转移函数等,都可由设计遗传算法进行优化,而神经网络的连接权重可由训练遗传算法优化。这两种遗传算法的应用可使神经网络的结构和参数得以优化,特别是用DSP来提高遗传算法的速度,可使故障响应时间小于300μs,不仅单故障信号诊断准确率可达98%,还可用于双故障信号的诊断,其准确率为66%。
近年来,电机故障诊断的智能方法在传统方法的基础上得到了飞速发展,新型的现代故障诊断技术不断涌现:神经网络、模糊逻辑、模糊神经网络、遗传算法等都在电机故障诊断领域得到成功应用。随着现代工业的发展,自动化系统的规模越来越大,使其产生故障的可能性和复杂性剧增,仅靠一种理论或一种方法,无论是智能的还是经典的,都很难实现复杂条件下电机故障完全、准确、及时地诊断,而多种方法综合运用,既可是经典方法与智能方法的结合,也可是两种或多种智能方法的结合,兼顾了实时性和精确度,因此多种方法的有机融合、综合运用这一趋势将成为必然,也将成为电机故障在线诊断技术发展的主流方向。
参考文献:
[1]陈清泉,詹宜君,21世纪的绿色交通工具——电动汽车[M],北京:清华大学出版社,2001
关键词:温度控制系统;研究;实现
国内市场中的注塑机温度控制系统大多采用比例积分微分(pid)控制和模糊控制。在塑料机械中,料桶的温度控制非常关键,低于或者高于塑料的适宜熔融标准都会影响产品的最终成型质量。由于产品成型过程复杂而且可影响因素多,如果可以做好料桶的温控就可以对整个生产起到事半功倍的效果。但是这几种控制方式都需要建立精确的数学模型,而注塑机温度控制系统是一个大滞后、强耦合、非线性的时变系统,建立精确的数学模型是非常困难的,因此pid温控系统的效果并不是很理想,鉴于这种情况,本文引入一个基于bp神经网络的温度pid控制系统来改善注塑机温度控制。神经网络具有表达任意非线性映射的能力,能够对非线性系统进行建模。利用神经网络的这一特点建立动态模型,作为预测控制器的预测模型,可用于热力过程的预测和控制,应用bp神经网络,通过学习和训练逼近对象的真实模型。对温度控制的各相关指标的相对权重确定。影响温度变化各相关因素在输入预测和评估模型时, 需要一组决定其相对重要性的初始权重,权重的确定需要基本的原则作支持。例如确定温度的上限及下限,纯加热控制段的比例,不同位置的温度控制段的默认pid参数等。目前本文使用的是基于经验的三层架构的bp神经网络架构,通过输入层对采样数据的输入,隐含层的各种计算,并把计算结果通过输出传递出去,这样经过在线指导后,可以满足bpn-pids系统的算法的实现。其中各层的连接权值首先通过随机赋值的方式进行,然后根据各指导案例的学习,得到健壮的权重值。
本文的主要工作是设计并实现了一个基于bp神经网络的温度pid控制系统(bp neural network pid system简称为bpn-pids),其核心是 pid神经网络,如图1-2 bpn-pids控制算法所示。本文主要参考了如下的相关技术:pid控制原理,bp神经网络(如图1-1神经网络图所示),matlab软件,b/s软件架构以及asp开发工具,xml数据库存储以及opc行业标准。对于具有多变量强耦合时变特性的温度控制系统,本文所构建的pid神经网络可以通过在线学习建立科学的预测和评估指标体系及设计相应的模型计算方法与学习参数;同时,根据对象参数发生变化时对系统输出性能的影响来调整连接权值,改变网络中比例、积分和微分作用的强弱,使系统具备良好的动态和静态性能,达到系统解耦和温度控制的目的。本文结合不同塑料的具体实际特性, 对指标和模型体系进行了实证分析, 解决了普通pid控制系统的非确定性、非固定性元素。
bpn-pids系统已借助matlab软件进行了仿真与实现。系统架构如图1-3系统框架所示,包括服务器应用端程序,注塑机端相应的应用。
服务器应用端分为通讯模块,控制功能模块与数据库服务,其中控制功能模块为核心。
通讯模块的作用为服务器应用端与注塑机端的通讯并传递相应数据。
控制功能模块为核心模块,通过对传递到的数据分析与运算,进行整个系统的控制。
数据库服务则为控制功能模块服务,它将数据存储到数据库中,需要的时候则可以提取出来。
注塑机端应用分为:上位机应用,下位机应用其中,上位机应用主要作用是采集下位机的数据,经过处理后通过通讯模块给应用程序控制模块进行相应的分析,然后接受控制模块的输出指令,传递给下位机。
下位机的主要作用是通过a/d模块采集料筒的实际温度,然后传递给上位机。再接受上位机的控制指令,对料筒进行是否加热的指令。
由于采用了c/s结构,本文中注塑机端最多可以接连255个客户端。
i)总体结构
设bp神经网络是一个采用三层bp结构,它有m个输入节点,其中,根据算法结构,m=3,q个隐含节点,3个输出节点。输入节点对应所选的系统运行状态量,如系统不同时刻和输入量和输出等,必要时进行归一化处理。输出节点分别对应pid控制器的三个参数kp、ki、kd,由于这三个参数都不能为负,所以输出层神经元激活函数一定要取非负的sigmoid函数。此处根据经验,当q值过小,则算法有可能失败,当q值过大,则算法速度太慢,同时占用资源过多,所以取q=5。
ii)学习算法请参看图1-4 bp神经网络学习算法
(a)、确定bp网络结构,即确定输入层节点数m和隐含层
点数q,并给出各层的加权系数的初值,选定学习速率η和惯性系数α。初值随机赋值,学习速率与惯性系数取习惯值,此时k=1。
(b)、采样得r(k)和y(k),计算该时刻误差e(k)=r(k)-y(k)
(c)、计算神经网络各层神经元得输入、输出,nn得输出即为pid控制器得三个可调参数kp、ki、kd。
(d)、根据增量式算法计算pid得输出u(k)。
(e)、进行神经网络得学习,通过数据库的存储读取,离线调整加权系数,实现pid控制器参数得自适应调整置,重复步骤(b)-(e)。
(f)、置k=k+1,返回到b步骤
在仿真中,比较常规pid与bpn-pids系统仿真。从中可以得知通过优化和混合仿真传统pid控制器能够获得很好的系统性能,bpn-pids获得了平滑的变换,但存在静态误差。当模型参数变化时,比较两者的鲁棒性,显示了当时延增大时,传统pid出现了振荡。传统pid控制在注塑机温度控制系统中能达到较好的控制性能和控制精度。但是,当系统的参数发生变化时,常规pid的鲁棒性就很差了。而神经pid虽然存在静态误差,但仍然有很稳定的平滑性。bpn-pids同样也能获得更为平滑的过渡过程,但是系统存在着静态误差。bpn-pids具有自学习和自调整的能力,当模型参数改变时,bpn-pids仍然有平滑的过渡过程,这就证明bpn-pids的鲁棒性比传统pid更强,适应能力更强。通过matlab实现了bpn-pids算法,解决了普通pid控制方法中的非确定性,非固定的问题,通过bp神经网络的在线自学习能力,为今后不同材料,不同模具的应用达到了良好,健壮的温度控制。 从图1-5信号跟踪图中可以看出:控制变量u变化规则,扰动较小,跟踪曲线光滑,跟踪误差小,达到稳定状态后,误差波动小。
图1-6误差曲线图为系统的误差曲线,可以看出,系统跟踪误差非常小大约在(0.008~-0.008 内),跟踪效果很理想。
图1-7 pid参数变化图反映了整个过程中参数kp,ki,kd 随时间变化的情况,可以看出, kp,ki,kd 在不断调整,从而使控制效果最佳。
本文以基于神经网络的解耦控制和pid控制作为研究的出发点,经过查阅资料、理论研究以及实际测试,取得的研究结论可简要的归纳如下:
(1)就基于神经网络的参数自适应pid控制算法进行了分析研究。利用神经网络所具有的任意性表达能力,通过对系统的学习来实现具有最佳组合的pid控制。避免了凭经验选取pid控制参数的不确定性,而且可以实现控制器参数的在线调整和整定。算法主要由两个部分组成:
a.经典的pid控制器,控制算法为经典增量式。直接对被控对象进行闭环控制,而且三个参数为在线调整方式。
b.神经网络,根据系统的运行情况,根据学习算法,在线调整pid控制的参数使得给定性能指标最优,输出层神经元的输出状态读对应于pid控制器的三个可调参数。
(2)给出了一种基于神经网络的分散解耦算法bpn-pids算法。这种分散解耦算法从本质上仍属于串联解耦的一种特殊情况,但他与串联解耦又有所不同。
(3)将基于神经网络的参数自适应pid控制算法与分散解耦算法结合,并能过matlab软件中实现了bpn-pids算法,并实现了在线的整定的算法,既避免了当单独采用自适应pid算法时,如多变量被控对象耦合严重,则控制效果不佳的问题;又避免了当采用分散解耦算法时,如出现多变量被控对象模型参数发生变化,原有的控制器参数不能适应变化后的对性的问题。将该算法应用与料筒的温度控制,结果表明可以取得较为满意的控制效果。
本文工作对具有多变量强耦合时变特性的控制系统的设计与实现具有较好的参考价值。
参考文献
[1](美)martin t.hagan,等.神经网络设计[m].机械工业出版社,2002)9).
关键词:人脸识别;奇异值分解;BP神经网络;粒子群优化算法
分类号:TP391 文献标识码:A
Face Recognition Classifier based on PSO and Neural Network
DUAN Xiang-jun
( Nanjing College of Information Technology, Nanjing 210046, China )
Abstract: Because BP neural network for face recognition classifier has slow convergence and easy to fall into the local minimum, using particle swarm optimization (PSO) to improve the BP network training method, establishing an algorithm based on the improved PSO-BP neural network, which can more reasonable and effectively to determine the neural network connection weights and thresholds, applying this method to the classification of the face recognition system, and compared results with using the BP neural network classification only, experiment shows that the recognition speed is quicker and recognition result is better.
Key words: face recognition; singular value decomposition; BP neural network; particle swarm optimization
0引言
通常情况下,一个人脸自动识别系统包括以下三个主要技术环节:人脸检测、人脸特征提取、人脸识别。人脸识别即将人脸特征提取结果与库中人脸对比得出分类结果,即识别分类;分类器的选择在人脸识别系统整个过程中起着成败与否的关键作用。因此,要慎重选择研究分类器的设计,确保具有优秀的识别结果。
目前,应用较广泛的人脸识别分类器主要有:最小距离分类器[1]、基于PCA的分类法[2]、支持向量机识别方法[3]、人工神经网络[4]等模式识别方法。由于人工神经网络具有较强的容错能力、自适应学习能力以及并行信息处理结构、速度快等三大优势,在模式识别领域有广泛的应用,而人工神经网络模型又以标准三层BP神经网络最为经典。但由于传统的BP算法是基于梯度下降法的,而梯度下降法通常具有收敛速度慢、易陷入局部极小等缺点而导致学习失败,另外,BP网络学习时间较慢,不适合大规模的网络求解[5]。而粒子群算法(Particle Swarm Optimization, PSO)[6]源于对鸟群捕食行为的研究,系统初始化为一组随机解,粒子在解空间追随最优的粒子进行搜索,通过迭代搜寻最优值,所以用它来完成前期的搜索能较好的克服BP算法的缺点。
1 BP神经网络分类器
BP算法的基本思想是:BP神经网络的学习过程由信号的正向传播与误差的反向传播两部分组成。正向传播时,输入样本从输入层输入,经各隐含层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过输出层向隐含层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,以此误差信号来修正各单元权值。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。其用于人脸识别的结构模型图如图1所示。
2 粒子群算法原理
如果我们把一个优化问题看作是在空中觅食的鸟群,那么在空中飞行的一只觅食的“鸟”就是PSO算法在解空间中进行搜索的一个“粒子”(Particle),也是优化问题的一个解,“食物”就是优化问题的最优解。粒子的概念是一个折衷的选择,它只有位置和速度,没有质量和体积。
PSO算法中每个粒子就是解空间中的一个解,它根据自己的飞行经验和同伴的飞行经验来调整自己的飞行状态。每个粒子在飞行过程中所经历过的最好位置,就是粒子本身找到的最优解。整个群体所经历过的最好位置,就是整个群体目前找到的最优解。前者叫做个体极值(pBest),后者叫做全局极值(gBest)。每个粒子都通过上述两个极值不断更新自己,从而产生新一代群体。实际操作中通过由优化问题所决定的适应度函数值(fitnessvalue)来评价粒子的“好坏”程度。很显然,种群中每个粒子的行为都是:追随着当前的最优粒子,在解空间中进行搜索[7]。
关键词:Matlab;BP神经网络;预测
中图分类号:TP183文献标识码:A文章编号:1009-3044(2008)19-30124-02
Based on Matlab BP Neural Network Application
YANG Bao-hua
(Institute of Information and Computer, Anhui Agricultural University, Hefei 230036, China)
Abstract: BP learning algorithm is a one-way transmission of multi-layer to the network, Matlab toolbox is based on the theory of artificial neural network, based on Matlab toolbox, with watermelon-heavy forecasts, BP neural network forecast the feasibility of re-watermelon is verified, and fast convergence, small error, should be promoted in the forecast crop growth.
Key words: Matlab; BP Neural Networks; Forecast
1 引言
人工神经网络是人工构造的模拟人脑功能而构建的一种网络,BP神经网络是结构较简单、应用最广泛的一种模型,BP神经网络是Rumelhart等在1986年提出的。它是一种单向传播的多层前向网络,一般具有三层或三层以上的神经网络,包括输入层、中间层(隐层)和输出层[1],其模型见图1所示。
■
图1 BP网络模型
Matlab中的神经网络工具箱是以人工神经网络理论为基础,利用Matlab语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法。网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序,免去了繁琐的编程过程。
红籽瓜(Red-seed Watermelon)种子即瓜子富含有蛋白质、脂肪、钙、磷及多种维生素,含油率达55%左右,营养颇为丰富,经过精细加工,味道鲜美,市场十分畅销[4]。为了提高瓜子的产量,需要关注很多因素,这些因素的改变会影响瓜子的产量,所以确定哪些因素能预测产量,如何预测是本文研究的内容。本文利用红籽西瓜的测量数据,以单果重,种子数,千粒重,种子重作为输入因子,仁重为输出因子,选择合适的隐层,构建影响红籽西瓜种仁重量的BP网络模型,运用Matlab软件进行预测。
2 BP神经网络设计的基本方法
Matlab的NNbox提供了建立神经网络的专用函数newff()[5]。用newff函数来确定网络层数、每层中的神经元数和传递函数,其语法为:
net=newff(PR,[S1,S2,…,SN],{TF1,TF2,…,TFN},BTF,BLF,PF)
式中:PR表示由每个输入向量的最大最小值构成的R×2矩阵;Si表示第i层网络的神经元个数;TF表示第i层网络的传递函数,缺省为tansig,可选用的传递函数有tansig,logsig或purelin;BTF表示字符串变量,为网络的训练函数名,可在如下函数中选择:traingd、traingdm、traingdx、trainbfg、trainlm等,缺省为trainlm;BLF表示字符串变量,为网络的学习函数名,缺省为learngdm;BF表示字符串变量,为网络的性能函数,缺省为均方差“mse”。
2.1 网络层数
BP网络可以包含不同的隐层,但理论上已经证明,在不限制隐层节点数的情况下,两层(只有一个隐层)的BP网络可以实现任意非线性映射。
2.2 输入层节点数
输入层起缓冲存储器的作用,它接受外部的输入数据,因此其节点数取决于输入矢量的维数。
2.3 输出层节点数
输出层节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。在设计输人层和输出层时,应该尽可能的减小系统规模,使系统的学习时间和复杂性减小。
2.4 隐层节点数
一个具有无限隐层节点的两层BP网络可以实现任意从输入到输出的非线性映射。但对于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,这就涉及到如何选择隐层节点数的问题,至今为止,尚未找到一个很好的解析式,隐层节点数往往根据前人设计所得的经验和自己进行试验来确定。一般认为,隐层节点数与求解问题的要求、输入输出单元数多少都有直接的关系。另外,隐层节点数太多会导致学习时间过长;而隐层节点数太少,容错性差,识别未经学习的样本能力低,所以必须综合多方面的因素进行设计。
隐层节点数的初始值可先由以下两个公式中的其中之一来确定[2,3]。
1=■+a (1)
或 1=■(2)
式中,m、n分别为输入结点数目与输出结点数目,a为1~10之间的常数。
2.5 数据归一化
因为原始数据幅值大小不一,有时候还相差比较悬殊。如果直接投人使用,测量值大的波动就垄断了神经网络的学习过程,使其不能反映小的测量值的变化。所以,在网络训练之前,输人数据和目标矢量都要经过归一化处理。
根据公式可将数据“归一化”,即限定在[0,1]区间内。归一化公式为:
■ (3)
也可以使用归一化函数Premnmx,及反归一化函数Postmnmx。
3 BP学习算法及实例
3.1 BP学习算法
1) 初始化网络及学习参数;
2) 从训练样本集合中取一个样本,并作为输入向量送入网络;
3) 正向传播过程,对给定的输入样本,通过网络计算得到输出样本,并把得到的输出样本与期望的样本比较,如有误差超出限定范围,则执行第4步;否则返回第2步,输入下一个样本;
4) 反向传播过程,即从输出层反向计算到第一隐层,修正各神经元的连接权值,使用误差减小。
3.2 实例
为了提高瓜籽产量,需要关注很多因素,滤去相关度过低的因子,根据经验确定输入因子为单果重,种子数,千粒重,种子重,输出因子为仁重。现以表1所示的2000~2002年测量数据作为训练样本进行训练,对2003年的数据进行预测。输出层结点代表仁重量,神经网络的预测模型采用4-4-1,即输入层4个神经元,根据公式(2)计算隐层神经元数确定为4,1个输出神经元。设定最大的迭代次数为500次,系统全局误差小于0.001。传递函数为tansig,训练函数为trainlm。
根据经典的BP算法,采用Matlab编程,样本训练结果见图2,2003的数据作为预测样本,预测结果如下:
TRAINLM, Epoch 0/500, MSE 0.316381/0.001, Gradient 2.8461/1e-010
TRAINLM, Epoch 4/500, MSE 0.00056622/0.001, Gradient 0.0830661/1e-010
TRAINLM, Performance goal met.
SSE = 0.0102
y = 0.269 0.267 0.27 0.269 0.2679 0.2679
表1 红籽西瓜数量性状表
瓜籽仁重实际值为0.265,0.282,0.264,0.269,0.265,0.287,误差为0.0102,当样本较少时可以接受的误差范围内。并且收敛速度快。
■
图2训练函数为trainlm的训练结果
采用traingd函数进行训练,则5000次仍未达到要求的目标误差0.001,说明该函数训练的收敛速度很慢。见图3所示。所以训练函数的选择也非常关键。
■
图3 训练函数为traingd的训练结果
4 结论
用Matlab编编写的基于BP网络的仁重预测程序,计算结果表明,误差较小,预测值与实测值吻合较好,所建立的模型具有较好的实用性,说明单果重,种子数,千粒重,种子重的数据影响瓜子的产量,同时验证BP算法可以用于瓜仁产量的预测。
目前所进行的预测试验中数据的样本较少,且生长动态变化,今后拟建立一个动态预测系统,为红籽瓜品种培育、提高产量提供新的方法,值得在预测作物生长中推广。
参考文献:
[1] 飞思科技产品研发中心.神经网络理论与Matlab 7实现[M].北京:电子工业出版社.2006:100-105.
[2] 徐庐生.微机神经网络[M].北京:中国医药科技出版社,1995.
[3] 高大启.有教师的线性基本函数前向三层神经网络结构研究[J].计算机学报,1998,21(1):80-85.
[4] 钦州农业信息网:.
关键词:神经网络技术,ANNBP网络算法
1、人工神经网络概述
人工神经网络是模拟生物神经信息处理方法的新型计算机系统,它可以模拟人脑的一些基本特征,(如自适应性,自组织性和容错性),是一个并行、分布处理结构,它由处理单元及其称为联接的无向信号通道互连而成。
人工神经网络力图模仿生物神经系统,通过接受外部输入的刺激,不断获得并积累知识,进而具有一定的判断预测能力。尽管神经网络模型的种类很多,但基本模式都是由大量简单的计算单元(又称为节点或神经元)广泛相互连接而构成的一种并行分布处理网络。。基于神经信息传输的原理,各个节点通过可变的权值彼此相连接,每个节点对N个加权的输入求和,当求和值超过某个阈值时,节点呈“兴奋”状态,有信号输出。节点的特征由其阈值、非线性函数的类型所决定,而整个神经网络则由网络拓扑、节点特征以及对其进行训练所使用的规则所决定。
2、多层前向网络
神经网络按拓扑结构分为前馈型网络和反馈型网络。前馈型网络在结构上采用的是其信息只能从前一层到它下面一层的单元,在网络运算过程中不存在任何反馈。从学习观点看,前馈网络是一种强有力的学习系统,其结构简单,易于编程;从系统观点看,前馈网络是非线性映射,通过简单非线性处理单元的复合映射可获得复杂的非线性处理能力,因此具有较强的分类能力和模式识别能力。
反向传播(BP)网络是典型的前馈型网络,结构上它属于多层前向网络,它的结构如图1所示。它分为输入层、隐含层和输出层,层与层之间多采用全互连方式,同一层之间不存在相互连接。网络中每一层权值都可通过学习来调节,且网络的基本处理单元(输入单元除外)为非线性输入、输出关系,处理单元的输入、输出值可连续变化。由于BP网络可在多个连续的输入和一个或多个连续的输出之间建立非线性映射这一特性,它常被用于智能预测。
多层前向网络是使用最广泛的一种网络结构,它可很好的解决XOR等经典的非线性问题,比起单层的感知器有很大的优越性,尤其80年代中期,Rumelhart和Mcclelland最先提出了多层前馈网络的反向传播学习算法,简称BP算法,它的效率很高,是目前应用最为普遍的训练算法,这使得多层前馈网络应用更加广泛。应该指出,我们常说的BP网络,严格说是基于BP算法的多层前向网络。
图 1 BP网络结构图
4、 BP网络算法
BP网络算法的思想是把一组样本的I/O问题变为一个非线性优化问题,使用了优化中最普通的梯度下降法,用迭代运算求解权对应于学习记忆问题,加入隐含层节点使优化问题的可调参数增加,从而可得到更精确的解。BP网络模型设计的最大特点是网络权值是通过使用网络模型输出值与已知的样本值之间的误差平方和达到期望值而不断调整出来的,并且确定BP神经网络评价模型时涉及隐含层节点数、转移函数、学习参数和网络模型的最后选定等问题。下面简单介绍一下基本BP算法相关数学描述:
(1)梯度下降算法
(2)S(Sigmoid)型函数
BP网络的激活函数经常使用的是Sigmoid对数或正切激活函数和线性函数。对数S型函数 f(x)=1/(1+exp(-x)), Sigmoid 函数具有非线性放大功能,它可以把输入从负无穷大到正无穷大的信号,变换成-1到1之间的输出,对较大的输入信号,放大系数较小,而较小的输入,放大系数较大,所以采用S型激活函数可以去逼近非线性的输入/输出关系。
(3)BP算法
BP网络学习是典型的有导师学习,其学习算法是对简单的学习规则的推广和发展。BP网络实现了多层网络学习的设想,其学习过程包括正向传播和反向传播两部分。。
在正向传播过程中,给定网络的一个输入模式时,输入信息从输入层经过隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态,由输出层单元产生一个输出模式,这是一个逐层状态更新过程,称为前向传播。。如果输出响应与期望输出的模式误差值不满足要求,那么就转入误差反向传播,将误差值沿连接通路逐层传送并修正各层连接权值。对于给定的一组样本,不断用一个个训练模式进行学习,重复前向传播和误差反向传播过程,当各个训练模式都满足要求时,BP网络训练完毕。
其中的激发函数我们采用S型函数, 即f(x)=1/(1+exp(-x))。BP算法描述如下:
(2)提供训练样本:输入矢量Xk ,k=1,2,..n 和期望输出tk, k=1,2,…,m;对每个输入样本进行(3)到(5)的迭代。
(3)计算网络的实际输出okj 。
(4)分别计算输出层和隐含层的训练误差
其中(4-2)为输出层的误差值, (4-3)为隐含层的误差值。
(5)修正权值和阈值
(6)判断实际误差指标是否满足规定误差的要求,满足则到(7)。
(7)结束 。
BP算法是人工神经网络中最为重要的网络之一, 也是迄今为止应用最为广泛的网络算法, 实践证明这种基于误差反传递算法可以解决许多实际问题, 但其算法自身也存在着局部极小点、算法的收敛速度慢等缺陷,需要我们在今后的研究中不断完善改进。