神经网络理论概述_第1页
神经网络理论概述_第2页
神经网络理论概述_第3页
神经网络理论概述_第4页
神经网络理论概述_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海大学模式识别(论文)上海大学2015~2016学年秋季学期研究生课程考试文献阅读报告课程名称:《模式识别》课程编号:08SB69004题目:神经网络理论概述以及实现研究生姓名:张三学号:1111111论文评语:成绩:任课教师:1111111评阅日期:

神经网络理论概述以及实现2016-01-12摘要: 由于其强大的学习能力,人工神经网络己经成为研究模式识别如人脸辨识、字符识别、车牌识别(LPR)、语音识别和信号处理等分类问题的重要工具。研究证明,神经网络的性能主要取决于三个因素:首先是用于训练神经网络的样本的特征选择方法,采用合适的特征选择模型,寻找最佳的神经网络优化算法。本文主要讲述BP神经网络、RBF神经网络、Hopfield离散型神经网络和Hopfield连续型神经网络。本文给出了这四种神经网络的思想步骤,并且举例子用代码认证。关键字:神经网络,分类器,模式识别,拟合仿真OverviewofneuralnetworktheoryandtherealizationAbstract:Artificialneuralnetwork(ANN)hasbeenanimportanttooltoinvestigateclassificationproblemssuchasfacerecognition,characterrecognition,licenseplaterecognition(LPR),speech,andsignalprocessingduetostronglearningability.Manyresearchersagreethattheperformanceofaneuralnetworkdependsstronglyonthreefactors:featureselectionmethodforthetrainingdatasets,optimizationalgorithmfortheneuralnetwork.ThisarticlefocusesontheBPneuralnetwork,RBFneuralnetwork,HopfielddiscreteHopfieldcontinuousneuralnetworksandneuralnetworks.Thispaperpresentstheideastepfourneuralnetworks,andexamplesgivencodecertification.Keywords:Neuralnetwork,Classifier,PatternRecognition,FittingSimulation

目录1.绪论 31.1神经网络的概述 31.2论文的构成 32.神经网络的分类理论 42.1分类理论及实现过程 42.1.1分类的定义 42.1.2分类的实现过程 42.1.3几种主要的分类方法及特性 52.2基于神经网络的分类理论 62.2.1神经网络特征 62.2.2神经网络分类方法 72.3本章小结 83.四种神经网络的实现 93.1BP神经网络 93.2神经网络RBF 143.3hopfield神经网络 183.3.1原理简介: 183.3.2离散型Hopfield 193.3.3连续Hopfield神经网络 214结束语 24参考文献: 25附录一 26附录二 31

1.绪论1.1神经网络的概述人工神经网络(ArtificialNeuralNetworks,简写为ANNs)是由大量类似于生物神经元的处理单元相互连接而成的非线性复杂网络系统。它是用一定的简单的数学模型来对生物神经网络结构进行描述,并在一定的算法指导下,使其能够在某种程度上模拟生物神经网络所具有的智能行为,解决传统算法所不能胜任的智能信息处理的问题。它是巨量信息并行处理和大规模并行计算的基础,神经网络既是高度非线性动力学系统,又是自组织自适应系统,可用来描述认知、决策和控制的智能行为。1.2论文的构成论文撰写的过程是从理论上由浅入深地研究,再对理论进行验证的过程。本文共分四章,具体章节安排如下:第一章是绪论,主要阐述了神经网络的定义以及内容以及构成。第二章是神经网络的分类理论主要讲述分类的定义、分类的实现过程。神经网络的特点,神经网络的分类方法。最后对第二章进行总结。第三章讲述四种神经网络的实现,主要讲述BP神经网络、RBF神经网络、离散型Hopfield神经网络、连续型神经网络。最后有代码实现这四个神经网络。第四章是总结讲述本文的不足以及各种神经网络的优缺点。第五章参考文献,附录一和附录二

