首页 > 文章中心 > 神经网络设计

神经网络设计

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇神经网络设计范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

神经网络设计

神经网络设计范文第1篇

关键词: 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.

神经网络设计范文第2篇

关键词:邮件过滤;预处理;特征选择;神经网络集成

中图分类号: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.

神经网络设计范文第3篇

[关键词] 工作岗位;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).

神经网络设计范文第4篇

关键词:FPGA;神经网络;图像压缩;乘累加单元

中图分类号:TP183文献标识码:A

文章编号:1004-373X(2009)19-038-04

FPGA Design of Multiply-accumulate Module in Image Compression

Algorithm Based on BP Neural Network

YANG Jun1,ZHOU Quan2,ZHANG Minrui1

(1.School of Electronic and Information Engineering,Xi′an University of Science and Technology,Xi′an,710054,China;

2.National Key Laboratory,China Academy of Space Technology,Xi′an,710000,China)

Abstract:A realization scheme for image compression algorithm based on three layers Back Propagation(BP) neural network is presented,which adopts the method combining the universal IP core with the VHDL language.The FPGA design of multiply-accumulate module which is one of the important components is carried out,it is designed with pipeline,which could increase the data of processing,decrease the latency of system,raise the frequency of clock.The behavior of functional simulation for MAC is completed.The simulation results show that the design is practicable.

Keywords:FPGA;neural network;image compression;MAC

0 引 言

神经网络(Neural Networks)是人工神经网络(Artificial Neural Networks)的简称,是当前的研究热点之一。人脑在接受视觉感官传来的大量图像信息后,能迅速做出反应,并能在脑海中重现这些图像信息,这不仅与人脑的海量信息存储能力有关,还与人脑的信息处理能力,包括数据压缩能力有关。在各种神经网络中,多层前馈神经网络具有很强的信息处理能力,由于其采用BP算法,因此也称为BP神经网络。采用BP神经网络模型能完成图像数据的压缩处理。在图像压缩中,神经网络的处理优势在于[1]:

巨量并行性;

信息处理和存储单元结合在一起;

自组织自学习功能。

与传统的数字信号处理器DSP(Digital Signal Processor)相比,现场可编程门阵列(Field Programmable Gate Array,FPGA)在神经网络的实现上更具优势。DSP处理器在处理时采用指令顺序执行的方式,而且其数据位宽是固定的,因而资源的利用率不高,限制了处理器的数据吞吐量,还需要较大的存储空间[2-4]。FPGA处理数据的方式是基于硬件的并行处理方式,即一个时钟周期内可并行完成多次运算,特别适合于神经网络的并行特点,而且它还可以根据设计要求配置硬件结构,例如根据实际需要,可灵活设计数据的位宽等。随着数字集成电路技术的飞速发展,FPGA芯片的处理能力得到了极大的提升,已经完全可以承担神经网络数据压缩处理的运算量和数据吞吐量。图像压缩是信息传输和存储系统的关键技术,然而如何进行FPGA设计,以实现给定的功能已经成为神经网络应用的关键[5,6]。

基于以上原因,选择FPGA作为三层BP神经网络图像压缩算法的实现方式,提出了具体的一种实现方案,并对其中的重点单元进行了FPGA设计与仿真验证。

1 BP神经网络图像压缩算法

一般习惯将单隐层前馈网称为三层前馈网,它包括输入层、隐含层和输出层。三层BP神经网络结构如图1所示,原始数据节点和重建数据节点构成节点数较大的外层(输人层和输出层),而中间的具有较小节点数的细腰层即构成压缩结果。其基本思想是强迫原始数据通过细腰型网络瓶颈,并期望在网络的瓶颈处能获得较为紧凑的数据表示,以达到压缩的目的。在网络的学习过程中,通过BP训练算法,调整网络的权重,使重建图像在均方误差意义上尽可能近似于训练图像。经过训练的网络即可用来执行数据压缩任务,网络输入层与隐含层之间的加权值相当于一个编码器,隐含层与输出层之间的加权相当于一个解码器。从输入端输入的原始图像数据经过神经网络的处理,在隐含层得到的输出数据就是原始图像的压缩编码,而输出层矢量即为解压后重建的图像数据[7]。

图1 三层前馈BP神经网络压缩结构

BP神经网络用于图像编码的压缩比与输入层和隐含层的节点数有关:

压缩比=输入层节点数(n)/隐含层节点数(m)

因此一般来说采用不同数目的隐含层神经元就可实现同一图像的不同压缩比。

三层BP前馈网中输入向量X=x(x1,x2,…,xi,…,xn)T,隐含层输出向量Y=y(y1,y2,…,yj,…,ym)T ,输出层输出向量O=o(o1,o2,…,ok,…,ol)T,期望输出向量d=d(d1,d2,…,dk,…,dl)T,输入层到隐含层的权值向量V=v(v1,v2,…,vj,…,vm)T,其中vj为隐含层第j个神经元对应的权值向量;隐含层到输出层的权值向量W=w(w1,w2,…,wk,…wl)T,其中wk为输出层第k个神经元对应的权值向量;隐含层的阈值向量θ=(θ1,θ2,…,θj,…,θm)T;输出层的阈值向量γ=(γ1,γ2,…,γk,…,γl)T。

(1) 用小的随机数对每一层的权值和偏差初始化,以保证网络不被大的加权输入饱和,并进行以下参数的设定或初始化:

期望误差最小值;最大循环次数;修正权值的学习速率;

(2) 将原始图像分为4×4或8×8大小的块,选取其中一块的像素值作为训练样本接入到输入层,计算各层输出:

yj=f(netj)

(1)

netj=∑ni=1vijxi+θj, j=1,2,…,m;

(2)

ok=f(netk)

(3)

netk=∑mj=1wjkyj+γk, k=1,2,…,l

(4)

其中:f(•)为BP网络中各层的传输函数。

(3)计算网络输出与期望输出之间的误差,判断是否小于期望误差,是则训练结束,否则至下一步,其中反传误差的计算式为:

E=12(d-O)2=12∑lk=1(dk-ok)2

(5)

(4) 计算各层误差反传信号;

(5) 调整各层权值和阈值;

(6) 检查是否对所有样本完成一次训练,是则返回步骤(2),否则至步骤(7);

(7) 检查网络是否达到最大循环次数,是则训练结束,否则返回步骤(2)。

经过多次训练,最后找出最好的一组权值和阈值,组成三层前馈神经网络,用于该算法的FPGA设计。

2 基于BP神经网络的FPGA设计

2.1 硬件设计方案

本文提出了一种基于三层前馈BP神经网络的图像压缩算法的实现方案,包括三层BP神经网络图像压缩算法编码器以及译码器的实现方案。

由三层BP前馈神经网络图像压缩的结构图可以看出,其解码器是编码器的逆过程,在实现编码器之后,实现解码器非常方便,故本文重点在于解码器的FPGA设计。

基于三层BP前馈神经网络图像压缩算法的编码器的FPGA设计方案如图2所示。

图2 三层BP神经网络图像压缩算法编码器结构图

其中,在数据预处理部分,首先将原始图像分成n×n的小块,以每一小块为单位进行归一化[8]。归一化的目的,主要有以下两点:

(1) BP网络的神经元均采用Sigmoid转移函数,变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区;

(2) Sigmoid转移函数的输出在-1~+1之间,作为信号的输出数据如不进行变换处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小。网络训练时只针对输出的总误差调整权值,其结果是在总误差中占份额小的输出分量相对误差较大,对输出量进行尺度变化后这个问题可迎刃而解。

归一化后得到以每小块的灰度值为列向量组成的待压缩矩阵,将该矩阵存储在RAM里,然后以每一列为单位发送给先入先出寄存器FIFO(First Input First Output);由FIFO将向量x1,x2,…,xn以流水(pipeline)方式依次传入各乘累加器MAC(Multiply-Accumulate),相乘累加求和后,送入LUT(Lookup Table)得到隐层相应的节点值,这里LUT是实现Sigmoid函数及其导函数的映射[9]。

在整个电路的设计中,采用IP(Intellectual Property)核及VHDL代码相结合的设计方法,可重载IP软核,具有通用性好,便于移植等优点,但很多是收费的,比如说一个高性能流水线设计的MAC软核,所以基于成本考虑,使用VHDL语言完成MAC模块的设计,而RAM和FIFO模块则采用免费的可重载IP软核,使整个系统的设计达到最佳性价比。