2.神经网络的分类理论2.1分类理论及实现过程2.1.1分类的定义分类(Classification)是一种重要的模式识别和数据挖掘技术,其作用是根据数据集的点,找出描述并区分数据类或概念的模型或函数(我们一般称之为分类器),以便能够使用该模型或函数预测类标记未知的对象类,导出模型是基于对训练数据集(即其类标记己知的数据对象)的分析。实现分类的关键步骤有两个,一是根据己知类别的训练数据集,训练并构造一个分类器,用于描述预定的数据类集或概念集;二是使用所获得的模型函数,对未知对象进行分类。2.1.2分类的实现过程分类的实现一般具有以下三个过程:一、数据的预处理。进行数据预处理的目的在于按照分类的要求对数据集进行优化,以保证分类的准确性和有效性,数据的预处理可能包含以下若干步骤:(1)数据清理。减少或消除数据中存在的系统噪声或随机噪声,删除数据集中存在的明显错误的数据,以及对空缺的数据进行处理。(2)数据的相关性分析。需要分类的数据集中可能存在一些属性,与分类任务不相关。如果在分类过程中包含这些属性可能会减慢甚至误导学习过程,影响分类结果的准确性。进行数据相关性分析的目的就是去除这些不相关或冗余的属性。(3)数据变换。数据集中某些连续的数据需要离散化,定性的数据需要定量化。(4)数据归约。分类过程中有些数据需要按照比例进行缩放,也叫做数据的归一化。二、分类器的建立。构造分类器的过程分为训练阶段和测试阶段。一般的实现分类的过程中,需要将数据集分成两部分,一部分用于分类器的训练,另一部分则用于分类器的测试。在训练阶段,使用一定的规则或算法对训练数据集中各属性数据进行学习,由于预先知道每个训练样本的类别属性值,所以该过程也称为有导师的学习;在测试阶段,使用测试数据集对该分类器的分类准确性进行评估。将测试数据集输入到分类器中进行分类,用得出的预测类与己知的目标进行匹配,如果相同,则表明分类成功。三、分类器的运用。进行准确性评估后,如果该分类器可以达到用户需求,则可以使用该分类器对其他数据进行分类。2.1.3几种主要的分类方法及特性构造分类器的方法有多种,其中比较成熟、应用比较广泛的包括:决策树、贝叶斯算法、关联规则、支持向量机和神经网络等方法。(1)决策树分类算法决策树(DecisionTree)分类算法也称贪心算法,是一种以实例为基础的归纳学习算法。决策树算法以ID3算法、C5.0算法为代表,采用自顶向下的方式构造,它从一组无次序无规则的实例中构建树形的分类信息。树的节点为递归选取的测试样本属性,一旦一个属性在某个节点出现,则不会在该节点的后代出现。在构造决策树的过程中,一般还需要根据某一规则完成树的剪枝。决策树分类算法的优点在于,首先它的构造过程比较简单,计算量小,且构造规则便于理解;其次,决策树的构建速度快,不存在无解的情况,且可以处理非数值数据。决策树分类算法的缺点是可扩展性较差,当增加新的实例时,原决策树就不可再用,需要重新构建新的决策树;对噪声比较敏感,当数据质量比较差时很构建效果不理想。(2)贝叶斯分类算法贝叶斯((Bayes)算法是一类基于概率统计知识来进行分类的算法。使用该算法预测类的可能性,需要己知先验概率与类的条件概率。设每个数据样本具有n个属性值,则使用一个n维特征向量来表示,即,设共有m个类,记为。一个未知类属的数据样本X,用贝叶斯分类法将它归为类,则必有1<_j<_m,,即通过计算,选择可能性最大的类别作为该数据样本X的类别,根据贝叶斯公式计算而得。其中,是的先验概率,是条件概率。贝叶斯算法能够达到良好分类效果的条件是待分类样本间属性相互独立,否则会大幅影响分类精度,并且造成极大的计算开销。并且贝叶斯算法只有在大样本量数据前提下才有较好的分类效果,不适合小样本数据。(3)关联规则分类算法关联规则分类算法(Classificationbasedonassociationrule,CBA)以经典算法Apriori为代表,是一类通过关联规则发现方法来进行分类的算法。Apriori算法将发现关联规则的过程分为两个步骤:第一步通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阂值的项集;第二步利用频繁项集构造出满足用户最小置信度的规则。Apriori是一种广度优先的算法,受计算机硬件条件约束,时间代价高昂。在此基础上,研究人员提出了一系列改良的关联规则分类算法。该类算法在很多领域被广泛应用。(4)支持向量机分类算法支持向量机(SupportVectorMachine,SVM)}是一种强大的机器学习方法,其基础是Vapnik创建的统计学习理论(statisticallearningtheory,STL),采用结构风险最小化(structuralriskminimization,SRM)准则,在最小化样本点误差的同时,最小化结构风险,提高了模型的泛化能力,并且没有数据维数的限制。在进行线性分类时,将分类面取在离两类样本距离较大的地方;在进行非线性分类时,通过高维空间变换,将低维的线性不可分问题变换成高维空间的线性可分问题。2.2基于神经网络的分类理论2.2.1神经网络特征(1)非局限性。网络由大量神经元构成,其中单个神经元的结构和功能都比较简单,整个系统的功能依赖神经元间的相互作用和相互影响。(2)非线性。网络中的神经元模拟生物神经元的特征,具有激活和抑制两种状态,决定了网络的非线性特征。也决定了神经网络非常适合解决实际中的非线性问题,具有较高的存储容量和容错特性。(3)非凸性。一定的情况下,某些函数可能存在着多个极值,对应着系统的多个稳定的状态,而每个稳定状态可能代表着系统朝着某个方向进行演化的能力。所以,神经网络的非凸性体现在它可能具有多个稳定的平衡态,继而可以向多个方向进行演化,具有演化多样性的特征。(4)非常定性。网络会根据信息处理的过程与非线性动力系统同时发生变化,这便是神经网络的自组织、自学习和自适应的能力。神经网络正是因为具有以上特性,所以能解决许多数学方法或基于统计的方法无法解决的实际问题,因而得到了非常广泛的研究与应用。目前,神经网络的应用领域不仅包括了计算机领域和信息领域,还融合在各大领域中的方方面面。2.2.2神经网络分类方法神经网络的应用和研究所涉及的领域十分广泛,如优化计算、智能控制、模式识别、智能计算机研制、计算机视觉、语言的识别、理解与合成以及经济等领域,其所解决的问题也涵盖方方面面。然而归根结底,神经网络所解决的问题只有两种,即分类(Classification)与回归(Regression)。所处理的问题是两者中的哪一个,仅取决于网络的输出,分类问题输出的是离散的类别标记,而回归问题输出连续和有序值。故而,分类问题在神经网络研究中占据半壁江山。如何针对具体问题利用神经网络构建分类器,对数据集进行准确的分类,该研究方向被广泛关注。在神经网络分类中,存在两类问题,是由实际问题和网络的学习理论相协调的结果。其一是数据集中己知数据被分为几类和每个样本的类别,即在神经网络进行训练和a}n,」试的时候,都预先给出网络的期望输出。网络的学习过程,就是根据预测输出和期望输出的差值来调整网络权重,使得实际输出尽可能的逼近期望输出,这种神经网络的学习被称为“有导师”的学习(或“有监督”的学习),此种分类即为“有导师”的分类。而另外一种情况则相反,数据集中没有告知样本被分为几类和每个样本的类别标号,即网络无期望输出,在此种情况下,所要划分的类是未知的。此时网络的分类实际上是一种探索行为,根据数据的特征,进行分析与比较,找到内在规律,将对象的集合聚集而成由类似的对象所组成的若干类。这种神经网络的学习被称为“无导师”(或“无监督”的学习),此种分类即为“无导师”的分类,也被称作“聚类”在某个实际的分类问题中,需要进行“有导师”的分类还是“无导师”的分类,这是由数据集的特征决定的。神经网络通过对己知类别的数据集进行学习,而实现对未知类别的数据集的分类,即为“有导师”的分类;神经网络对未知类别的数据集进行学习,从而将数据集中相似的对象所组成若干类,即为“无导师”的分类。“无导师”分类中重要的一点是,分类结果中潜在的知识是神经网络研究人员未知的,即研究人员不知道为何要将数据集分为这几类,以及每类所代表的内在含义,需要将分类结果送交相关领域的专家(如农业领域专家)进行分析和判断才有可能得出结论。因此,解决这类问题需要具备相关领域的知识或有相关领域专家协同研究。此外,进行两种分类所选取的神经网络也是不同的,需要与该神经网络的学习模式相匹配。在“有导师”分类问题中,可以选取的神经网络有BP神经网络,径向基神经网络等;在“无导师”分类问题中,可以选用的神经网络有自组织神经网络,SOM神经网络,ART神经网络等。在本文中,仅研究“有导师”的分类。图2-1神经网络分类器设计流程2.3本章小结本章阐述了分类的相关理论,包括分类的定义,一般步骤,评价一个分类器的相关标准,并简述了几种传统的分类方法。重点阐述了神经网络分类的特点,并结合智能算法,云计算等相关理论分析了神经网络分类算法的改进研究现状。本文将在现有的研究基础上,在接来的章节中,针对不同规模的农业数据集,设计改进及优化的神经网络分类器,实现对数据集的准确分类。

3.四种神经网络的实现3.1BP神经网络BP神经网络概念介绍BP(BackPropagation)网络是一种按误差反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一。它能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。BP网络由输入层、隐层、输出层构成,每层由许多并行运算的简单神经元组成,网络的层与层之间的神经元采用全互连方式,同层神经元之间无相互连接。其结构如图2.2所示。图2.2三层BP网络结构BP算法原理分析.BP算法的基本思想是把学习过程分为两个阶段:第一阶段(正向传播过程),给出输入信息通过输入层经各隐层逐层处理并计算每个单元的实际输出值;第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之间的差值(即误差),通过梯度下降法来修改权值,使得总误差函数达到最小。以三层BP网络为例简介其算法思想,如图2.2所示。设网络的输入、隐层、输出节点数分别为。n、q、m,输入样本总数为P,表示第p个样本的第i个输入值,表示输入层第i个节点到隐层第k个节点的权值,为隐层第k个节点到输出层第j个节点的权值。为方便起见,把阈值写入连接权中,则隐层第k个节点的输出为输出层第j个节点的输出为:其中激励函数f选用标准的Simoid函数其导数满足定义全局误差函数为其中为第p个样本的误差,为理想输出根据梯度下降法推导如下的权值调整公式。输出层的的调整其中称为学习效率,一般取值范围为0.1~0.3。定义误差信号为:其中第一项:第二项于是从而输出层个神经元权值公式为隐层权值的调整定义误差信号为其中于是从而隐层个神经元的权值调整公式为3.2.2BP算法的程序的实现BP算法编程步骤如下:初始化对权值矩阵W,V赋随机数,将样本模式计数器p和训练次数计数器i设置为1,误差E设置为0,学习率兮设为0~1间的一个数,网络训练后达到的精度Emin。设为一个较小正数;输入训练样本对,根据公式(3.1)、(3.2)计算隐层和输出层的输出;根据公式(3.3)计算网络输出误差;检查是否对所有样本完成一次轮训。若p<P,计数器p增1,返回步骤=2\*GB3②,否则转步骤⑤;根据公式(3.4)、(3.6)计算各层误差信号;根据公式((3.5),(3.7)调整各层权值;检查网络总误差是否达到精度要求。若E<Emin,训练结束。计数器p增1,i增1,返回步骤②训练结束,否则p置1,图3.2BP算法流程用MATLAB程序实现一个BP神经网络(实验一):代码如下clear;clc;X=[012345678910];D=[01234321234];figure;plot(X,D,'*');%绘制原始数据分布图net=newff([010],[51],{'tansig','purelin'})net.trainParam.epochs=100;net.trainParam.goal=0.005;net=train(net,X,D);O=sim(net,X);figure;plot(X,D,'*',X,O);%绘制训练后得到的结果和误差曲线(附录:2-2、2-3)V=net.iw{1,1}%输入层到中间层权值theta1=net.b{1}%中间层各神经元阈值W=net.lw{2,1}%中间层到输出层权值theta2=net.b{2}%输出层各神经元阈值图3.1BP神经网络(左)运行图,(仿真图像)图3.2BP神经网络运行时间3.2神经网络RBFRBF网络是一种三层前向网络:第一层为输入层,由信号源节点组成。第二层为隐含层,隐单元的变换函数是一种局部分布的非负非线性函数,他对中心点径向对称且衰减。隐含层的单元数由所描述问题的需要确定。第三层为输出层,网络的输出是隐单元输出的线性加权。RBF网络的输入空间到隐含层空间的变换是非线性的,而从隐含层空间到输出层空间的变换是线性。不失一般性,假定输出层只有一个隐单元,令网络的训练样本对为,其中为训练样本的输入,为训练样本的期望输出,对应的实际输出为;基函数为第个隐单元的输出为基函数的中心;为第个隐单元与输出单元之间的权值。单输出的RBF网络的拓扑图如图1所示:图3.3RBF网络的拓扑图当网络输入训练样本时,网络的实际输出为:(1)通常使用的RBF有:高斯函数、多二次函数(multiquadricfunction)、逆多二次函数、薄板样条函数等。普通RBF网络采用的是高斯函数。当“基函数”采用的高斯基函数具备如下的优点:①表示形式简单,即使对于多变量输入也不增加太多的复杂性;②径向对称;③光滑性好,任意阶导数均存在;由于该基函数表示简单且解析性好,因而便于进行理论分析。RBF网络具有良好的逼近任意非线性函数和表达系统内在的难以解析的规律性的能力,并且具有极快的学习收敛速度。基于径向基函数网络的上述优点,我们将其应用于对非线性函数的模拟当中。用MATLAB实现RBF神经网络代码来拟合,取点数为400clc;clear;closeall;%产生输入,generatethelearingdatald=400;%学习数据个数x=rand(2,ld);%0-1x=(x-0.5)*1.5*2;%-1.5,1.5x1=x(1,:);x2=x(2,:);F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%创建并训练网络net=newrb(x,F);%generatethetestingdatainterval=0.1;[i,j]=meshgrid(-1.5:interval:1.5);row=size(i);%数据转化成一维数据tx1=i(:);tx1=tx1';tx2=j(:);tx2=tx2';tx=[tx1;tx2];%合并起来转化成输入%testing把tx带到网络中来进行模拟ty=sim(net,tx);%这个数神经网络的结果v=reshape(ty,row);figuresubplot(1,3,2)mesh(i,j,v);zlim([0,60])%plottheoriginalfunctioninterval=0.1;[x1,x2]=meshgrid(-1.5:interval:1.5);%把tx数据带到原始数据中产生输出数据F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%这个是理想状态下的结果subplot(1,3,1)mesh(x1,x2,F);zlim([0,60])%plottheerrorsubplot(1,3,3)mesh(x1,x2,F-v);%F-V表示误差zlim([0,60])程序运行结果如下图3.4RBF拟合图图3.4中左图是误差函数,右图是第一个是真实图像,第二个是拟合图像,第三个是真是图像和拟合图像的误差。可以发现拟合后误差一般出现在边缘。暂时还没有弄明白。下面是运行的集体细节NEWRB,neurons=0,MSE=108.563NEWRB,neurons=25,MSE=48.7566NEWRB,neurons=50,MSE=3.67744NEWRB,neurons=75,MSE=0.127232NEWRB,neurons=100,MSE=0.00159733NEWRB,neurons=125,MSE=0.000151675NEWRB,neurons=150,MSE=2.15227e-005NEWRB,neurons=175,MSE=1.25495e-005NEWRB,neurons=200,MSE=6.46469e-006NEWRB,neurons=225,MSE=9.7884e-007NEWRB,neurons=250,MSE=1.35793e-006NEWRB,neurons=275,MSE=6.16389e-007NEWRB,neurons=300,MSE=1.14665e-007NEWRB,neurons=325,MSE=1.0913e-007NEWRB,neurons=350,MSE=1.04774e-007NEWRB,neurons=375,MSE=1.24328e-007NEWRB,neurons=400,MSE=6.41081e-0083.3hopfield神经网络3.3.1原理简介:Hopfield网络是有反馈的全互联型网络,其形式如图3.5所示,N为神经元的数目,V表示神经元的输入向量,U表示输出向量,W为神经元之间的权值。离散Hopfield网络中每个神经元的输出只能取“1”或“-1”两种状态,各神经元的状态可用向量V表示:V={v1,v2,…vn}。网络中各神经元彼此互相连接,即每个神经元将自己的输出通过连接权传给其它神经元,同时每个神经元接受其它神经元传来的信息。图3.5有反馈的全互联型网络Hopfield网络的稳定性是由能量函数来描述的,即对网络的每个状态发生变化时,能量函数E随着网络状态变化而严格单调递减,这样Hopfield模型的稳定与能量函数E在状态空间的局部极小点将一一对应。设有N个神经元构成的Hopfield网络,其中第i个和第j个神经元节点状态分别记为vi和vj;w是神经元i和j的连接权,为神经元i的阈值。节点的能量可表示为:则整个Hopfield网络整体能量函数定义为:E=-设有N个神经元构成的Hopfield神经网络,第i个神经元在t时刻所接收的来自其它N-1个神经元输入信号的总和记为ui(t),t+1时刻第i个神经元的输出值vi(t+1)是符号函数作用于ui(t)的某个阈值时,该神经元将触发成兴奋状态。据此可知Hopfield网络的运行规则为:在网络中随机地选择一个神经元;求所选神经元i(1iN)的输入总和ui(t)=;根据ui(t)的值大小,更新神经元的状态if(ui(t))0thenvi(t+1)=1elsevi(t+1)=0;神经元i以外的神经元j的状态不变化;转向(1),直到网络达到稳定。Hopfield网络作为记忆的学习时,稳定状态是给定的,通过网络的学习求适合的权矩阵W(对称阵),学习完成后以计算的方式进行联想。对给定的M个模式,Hopfield网络可按Hebb规则来进行学习。按上述规则求出权矩阵后,可认为网络已经将这M个模式存入到网络的连接权中。3.3.2离散型Hopfield问题描述:设计一个Hopfield网络,使其具有联想记忆功能,能正确识别阿拉伯数字,当数字被噪声污染后仍可以正确地识别。程序流程:先设计好标准的数字点阵(本文采用10*10矩阵表示),根据这些标准的数字点阵创建并训练网络,使网络达到稳定状态,用带噪声的数字测试训练的网络。噪声有两种形式:一种是固定噪声;另一种是随机噪声,本文对两种噪声都做讨论。设计数字点阵设计数字点阵(0-9)创建Hopfield网络产生带噪声的数字点阵数字识别测试结果分析代码实现:(见附录一)图3.6matlab数字点阵实现图3.7加入噪声后的Hopfield复原图在图3.7中,第一行是原图像,第二行数是加入噪声图像最后一行是用Hopfield图像仿真的图像。Hopfield仿真后仍然有些误差,入2字上部分仿真就不怎么好。3.3.3连续Hopfield神经网络连续型Hopfield网络(CHNN)是由一些简单的电子线路连接起来实现的。每个神经元均具有连续时间变化的输出值。采用具有饱和非线性的运算放大器来模拟神经元的S型单调输入——输出关系,即对于一个N节点的CHNN模型来说,其神经元状态变量的动态变化可用下述非线性微分方程组来描述图3.8连续Hopfield示意图能量函数定义为应用Hopfield神经网络来解决优化计算问题的一般步骤为:1)分析问题:网络输出与问题的解相对应;2)构造网络能量函数:使其最小值对应问题最佳解;3)设计网络结构:由能量函数和网络稳定条件设计网络参数,得到动力学方程;4)硬件实现或软件模拟。问题描述它假定有n个城市A,B,C,……,它们之间的相互距离分别为要求寻找一条闭合路径,此路径历经每个城市且经过一次,返回起始城市,要求此路径最短。不考虑方向性和周期性,在给定n的条件下,可能存在的闭合路径数目为1/2(n-1)!。随着n的增大,计算量急剧增大,会发生所谓的“组合爆炸”问题。置换矩阵图3.8不同城市数中路径数量A,B,C,D,E(对应各行)表示城市名称;1,2,3,4,5(对应各列)表示路径顺序;矩阵中“1”表示该城市在路径全程中所居顺序,其余元素均为“0”。此处路径顺序为C→A→E→B→D→C。特点:每行只有一个“1”,其余元素均为“0”;2)每列只有一个“1”,其余元素均为“0”;3)全部元素中“1”的总和为n。图3.9城市连通图的矩阵描述

具体算法步骤1)置初值和权值,t=0,A=1.5,D=1.0,U0=0.02;2)读入N个城市之间的距离3)神经网络输入的初始化;其中,,N为城市个数,为(-1,+1)区间的随机值;4)利用动态方程计算;5)根据一阶欧拉法计算;6)采用sigmoid函数计算;7)计算能量函数E;8)检查路径合法性,判断迭代是否结束,若未结束返回到第4)步;9)输出迭代次数、最优路径、能量函数、路径长度及能量变化。代码实现见附件(附录二)图3.10实验原始图(左)和TSP算法实现的图(右)

4结束语BP神经网络具有高度的非线性映射能力,能以任意精度逼近非线性函数,因此比较适合于一些复杂问题的建模。但由于其自身的缺点,如收敛速度慢、目标函数存在局部极小点、难以确定隐含层数和隐节点数等,使其在应用方面受到限制。本论文对人工神经网络,特别是BP网络作了系统的综述,对BP网络的工作原理进行了详细的推导、给出了算法步骤,并对网络的性能及存在缺陷的原因作了详尽分析。RBF网络确实比BP网络体现出更强的函数逼近和分类能力。而且训练速度明显提高,训练步数显著减少。由此,可以看出RBF网络具有下列优点:①它具有唯一最佳逼近的特性,且无局部极小问题存在。②RBF神经网络具有较强的输入和输出映射功能,并且理论证明在前向网络中RBF网络是完成映射功能的最优网络。③网络连接权值与输出呈线性关系。=4\*GB3④分类能力好。=5\*GB3⑤学习过程收敛速度快。Hopfield神经网络BP网络是误差反向传播网络,属于多层感知器网络,输入和输出节点数根据需要设置,可用于模式识别,分类,预测等,Hopfield神经网络Hopfield网络属于无监督学习神经元网络,网络是单层反馈网络,有连续性和离散型之分。Hopfield网络的原型是一个非线性动力学系统,目前,已经在联想记忆和优化计算中得到成功应用.基于上面三种神经网络以及代码实现我们发现每个神经网络都有其优缺点,具体应用时具体分析。

参考文献:[1](加)jiawenhan,MichelineKamber,孟小峰译数据挖掘概念与技术[M].2008:184-229.[2]高鹏毅,陈传波,BP神经网络分类器优化技术研究[D]2012:39-83[3]陈琪,叶吉祥,基于RBF的语音情感识别方法研究[D]2010:28-41[4]孙娓娓,刘琼荪,BP神经网络的算法改进及应用研究[D]2009:1-14[5]韩家炜,孟小峰,王静等,Web挖掘研究[J],计算机研究与发展,2001,(38).[6]李杨,杨宝华,基于神经网络的分类器设计及优化[D]2013:6-20[7]王雅琊,瞎幼明,基于朴素贝叶斯和BP神经网络的中文文本分类问题研究[D]2008:9-43[8]马芳,基于神经网络文本挖掘在专利自动分类中的研究应用[D]2009:14-24[9]CritesRH,BartoAG.Elevatorgroupcontrolusingmultiplereinforcementlearningagents.MachineLearning,1998,33(2-3):235-262[10]StanleyKO,MiikkulainenR.Evolvingneuralnetworksthroughaugmentingtopologies.EvolutionaryComputation,2002,10(2):99-127[11]Y.Peng,Z.Wu,J.Jiang.Anovelfeatureselectionapproachforbiomedicaldataclassification.JournalofBiomedicalInformatics,2010,43(1):15-23.

附录一number_model.mzero=[-111111111-1;-111111111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111111111-1;-111111111-1];ZERO=imresize(zero,20);subplot(2,5,1)imshow(ZERO)one=[-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1];ONE=imresize(one,20);subplot(2,5,2)imshow(ONE)two=[-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1;...-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...-111111111-1;-111111111-1];TWO=imresize(two,20);subplot(2,5,3)imshow(TWO)three=[-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1];THREE=imresize(three,20);subplot(2,5,4)imshow(THREE)four=[-111-1-1-1-111-1;-111-1-1-1-111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111-1-1-1-111-1;-111111111-1;...-111111111-1;-1-1-1-1-1-1-111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1];FOUR=imresize(four,20);subplot(2,5,5)imshow(FOUR)five=[-111111111-1;-111111111-1;...-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1];FIVE=imresize(five,20);subplot(2,5,6)imshow(FIVE)six=[-111111111-1;-111111111-1;...-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...-111111111-1;-111111111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111111111-1;-111111111-1];SIX=imresize(six,20);subplot(2,5,7)imshow(SIX)seven=[-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1];SEVEN=imresize(seven,20);subplot(2,5,8)imshow(SEVEN)eight=[-111111111-1;-111111111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111111111-1;-111111111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111111111-1;-111111111-1];EIGHT=imresize(eight,20);subplot(2,5,9)imshow(EIGHT)nine=[-111111111-1;-111111111-1;...-111-1-1-1-111-1;-111-1-1-1-111-1;...-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1];NINE=imresize(nine,20);subplot(2,5,10)imshow(NINE)Hopfield.m%%0和1的标准矩阵standardnumberarrayone=[-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1;...-1-1-1-111-1-1-1-1;-1-1-1-111-1-1-1-1];two=[-111111111-1;-111111111-1;...-1-1-1-1-1-1-111-1;-1-1-1-1-1-1-111-1;...-111111111-1;-111111111-1;...-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...-111111111-1;-111111111-1];%%画出0,1的矩阵-plotstandardnumberfigureONE=imresize(one,20);subplot(3,2,1)imshow(ONE)title('standnumber')TWO=imresize(two,20);subplot(3,2,2)imshow(TWO)title('standnumber')%%创建网络createhopfieldnetT=[one;two]';net=newhop(T);%人工加噪声这个是产生0,1的噪声generatenoise%noisearray(fixednoise)%no1=[-1-1-1-111-1-1-1-1;-1-1-1-11-1-1-1-1-1;...%-1-11-111-1-1-1-1;-1-1-1-1111-1-1-1;...%-1-1-1-1-11-1-1-1-1;-1-1-1-111-11-1-1;...%-1-1-1-111-1-1-1-1;-11-1-111-1-1-1-1;...%-1-1-1-1-11-1-1-1-1;-1-1-1-111-1-11-1];%%no2=[-1111-111-11-1;-111111111-1;...%-1-11-11-1-111-1;-1-1-11-11-111-1;...%-111111111-1;-111111111-1;...%-111-1-1-1-1-1-1-1;-111-1-1-1-1-1-1-1;...%-1111-11111-1;-111-111111-1];%随机加噪声的noisearray(randnoise)%这是一个产生随机噪声的方法rand('state',0);%初始化fori=1:100a=rand;ifa<0.15%加入百分之十的噪声,由我们修改one(i)=-one(i);%把原本是是1的地方改为-1two(i)=-two(i);%原本是-1的地方改为1endendno1=one;%赋值给两个噪声矩阵no2=two;%画加入噪声后图形的样子plotnoisyfiguresubplot(3,2,3)NO1=imresize(no1,20);imshow(NO1)title('noisynumber')subplot(3,2,4)NO2=imresize(no2,20);imshow(NO2)title('noisynumber')%仿真的结果plotidentifyfigurenoise1={(no1)'};tu1=sim(net,{10,10},{},noise1);tu1{10}'subplot(3,2,5)imshow(imresize(tu1{10}',20))title('identifynumber')noise2={(no2)'};tu2=sim(net,{10,10},{},noise2);tu2{10}'subplot(3,2,6)imshow(imresize(tu2{10}',20))title('identifynumber;附录二8.txt0.10.10.90.50.90.10.450.90.90.80.70.90.10.450.450.1DeltaU.mfunctiondu=DeltaU(V,d,A,D)[n,n]=size(V);t1=repmat(sum(V,2)-1,1,n);t2=repmat(sum(V,1)-1,n,1);PermitV=V(:,2:n);PermitV=[PermitVV(:,1)];t3=d*PermitV;du=-1*(A*t1+A*t2+D*t3);Energy.m%%%%%%计算能量函数functionE=Energy(V,d,A,D)[n,n]=size(V);t1=sumsqr(sum(V,2)-1);t2=sumsqr(sum(V,1)-1);PermitV=V(:,2:n);PermitV=[PermitVV(:,1)];temp=d*PermitV;t3=sum(sum(V.*temp));E=0.5*(A*t1+A*t2+D*t3);Final_RouteLength.m%%%%%%计算最终总

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论