在压缩算法的实现中,乘累加单元是共同部分,也是编码和译码器FPGA实现的关键。

2.2 乘累加器MAC的流水线设计及其仿真

流水线设计是指将组合逻辑延时路径系统地分割,并在各个部分(分级)之间插人寄存器暂存中间数据的方法。流水线缩短了在一个时钟周期内信号通过的组合逻辑电路延时路径长度,从而提高时钟频率。对于同步电路,其速度指同步电路时钟的频率。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大,即电路的吞吐量就越大。理论而言,采用流水线技术能够提高同步电路的运行速度[10]。

MAC电路是实现BP神经网络的重要组成部分,在许多数字信号处理领域也有着广泛应用,比如数字解调器、数字滤波器和均衡器,所以如何提高MAC的效率和运算速度具有极高的使用价值。

本方案采用的MAC设计以四输入为例。

四输入的MAC电路必须执行四次乘法操作和两次加法操作,以及最后的两次累加操作。如果按照非流水线设计,完成一次对输入的处理,需要这三步延迟时间的总和,这会降低一个高性能系统的效率。而采用流水线设计,则可以避免这种延迟,将MAC的操作安排的像一条装配线一样,也就是说,通过这种设计它可以使系统执行的时钟周期减小到流水线中最慢步骤所需的操作时间,而不是各步骤延迟时间之和,如图3所示。

图3 基于流水线设计的四输入MAC结构图

在第一个时钟边沿,第一对数据被存储在输入寄存器中。在第一个时钟周期,乘法器对第一对数据进行乘法运算,同时系统为下一对数据的输入作准备。在第二个时钟边沿,第一对数据的积存储在第一个流水线寄存器,且第二对数据已经进入输入寄存器。在第二个时钟周期,完成对第一对数据积的两次加法操作,而乘法器完成第二对数据的积运算,同时准备接收第三队数据。在第三个时钟边沿,这些数据分别存放在第二个流水线寄存器,第一个流水线寄存器,以及输入寄存器中。在第三个时钟周期,完成对第一对数据和之前数据的累加求和,对第二对数据的两次加法操作,对第一对数据的乘法运算,并准备接收第四对数据。在第四个始终边沿,累加器中的和将被更新。

在本设计方案中,测试仿真平台选用的FPGA芯片为ALTERA公司Cyclone Ⅱ系列的EP2C8芯片,它采用90 nm的制造工艺,拥有8 256个逻辑单元,36个M4K随机只读存储器,2个数字锁相环,以及18个硬乘法器等丰富资源。仿真工具使用业界流行的Mentor Graphics公司的仿真软件Modelsim 6.1f。

对设计进行验证时,常见的方法是在模拟时施加输入激励信号,然后“读”该设计的输出信号,它的主要缺点是随着模拟器的不同而不同。为了克服此缺点,采用的测试方法是用VHDL编写一个测试模型发生器,称为Testbench,它的优点是通用性好,灵活性强,可以随时更改输入激励,已得到不同的仿真结果。

在对该MAC模块进行测试的过程中,涉及输入数据的转化问题,如前所述,在本神经网络中,输入数据归一化后,集中在-1~+1之间,所以处理时必须进行转化,最后采用16位补码形式的定点二进制表示法,由于在求和中可能会产生溢出,还必须包含一个溢出状态信号。

输入数据转换16位补码的仿真波形如图4所示。

图4 输入数据转换16位补码仿真波形图

16位补码转换原输入实数的仿真波形如图5所示。

图5 16位补码转换为实数的仿真波形图

在完成了对输入、输出数据的转换之后,编写Testbench(测试台)程序,对基于流水线设计的四输入MAC进行行为级仿真,仿真波形如图6所示。

图6 MAC行为级功能仿真图

综上所述,在基于流水线的乘法设计中,虽然每一步操作后都加入了寄存器,消耗了更多的资源,但却可以将系统延时降低到最慢步骤所需要的时间,极大地提高了同步电路的运算速度。

3 结 语

介绍了基于三层前馈BP神经网络的图像压缩算法,提出了基于FPGA的实现验证方案,详细讨论了实现该压缩网络组成的重要模块MAC电路的流水线设计。在对BP神经网络的电路设计中,对传输函数及其导函数的线性逼近也是近来研究的热点之一,本文使用的压缩查找表虽然能够满足设计要求,但仍然消耗了大

量资源。该研究结果对整个压缩解压缩算法的实现以及多层神经网络的相关研究工作提供了参考。

参考文献

[1]董长虹.Matlab神经网络与应用[M].2版.北京:国防工业出版社,2007.

[2]赵宏怡.DSP技术与应用实例[M].北京:电子工业出版社,2003.

[3]刘艳萍.DSP技术原理及应用教程[M].北京:北京航空航天大学出版社,2005.

[4]苏涛,蔺丽华.DSP实用技术[M].西安:西安电子科技大学出版社,2005.

[5]田华,冯勤群,胡喜飞.基于DSP和FPGA的高速图像压缩系统设计[J].电子工程师,2005,31(8):51-52.

[6]张秀艳.基于FPGA的神经网络硬件实现中的关键问题研究[J].科技情报开发与经济,2005,15(5):273-275.

[7]冯春丽.基于改进型BP网络图像压缩方法的研究[D].锦州:辽宁工学院,2007.

[8]张锐菊,周诠.神经网络用于遥感图像压缩的一些研究结果[J].中国体视学与图像分析,2003,8(3):183-186.

神经网络设计范文第5篇

关键词:BP神经网络;VHDL;模拟与仿真

一、人工神经理论基础

神经网络又被称为链接模型,其本身是模仿动物的神经网络,并根据其行为特征分布式进行算法数学模型处理。在计算机上,人们可以利用并行或者串行的模式模拟仿真,实现人们自身的神经网络模型算法。在特定应用情况下,进行神经网络研究的目标则是高性能专用的神经网络硬件。

神经元是人工神经网络的基本单元,具有一定的信息处理方面的能力。对于输入的内容,神经元可以简单进行处理,能根据学习规则做好加权求和,并根据权值来获取神经元的状态输出,以便对刺激进行处理。还可建立基于VHDL语言的神经网络元件库,它包括基本单元、控制单元两个部分。

二、 BP神经网络结构模型

BP神经网络由输入层、隐含层和输出层组成,相邻层之间的各个神经元实现全连接,每层各个神经元之间没有连接。

BP算法正向传播过程:输入信号从输入层输入,经过隐含层传向输出层。如果输出层的实际输出与期望输出一致,那么学习算法结束。基本控制单元用于建立隐含层和输出层的神经元,主要解决信号运算后权值存储问题,它主要包括加权乘法、神经元输入信号的累加、非线性激励函数的实现、权值存储等基本模块。

图1中xi代表第i个输入,wij代表输入i和神经元j之间的权值(weight),yj是第j个输出。如图1所示可以得到:

y1=f(x1.w11+x2.w21+x3.w31 ) 2-1

y2=f(x1.w11+x2.w22+x3.w32) 2-2

y3=f(x1.w11+x2.w23+x3.w33) 2-3

其中f( )是激化函数(如线性阈值的sigmoid函数等)。

三、神经网络模型与仿真

clk产生脉冲信号,输入端x1,x2,x3 分别置为011,100,101,权值初值设为0000,通过9个脉冲周期一次递增到1000,将权值与输入值进行运算,得出结果。在权值固定时,输出取决于输入,不同的输入得到不同的输出结果。而在权值变化时,输出就由输入和权值决定。

为了仿真的结果更直观,代码采用的每个神经元的3个输入信号以及权值的位宽都为4,且带有符号。权值共设了9个,采用9个时钟周期将权值移入值。模拟与仿真的结果如图2所示。

结果分析:模拟结果与结果一致,此仿真成功。

四、结语

基于VHDL编程实现简单神经网络的软件模拟与仿真,从算法的提出到模型的建立,完整地体现神经网络的可用性与优越性。文中所提的神经网络模型是对单个神经网络的模拟与仿真,以及基于二维数组的多个输入输出的大规模神经网络的模拟。由于VHDL语言编程的灵活性,可以将编程下载到芯片用硬件实现对神经网络的模拟,以提高系统运算的速度和可靠性。

参考文献: