人工神经网络分类器

通信工程学院

题目 人工神经网络分类器

专业: 自动化

学号:52110608

学生姓名: 张继伟

指导教师姓名:刘富

日期: 年 月 日

人工神经网络分类

摘要:80 年代重新兴起的人工神经网络已成为世界人工智能研究的热门课题之一。本文介绍了人工神经网络的一般结构及其算法, 介绍人工神经网络在模式识别方面的作用及用作模式识别的人工神经网络分类器。

人工神经网络简介:

人们对人工神经网络( A rt ifi ci al N e ur al N et 简作人N N , 也称神经网络) 的研究可追溯到40 年前。初期人们致力于建立较为详细的、仿生的( 模仿人的神经元) 神经网络的数学模型。50 年代至60 年代有人便试图建立结构上类于人脑的计算机。但由于当时集成电路、计算机及人工智能等方面技术的限制使得这种尝试未获成功, ’而且使这方面的工作几乎停顿了近20 年. 直到80 年代, 超大规格集成电路、人工智能、计算机技术及拓扑学算法的发展使得人工神经网络重新兴起并很快地蓬勃发展成了当今世界的一大热门课题. 尤其是人们希望人工神经网络能在语音和图象识别(s , ” c h a n d im a se eR co gn it on ) 方面达到完成人类的功能。使得人工神经网络在这方面有了不少应用成果。 1 98 7 年6 月在美国圣地亚哥召开的第一届国际神经网络年会( I c N N , nI entr iat o o al oC n fe r en ce on Ne ur ia N et w or k ) 重新揭开了人类向神经网络大规模进军的战幕, 据有关人士预料, 今后新一代计算机将是以神经网络为基础的, 具有高度并行处理能力, 具有自适应能力的新一代的计算机。从当前研究的热点看主要有下列几个方面: 一是各种神经网络模型的研究, 包括生物物理模型, 数学模型等。二是在数字机上进行模拟以探讨各类模型的特点、性能等。三是各种训练、学习规则的研究。四是神经网络在工作中的自适应能力的研究。五是硬件实现。国际上在这几方面的研究都尚属初级阶段, 尚有一些硬件实现和初步的应用成果。国内的研究则刚起步不久。本文介绍人工神经网络模型的一般结构及算法, 同时在和传统分类器( o as if er ) 比较的基础上介绍用于模式识别的人工神经网络分类器的结构和工作过程。 [1]

人工神经网络的概念:

人工神经网络(Artificial Neural Networks, ANN ),一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络具有自学习和自适应的能力,可以通过预先提供的一批相互对应的输入-输出数据,分析掌握两者之间潜在的规律,最终根据这些规律,用新的输入数据来推算输出结果,这种学习分析的过程被称为“训练”。

由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。 人工神经网络研究的发展:

1943年,提出形式神经元的数学模型,人工神经网络研究的开端。

1949年,提出神经元的学习准则,为神经网络的学习算法奠定了基础。

50年代,研究类似于神经网络的分布系统。

50年代末提出感知模型,把神经网络的实现付诸工程实践。

1982年,提出神经网络的数学模型,引入了能力的概念,研究了网络的动力学特性;设计出用电子线路实现网络的方案,大大促进了神经网络的研究。

1986年,提出多层感知器的反向传播算法。

现在神经网络的应用已渗透到智能控制、信号处理、优化计算、生物医学工程等领域。 [2]人工神经网络基本内容:

人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield 网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为:

(1)前向网络 网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。

(2)反馈网络 网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield 网络、波耳兹曼机均属于这种类型。

学习是神经网络研究的一个重要内容,它的适应性是通过学习实现的。根据环境的变化,

对权值进行调整,改善系统的行为。由Hebb 提出的Hebb 学习规则为神经网络的学习算法奠定了基础。Hebb 规则认为学习过程最终发生在神经元之间的突触部位,突触的联系强度随着突触前后神经元的活动而变化。在此基础上,人们提出了各种学习规则和算法,以适应不同网络模型的需要。有效的学习算法,使得神经网络能够通过连接权值的调整,构造客观世界的内在表示,形成具有特色的信息处理方法,信息存储和处理体现在网络的连接中。 根据学习环境不同,神经网络的学习方式可分为监督学习和非监督学习。在监督学习中,将训练样本的数据加到网络输入端,同时将相应的期望输出与网络输出相比较,得到误差信号,以此控制权值连接强度的调整,经多次训练后收敛到一个确定的权值。当样本情况发生变化时,经学习可以修改权值以适应新的环境。使用监督学习的神经网络模型有反传网络、感知器等。非监督学习时,事先不给定标准样本,直接将网络置于环境之中,学习阶段与工作阶段成为一体。此时,学习规律的变化服从连接权值的演变方程。非监督学习最简单的例子是Hebb 学习规则。竞争学习规则是一个更复杂的非监督学习的例子,它是根据已建立的聚类进行权值调整。自组织映射、适应谐振理论网络等都是与竞争学习有关的典型模型。

研究神经网络的非线性动力学性质,主要采用动力学系统理论、非线性规划理论和统计理论,来分析神经网络的演化过程和吸引子的性质,探索神经网络的协同行为和集体计算功能,了解神经信息处理机制。为了探讨神经网络在整体性和模糊性方面处理信息的可能,混沌理论的概念和方法将会发挥作用。混沌是一个相当难以精确定义的数学概念。一般而言,“混沌”是指由确定性方程描述的动力学系统中表现出的非确定性行为,或称之为确定的随机性。“确定性”是因为它由内在的原因而不是外来的噪声或干扰所产生,而“随机性”是指其不规则的、不能预测的行为,只可能用统计的方法描述。混沌动力学系统的主要特征是其状态对初始条件的灵敏依赖性,混沌反映其内在的随机性。混沌理论是指描述具有混沌行为的非线性动力学系统的基本理论、概念、方法,它把动力学系统的复杂行为理解为其自身与其在同外界进行物质、能量和信息交换过程中内在的有结构的行为,而不是外来的和偶然的行为,混沌状态是一种定态。混沌动力学系统的定态包括:静止、平稳量、周期性、准同期性和混沌解。混沌轨线是整体上稳定与局部不稳定相结合的结果,称之为奇异吸引子。一个奇异吸引子有如下一些特征:(1)奇异吸引子是一个吸引子,但它既不是不动点,也不是周期解;(2)奇异吸引子是不可分割的,即不能分为两个以及两个以上的吸引子;(3)它对初始值十分敏感,不同的初始值会导致极不相同的行为。

人工神经网络四种基本特征:

(1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工

神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

(2)非局限性 一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。

(3)非常定性 人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。

(4)非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。 人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;

人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。它是涉及神经科学、思维科学、人工智能、计算机科学等多个领域的交叉学科。 人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。

人工神经元的机制:

1、生物神经元

典型的神经元,即神经细胞结构:胞体、树突、轴突、突触

胞体:神经细胞的本体,完成普通细胞的生存功能。

树突:有大量的分枝,接受来自其他神经元的信号。

轴突:用以输出信号。

突触:神经元相联系的部位,对树突的突触为兴奋性的,使下一个神经元兴奋;对胞体的突触为抑制性的,阻止下一个神经元兴奋。

神经元的两种工作状态:兴奋和抑制。

动态极化原则:在每一个神经元中,信息以预知的确定方向流动,即从神经元的接收信息部分传到轴突的电脉冲起始部分,再传到轴突终端的突触,以与其它神经元通信。

连接的专一性原则:神经元之间无细胞质的连续,神经元不构成随机网络,每一个神经元与另一些神经元构成精确的联接。

信号的传递过程:接受兴奋电位;信号的汇集和传导;信号的输出。

2、人工神经元

人工神经元模型:

xi :输入,神经元的输入值

ωi :权值,突触的连接强度

f :输出函数,非线性函数

y :输出

神经元动作:

常用输出函数:

阈值函数: 阶跃函数: n net =∑w i ⋅x i i =1双曲正切函数:

3、感知器模型

f 为阈值函数:

设阈值:θ=-ω0 W=(ω1, ω2, „ ,ωn, ω0)T X=(x1, x2, „ , xn, 1)T

则:y=sgn (WTX) 即: y =f (WTX)

这种神经元没有内部状态的转变,而且函数为阈值型。因此,它实质上是一种线性阈值计算单元。感知器是一个具有单层计算单元的人工神经网络。感知器训练算法就是由这种神经网络演变来的。感知器算法能够通过对训练模式样本集的“学习”得出判别函数的系数。

4、感知器训练算法

算法描述

用样本训练时,若x ∈ωi ,g(x)>0,则w 不变。 若g(x)

通过上面的定义,感知器问题变成wi/wj两类问题。因此,感知器的自组织、自学习思想可以用于确定性分类器的训练——感知器训练方法。

初始化:

给定一个训练模式集{x1, x2, „xN},其中每个类别已知,它们分属于ω1, ω2。xi =(xi1, xi2, „xin)T 为n 维向量,增广为(n+1)维向量:xi =(xi1, xi2, „xin,1) ω2类样本乘以-

1。权向量w 为(n+1)维向量。

感知器算法步骤

置步数k=1,令增量C 为常数,且C>0,分别赋予初始增广权矢量w(1)的各分量较小的任意值。

输入训练模式xk ,计算判别函数值wT(k)xk

调整增广权矢量,规则是:

如果wT(k)xk≤0, 则w(k+1)=w(k)+ Cxk

如果wT(k)xk>0, 则w(k+1)=w(k)

如果k

通常人工神经网络在能识别之前, 需要用一些已知的输入模式对网络进行识别训练( 或称之为学习) 。这样的训练— 学习是在一组学习规则控制下进行的。初始的权重往往是由网络拓扑、节点特性和学习规则来规定的。学习规则除了控制训练、学习外, 还要说明在不断的学习过程中如何改进性能、改变权重。由于整个人工神经网络是由大量的具有处理能力的节点所组成, 而且节点间又有无数的联系。所以, 少数节点或联系的损坏并不影响大局。 再加上不少人工神经网络的算法还不断地利用当前的结果来及时改善其性能. 因此, 人工神经网络还具有自适应性, 并在容错方面比冯·诺诊曼机要强得多。 [3]

用作分类器的人工神经网络:

在模式识别( aP et m R eC 0 gn i it on ) 中通常用来将不同的输入模式进行分类, 以获得一正确的归类。为对人工神经网络在这方面的功能有一清楚的认识, 不妨把它和传统模式识别作一对比。假设一个分类器有N 个稳定的输入, 它可判断某一输入模式最可能对应M 个类别中的那一类。在语音识别中, 输入可能是某一时刻声波的频谱, 而其分类结果则是某一元音。在图象识别中输入则可能是一幅由不同灰度等级象素点组成的图画, 而其结果可能是某一物体。这样的分类器的工作过程可用图三来描述。由图可见, 传统分类器可分成两级。 第一级, 计算输入和可能输出每一类的匹配值(该值反映了输入模式和输出类别的接近程度) 。第二级, 选择匹配值最大的类。第一级的输入是代表 个输入元素值的一些符号 , 这些符号是顺序、串行输入的, 在这一级中分类器要将输入符号的外部形式转化成内部形式以用于算术、符号运算。这一级中的算法是用来计算M 个可输出类别中每一类的匹配值。其值的大小表示输入和输出的接近程序, 值越大越接近。很多情况下, 分类器是利用概率模型来确定输出样本模型和输入模式的关系及匹配值. 分布参数可由训练数据来估算, 多变量高斯分布是一种较简便的算法。

传统分类器的工作过程

第一级输出的匹配值仍是以符号表示的, 仍是以顺序, 串行的方法传递给第二级。通过符号译码, 选择出具有最大值的类别。最后输出表示该类的符号, 从而完成了整个分类工作. 整个过程顺序、串行传递信息, 速度慢, 工作中无法自我改善, 因此也无自适应能力。虽然也可将这种具有自适应能力的神经网络分类器的结构分成两级, 但其工程过程和传统的分类器不大一样。首先通过N 个输入连线并行地而不是串行地将输入模式送入第一级。每一连线输入的均为模拟值. 对于二值输入, 该值可取两个不同的数. 对具有连`戈值的输入, 则可在一很大范围内变化。

具有自适应功能的人工神经网络分类器的工作过程

第一级的任务仍然是计算匹配值, 并通过M 根替拟的输出线将结果并行地传给下一级。这里不仅输入模式的输入和级问的信息传递都是并行的, 另一方面也免除了外部表示, 内部表示的互相转化。在第二级中不仅要选择最大的匹配值, 而且还通过一定的算法对该最大匹配值还要使之扩大。在第一级对第二级的输入对M 类中的每一类均有一个输入, 但在分类结束时, 仅仅对应最可能的那一类的输出为“ 强” ( 或“ 高” ), 其它输出均为“ 弱” ( 或“ 低勺。在这种模型中, 对每一类均有输出, 只要它们是“ 突出” 的, 那未这些输出都必须被保存, 而且在下一级中进一步处理。在最简单的分类系统中, 这些输出可能直接接到标志着不同类别的灯泡上进行显示。这一些较为复杂的情况下, 这些输出线可能连到下一级( 即这种情况不只限于两级) , 而且下一级的输入可能是包含其它方式, 也可能是时变的。 如果输出提供了正确的类别, 那未这些信息、分类器的输出可反馈到第一级, 利用某种学习的算法产生一个自适应的权重。这样产生的自适应性的权重可以使得结果更加令人满意。 上述人工神经网络分类器能完成三种不同的用途。上而描述的是第一种, 分类器用来辨认哪一类( 输出) 最能代表输入模式。而且允许输入时有杂声干扰。

第二种用途是用作联想记忆器( C O n to t - A , 别, 幼bl e / A S co iat i ve M e m or y ) 。此时, 各类输出样本是理想的, 输入模式用来决定产生何种样本。这种联想记忆器对于信息残缺不全, 即只有部分信息而想获得全部信息时这就象只知作者名或文章名, 而想获得作者的全部信息( 作者名, 文章名, 出版物, 出版时间, 页数, 起止页号„ ) , 或象一张残缺的照片要复原的情况是一样的. 当然这种分类器通常要对图四所示的分类器额外增加一级再产生最可能类别的样本. 但对某些神经网络( 如H 叩if d d 网络) 这第三级却不必要。第三种用途是用作语音、图象识别的信息的压缩, 以减少传输模拟数据所需的比特( ib o 数, 这种压缩数据量的办法, 既不能丢失信息, 又要能提高速度。 [5][4]

matlab 源程序代码:

%产生指定类别的样本点,并在图中绘出

X = [0 1; 0 1]; % 限制类中心的范围

clusters = 5; % 指定类别数目

points = 10; % 指定每一类的点的数目

std_dev = 0.05; % 每一类的标准差

P = nngenc(X,clusters,points,std_dev);

plot(P(1,:),P(2,:),'+r');

title('输入样本向量');

xlabel('p(1)');

ylabel('p(2)');

%建立网络

net=newc([0 1;0 1],5,0.1); %设置神经元数目为5

%得到网络权值,并在图上绘出

figure;

plot(P(1,:),P(2,:),'+r');

w=net.iw{1}

hold on;

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及初始权值');

xlabel('p(1)');

ylabel('p(2)');

figure;

plot(P(1,:),P(2,:),'+r');

hold on;

%训练网络

net.trainParam.epochs=7;

net=init(net);

net=train(net,P);

%得到训练后的网络权值,并在图上绘出

w=net.iw{1}

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及更新后的权值');

xlabel('p(1)');

ylabel('p(2)');

a=0;

p = [0.6 ;0.8];

a=sim(net,p)

%指定输入二维向量及其类别

P = [-3 -2 -2 0 0 0 0 +2 +2 +3;

0 +1 -1 +2 +1 -1 -2 +1 -1 0];

C = [1 1 1 2 2 2 2 1 1 1];

%将这些类别转换成学习向量量化网络使用的目标向量

T = ind2vec(C)

%用不同的颜色,绘出这些输入向量

plotvec(P,C),

title('输入二维向量');

xlabel('P(1)');

ylabel('P(2)');

%建立网络

net = newlvq(minmax(P),4,[.6 .4],0.1);

%在同一幅图上绘出输入向量及初始权重向量

figure;

plotvec(P,C)

hold on

W1=net.iw{1};

plot(W1(1,1),W1(1,2),'ow')

title('输入以及权重向量');

xlabel('P(1), W(1)');

ylabel('P(2), W(2)');

hold off;

%训练网络,并再次绘出权重向量

figure;

plotvec(P,C);

hold on;

net.trainParam.epochs=150;

net.trainParam.show=Inf;

net=train(net,P,T);

plotvec(net.iw{1}',vec2ind(net.lw{2}),'o');

%对于一个特定的点,得到网络的输出

p = [0.8; 0.3];

a = vec2ind(sim(net,p))

实验举例:

(1)

%以FRP -混凝土面内剪切试验说明matlab 神经元网络的使用

%读入试验数据,数据格式为

% FRP厚度(mm) FRP宽度(mm) FRP粘结长度(mm) FRP弹模(GPa) 混凝土抗拉强度(MPa) 混 凝土宽度(mm)

%[ 0.169 50 130 97 2.9 100]'

%网络输出为极限承载力

FID1=fopen('Direct_Shear_Test.txt','r');

[Test_Data,count]=fscanf(FID1,'%e',[7 inf]);

%前6列为参数,最后1列是试验承载力

fclose(FID1);

S1=8;

%设定数值边界

Boundry=zeros(6,2);

for i=1:6

Boundry(i,:)=minmax(Test_Data(i,:));

end

%初始化网络

net=newff(Boundry,[S1 1],{'tansig','purelin'},'trainscg');

%网络训练

net.trainParam.epochs=50000;

net.trainParam.show=300;

net.trainParam.goal=0.0001;

net=train(net, Test_Data(1:6,:),Test_Data(7,:));

%验证网络

testp=Test_Data(1:6,20);

resultp=sim(net,testp)

%如果要使用网络只需要先读入存档的训练好的网络

load Direct_Shear_net.mat

%接着输入试验参数

a=[ 0.169 50 130 97 2.9 100]';

%得到承载力

Pu=sim(net,testp)

(2)

采用动量梯度下降算法训练 BP 网络。

训练样本定义如下:

输入矢量为

p =[-1 -2 3 1 -1 1 5 -3]

目标矢量为 t = [-1 -1 1 1]

解:本例的 MATLAB 程序如下:

close all

clear

echo on

clc

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

pause

% 敲任意键开始

clc

% 定义训练样本

% P 为输入矢量

P=[-1, -2, 3, 1; -1, 1, 5, -3];

%T为目标矢量

T=[-1, -1, 1, 1];

pause;

clc

% 创建一个新的前向神经网络

net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')

% 当前输入层权值和阈值

inputWeights=net.IW{1,1}

inputbias=net.b{1}

% 当前网络层权值和阈值

layerWeights=net.LW{2,1}

layerbias=net.b{2}

pause

clc

% 设置训练参数

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.mc = 0.9;

net.trainParam.epochs = 1000;

net.trainParam.goal = 1e-3;

pause

clc

% 调用 TRAINGDM 算法训练 BP 网络

[net,tr]=train(net,P,T);

pause

clc

% 对 BP 网络进行仿真

A = sim(net,P)

% 计算仿真误差

E = T - A

MSE=mse(E)

pause

clc

echo off

(3)

采用贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采用两种训练方法,即 L-M 优化算法(trainlm )和贝叶斯正则化算法(trainbr ),用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下MATLAB 语句生成: 输入矢量:P = [-1:0.05:1];

目标矢量:randn(’seed ’,78341223) ;

T = sin(2*pi*P)+0.1*randn(size(P));

解:本例的 MATLAB 程序如下:

close all

clear

echo on

clc

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

pause

% 敲任意键开始

clc

% 定义训练样本矢量

% P 为输入矢量

P = [-1:0.05:1];

% T 为目标矢量

randn('seed',78341223); T = sin(2*pi*P)+0.1*randn(size(P));

% 绘制样本数据点

plot(P,T,'+');

echo off

hold on;

plot(P,sin(2*pi*P),':');

% 绘制不含噪声的正弦曲线

echo on

clc

pause

clc

% 创建一个新的前向神经网络

net=newff(minmax(P),[20,1],{'tansig','purelin'});

pause

clc

echo off

clc

disp('1. L-M 优化算法 TRAINLM'); disp('2. 贝叶斯正则化算法 TRAINBR'); choice=input('请选择训练算法(1,2):');

figure(gcf);

if(choice==1)

echo on

clc

% 采用 L-M 优化算法 TRAINLM

net.trainFcn='trainlm';

pause

clc

% 设置训练参数

net.trainParam.epochs = 500;

net.trainParam.goal = 1e-6;

net=init(net);

% 重新初始化

pause

clc

elseif(choice==2)

echo on

clc

% 采用贝叶斯正则化算法 TRAINBR

net.trainFcn='trainbr';

pause

clc

% 设置训练参数

net.trainParam.epochs = 500;

randn('seed',192736547);

net = init(net);

% 重新初始化

pause

clc

end

% 调用相应算法训练 BP 网络

[net,tr]=train(net,P,T);

pause

clc

% 对 BP 网络进行仿真

A = sim(net,P);

% 计算仿真误差

E = T - A;

MSE=mse(E)

pause

clc

% 绘制匹配结果曲线

close all;

plot(P,A,P,T,'+',P,sin(2*pi*P),':');

pause;

clc

echo off

人工神经网络发展趋势:

人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网络的研究,为人工神经

网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。光电结合的神经计算机为人工神经网络的发展提供了良好条件。

人工智能及网络拓扑算法的发展, 推动了人工神经网络的重新崛起, 迅速发展已成了当今世界人工智能的又一热点。人工神经网络由于它在并行处理和自适应方面的优良特性及在模式识别方面的应用成果已使人们对之刮目相看。人工神经网络正向模拟人类认知的道路上深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向;在现代神经科学研究成果的基础上,试图用模拟神经网络加工、记忆信息的方式,制造各种智能机器;神经元网络的实现是其广泛应用的前提,是软件与硬件的有效结合,可以针对网络材料和功能结构,研究更简洁高效的网络结构,同时扩大神经元芯片的作用范围; 利用光电结合的神经计算机,创造出功能更全,应用更广的人工神经网络,提高其信息处理能力,进一步优化从理论到实际的实现;人类与计算机的自然口译、流畅的谈话、音频检索甚至用自然语言与计算机对话也是其发展实现的方向之一。

虽然人工神经网络已经取得了一定的进步,但是还存在许多缺陷,例如:应用的面不够宽阔、结果不够精确;现有模型算法的训练速度不够高;算法的集成度不够高;同时我们希望在理论上寻找新的突破点, 建立新的通用模型和算法。需进一步对生物神经元系统进行研究,不断丰富人们对人脑神经的认识。

参 考 文 献

[1] 韩立群. 人工神经网络[M]. 北京:北京邮电大学出版社,2006.

[2] 武妍,王守觉. 一种通过反馈提高神经网络学习性能的新算法[J].计算机研究与发展,2004,41(9): 1488-1492.

[3] 邓学荣, 王全. 神经网络系统. 新浪潮.1 9 8 9 年第6 期

[4] 罗忠,谢永斌,朱重光. CMAC学习过程收敛性研究[J]. 自动化学报,1997,23(4):455-461.

[5] 何国光,朱萍,曹志彤,等. 混沌神经网络的Lyapunov 指数与混沌区域[J]. 浙江大学报,

2004,31(7):387-390.

[6] 董军,胡上序. 混沌神经网络研究进展和展望[J]. 信息与控制,1997,26(5):360-368.

[7] WU Wei,WANG Jian,CHENG Ming-song,et al. Convergenceanalysis of online gradient method for BP neural networks[J].Neural Networks , 2011(24):91-98. [7][6]

通信工程学院

题目 人工神经网络分类器

专业: 自动化

学号:52110608

学生姓名: 张继伟

指导教师姓名:刘富

日期: 年 月 日

人工神经网络分类

摘要:80 年代重新兴起的人工神经网络已成为世界人工智能研究的热门课题之一。本文介绍了人工神经网络的一般结构及其算法, 介绍人工神经网络在模式识别方面的作用及用作模式识别的人工神经网络分类器。

人工神经网络简介:

人们对人工神经网络( A rt ifi ci al N e ur al N et 简作人N N , 也称神经网络) 的研究可追溯到40 年前。初期人们致力于建立较为详细的、仿生的( 模仿人的神经元) 神经网络的数学模型。50 年代至60 年代有人便试图建立结构上类于人脑的计算机。但由于当时集成电路、计算机及人工智能等方面技术的限制使得这种尝试未获成功, ’而且使这方面的工作几乎停顿了近20 年. 直到80 年代, 超大规格集成电路、人工智能、计算机技术及拓扑学算法的发展使得人工神经网络重新兴起并很快地蓬勃发展成了当今世界的一大热门课题. 尤其是人们希望人工神经网络能在语音和图象识别(s , ” c h a n d im a se eR co gn it on ) 方面达到完成人类的功能。使得人工神经网络在这方面有了不少应用成果。 1 98 7 年6 月在美国圣地亚哥召开的第一届国际神经网络年会( I c N N , nI entr iat o o al oC n fe r en ce on Ne ur ia N et w or k ) 重新揭开了人类向神经网络大规模进军的战幕, 据有关人士预料, 今后新一代计算机将是以神经网络为基础的, 具有高度并行处理能力, 具有自适应能力的新一代的计算机。从当前研究的热点看主要有下列几个方面: 一是各种神经网络模型的研究, 包括生物物理模型, 数学模型等。二是在数字机上进行模拟以探讨各类模型的特点、性能等。三是各种训练、学习规则的研究。四是神经网络在工作中的自适应能力的研究。五是硬件实现。国际上在这几方面的研究都尚属初级阶段, 尚有一些硬件实现和初步的应用成果。国内的研究则刚起步不久。本文介绍人工神经网络模型的一般结构及算法, 同时在和传统分类器( o as if er ) 比较的基础上介绍用于模式识别的人工神经网络分类器的结构和工作过程。 [1]

人工神经网络的概念:

人工神经网络(Artificial Neural Networks, ANN ),一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络具有自学习和自适应的能力,可以通过预先提供的一批相互对应的输入-输出数据,分析掌握两者之间潜在的规律,最终根据这些规律,用新的输入数据来推算输出结果,这种学习分析的过程被称为“训练”。

由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。 人工神经网络研究的发展:

1943年,提出形式神经元的数学模型,人工神经网络研究的开端。

1949年,提出神经元的学习准则,为神经网络的学习算法奠定了基础。

50年代,研究类似于神经网络的分布系统。

50年代末提出感知模型,把神经网络的实现付诸工程实践。

1982年,提出神经网络的数学模型,引入了能力的概念,研究了网络的动力学特性;设计出用电子线路实现网络的方案,大大促进了神经网络的研究。

1986年,提出多层感知器的反向传播算法。

现在神经网络的应用已渗透到智能控制、信号处理、优化计算、生物医学工程等领域。 [2]人工神经网络基本内容:

人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield 网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为:

(1)前向网络 网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。

(2)反馈网络 网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield 网络、波耳兹曼机均属于这种类型。

学习是神经网络研究的一个重要内容,它的适应性是通过学习实现的。根据环境的变化,

对权值进行调整,改善系统的行为。由Hebb 提出的Hebb 学习规则为神经网络的学习算法奠定了基础。Hebb 规则认为学习过程最终发生在神经元之间的突触部位,突触的联系强度随着突触前后神经元的活动而变化。在此基础上,人们提出了各种学习规则和算法,以适应不同网络模型的需要。有效的学习算法,使得神经网络能够通过连接权值的调整,构造客观世界的内在表示,形成具有特色的信息处理方法,信息存储和处理体现在网络的连接中。 根据学习环境不同,神经网络的学习方式可分为监督学习和非监督学习。在监督学习中,将训练样本的数据加到网络输入端,同时将相应的期望输出与网络输出相比较,得到误差信号,以此控制权值连接强度的调整,经多次训练后收敛到一个确定的权值。当样本情况发生变化时,经学习可以修改权值以适应新的环境。使用监督学习的神经网络模型有反传网络、感知器等。非监督学习时,事先不给定标准样本,直接将网络置于环境之中,学习阶段与工作阶段成为一体。此时,学习规律的变化服从连接权值的演变方程。非监督学习最简单的例子是Hebb 学习规则。竞争学习规则是一个更复杂的非监督学习的例子,它是根据已建立的聚类进行权值调整。自组织映射、适应谐振理论网络等都是与竞争学习有关的典型模型。

研究神经网络的非线性动力学性质,主要采用动力学系统理论、非线性规划理论和统计理论,来分析神经网络的演化过程和吸引子的性质,探索神经网络的协同行为和集体计算功能,了解神经信息处理机制。为了探讨神经网络在整体性和模糊性方面处理信息的可能,混沌理论的概念和方法将会发挥作用。混沌是一个相当难以精确定义的数学概念。一般而言,“混沌”是指由确定性方程描述的动力学系统中表现出的非确定性行为,或称之为确定的随机性。“确定性”是因为它由内在的原因而不是外来的噪声或干扰所产生,而“随机性”是指其不规则的、不能预测的行为,只可能用统计的方法描述。混沌动力学系统的主要特征是其状态对初始条件的灵敏依赖性,混沌反映其内在的随机性。混沌理论是指描述具有混沌行为的非线性动力学系统的基本理论、概念、方法,它把动力学系统的复杂行为理解为其自身与其在同外界进行物质、能量和信息交换过程中内在的有结构的行为,而不是外来的和偶然的行为,混沌状态是一种定态。混沌动力学系统的定态包括:静止、平稳量、周期性、准同期性和混沌解。混沌轨线是整体上稳定与局部不稳定相结合的结果,称之为奇异吸引子。一个奇异吸引子有如下一些特征:(1)奇异吸引子是一个吸引子,但它既不是不动点,也不是周期解;(2)奇异吸引子是不可分割的,即不能分为两个以及两个以上的吸引子;(3)它对初始值十分敏感,不同的初始值会导致极不相同的行为。

人工神经网络四种基本特征:

(1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工

神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

(2)非局限性 一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。

(3)非常定性 人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。

(4)非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。 人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;

人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。它是涉及神经科学、思维科学、人工智能、计算机科学等多个领域的交叉学科。 人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。

人工神经元的机制:

1、生物神经元

典型的神经元,即神经细胞结构:胞体、树突、轴突、突触

胞体:神经细胞的本体,完成普通细胞的生存功能。

树突:有大量的分枝,接受来自其他神经元的信号。

轴突:用以输出信号。

突触:神经元相联系的部位,对树突的突触为兴奋性的,使下一个神经元兴奋;对胞体的突触为抑制性的,阻止下一个神经元兴奋。

神经元的两种工作状态:兴奋和抑制。

动态极化原则:在每一个神经元中,信息以预知的确定方向流动,即从神经元的接收信息部分传到轴突的电脉冲起始部分,再传到轴突终端的突触,以与其它神经元通信。

连接的专一性原则:神经元之间无细胞质的连续,神经元不构成随机网络,每一个神经元与另一些神经元构成精确的联接。

信号的传递过程:接受兴奋电位;信号的汇集和传导;信号的输出。

2、人工神经元

人工神经元模型:

xi :输入,神经元的输入值

ωi :权值,突触的连接强度

f :输出函数,非线性函数

y :输出

神经元动作:

常用输出函数:

阈值函数: 阶跃函数: n net =∑w i ⋅x i i =1双曲正切函数:

3、感知器模型

f 为阈值函数:

设阈值:θ=-ω0 W=(ω1, ω2, „ ,ωn, ω0)T X=(x1, x2, „ , xn, 1)T

则:y=sgn (WTX) 即: y =f (WTX)

这种神经元没有内部状态的转变,而且函数为阈值型。因此,它实质上是一种线性阈值计算单元。感知器是一个具有单层计算单元的人工神经网络。感知器训练算法就是由这种神经网络演变来的。感知器算法能够通过对训练模式样本集的“学习”得出判别函数的系数。

4、感知器训练算法

算法描述

用样本训练时,若x ∈ωi ,g(x)>0,则w 不变。 若g(x)

通过上面的定义,感知器问题变成wi/wj两类问题。因此,感知器的自组织、自学习思想可以用于确定性分类器的训练——感知器训练方法。

初始化:

给定一个训练模式集{x1, x2, „xN},其中每个类别已知,它们分属于ω1, ω2。xi =(xi1, xi2, „xin)T 为n 维向量,增广为(n+1)维向量:xi =(xi1, xi2, „xin,1) ω2类样本乘以-

1。权向量w 为(n+1)维向量。

感知器算法步骤

置步数k=1,令增量C 为常数,且C>0,分别赋予初始增广权矢量w(1)的各分量较小的任意值。

输入训练模式xk ,计算判别函数值wT(k)xk

调整增广权矢量,规则是:

如果wT(k)xk≤0, 则w(k+1)=w(k)+ Cxk

如果wT(k)xk>0, 则w(k+1)=w(k)

如果k

通常人工神经网络在能识别之前, 需要用一些已知的输入模式对网络进行识别训练( 或称之为学习) 。这样的训练— 学习是在一组学习规则控制下进行的。初始的权重往往是由网络拓扑、节点特性和学习规则来规定的。学习规则除了控制训练、学习外, 还要说明在不断的学习过程中如何改进性能、改变权重。由于整个人工神经网络是由大量的具有处理能力的节点所组成, 而且节点间又有无数的联系。所以, 少数节点或联系的损坏并不影响大局。 再加上不少人工神经网络的算法还不断地利用当前的结果来及时改善其性能. 因此, 人工神经网络还具有自适应性, 并在容错方面比冯·诺诊曼机要强得多。 [3]

用作分类器的人工神经网络:

在模式识别( aP et m R eC 0 gn i it on ) 中通常用来将不同的输入模式进行分类, 以获得一正确的归类。为对人工神经网络在这方面的功能有一清楚的认识, 不妨把它和传统模式识别作一对比。假设一个分类器有N 个稳定的输入, 它可判断某一输入模式最可能对应M 个类别中的那一类。在语音识别中, 输入可能是某一时刻声波的频谱, 而其分类结果则是某一元音。在图象识别中输入则可能是一幅由不同灰度等级象素点组成的图画, 而其结果可能是某一物体。这样的分类器的工作过程可用图三来描述。由图可见, 传统分类器可分成两级。 第一级, 计算输入和可能输出每一类的匹配值(该值反映了输入模式和输出类别的接近程度) 。第二级, 选择匹配值最大的类。第一级的输入是代表 个输入元素值的一些符号 , 这些符号是顺序、串行输入的, 在这一级中分类器要将输入符号的外部形式转化成内部形式以用于算术、符号运算。这一级中的算法是用来计算M 个可输出类别中每一类的匹配值。其值的大小表示输入和输出的接近程序, 值越大越接近。很多情况下, 分类器是利用概率模型来确定输出样本模型和输入模式的关系及匹配值. 分布参数可由训练数据来估算, 多变量高斯分布是一种较简便的算法。

传统分类器的工作过程

第一级输出的匹配值仍是以符号表示的, 仍是以顺序, 串行的方法传递给第二级。通过符号译码, 选择出具有最大值的类别。最后输出表示该类的符号, 从而完成了整个分类工作. 整个过程顺序、串行传递信息, 速度慢, 工作中无法自我改善, 因此也无自适应能力。虽然也可将这种具有自适应能力的神经网络分类器的结构分成两级, 但其工程过程和传统的分类器不大一样。首先通过N 个输入连线并行地而不是串行地将输入模式送入第一级。每一连线输入的均为模拟值. 对于二值输入, 该值可取两个不同的数. 对具有连`戈值的输入, 则可在一很大范围内变化。

具有自适应功能的人工神经网络分类器的工作过程

第一级的任务仍然是计算匹配值, 并通过M 根替拟的输出线将结果并行地传给下一级。这里不仅输入模式的输入和级问的信息传递都是并行的, 另一方面也免除了外部表示, 内部表示的互相转化。在第二级中不仅要选择最大的匹配值, 而且还通过一定的算法对该最大匹配值还要使之扩大。在第一级对第二级的输入对M 类中的每一类均有一个输入, 但在分类结束时, 仅仅对应最可能的那一类的输出为“ 强” ( 或“ 高” ), 其它输出均为“ 弱” ( 或“ 低勺。在这种模型中, 对每一类均有输出, 只要它们是“ 突出” 的, 那未这些输出都必须被保存, 而且在下一级中进一步处理。在最简单的分类系统中, 这些输出可能直接接到标志着不同类别的灯泡上进行显示。这一些较为复杂的情况下, 这些输出线可能连到下一级( 即这种情况不只限于两级) , 而且下一级的输入可能是包含其它方式, 也可能是时变的。 如果输出提供了正确的类别, 那未这些信息、分类器的输出可反馈到第一级, 利用某种学习的算法产生一个自适应的权重。这样产生的自适应性的权重可以使得结果更加令人满意。 上述人工神经网络分类器能完成三种不同的用途。上而描述的是第一种, 分类器用来辨认哪一类( 输出) 最能代表输入模式。而且允许输入时有杂声干扰。

第二种用途是用作联想记忆器( C O n to t - A , 别, 幼bl e / A S co iat i ve M e m or y ) 。此时, 各类输出样本是理想的, 输入模式用来决定产生何种样本。这种联想记忆器对于信息残缺不全, 即只有部分信息而想获得全部信息时这就象只知作者名或文章名, 而想获得作者的全部信息( 作者名, 文章名, 出版物, 出版时间, 页数, 起止页号„ ) , 或象一张残缺的照片要复原的情况是一样的. 当然这种分类器通常要对图四所示的分类器额外增加一级再产生最可能类别的样本. 但对某些神经网络( 如H 叩if d d 网络) 这第三级却不必要。第三种用途是用作语音、图象识别的信息的压缩, 以减少传输模拟数据所需的比特( ib o 数, 这种压缩数据量的办法, 既不能丢失信息, 又要能提高速度。 [5][4]

matlab 源程序代码:

%产生指定类别的样本点,并在图中绘出

X = [0 1; 0 1]; % 限制类中心的范围

clusters = 5; % 指定类别数目

points = 10; % 指定每一类的点的数目

std_dev = 0.05; % 每一类的标准差

P = nngenc(X,clusters,points,std_dev);

plot(P(1,:),P(2,:),'+r');

title('输入样本向量');

xlabel('p(1)');

ylabel('p(2)');

%建立网络

net=newc([0 1;0 1],5,0.1); %设置神经元数目为5

%得到网络权值,并在图上绘出

figure;

plot(P(1,:),P(2,:),'+r');

w=net.iw{1}

hold on;

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及初始权值');

xlabel('p(1)');

ylabel('p(2)');

figure;

plot(P(1,:),P(2,:),'+r');

hold on;

%训练网络

net.trainParam.epochs=7;

net=init(net);

net=train(net,P);

%得到训练后的网络权值,并在图上绘出

w=net.iw{1}

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及更新后的权值');

xlabel('p(1)');

ylabel('p(2)');

a=0;

p = [0.6 ;0.8];

a=sim(net,p)

%指定输入二维向量及其类别

P = [-3 -2 -2 0 0 0 0 +2 +2 +3;

0 +1 -1 +2 +1 -1 -2 +1 -1 0];

C = [1 1 1 2 2 2 2 1 1 1];

%将这些类别转换成学习向量量化网络使用的目标向量

T = ind2vec(C)

%用不同的颜色,绘出这些输入向量

plotvec(P,C),

title('输入二维向量');

xlabel('P(1)');

ylabel('P(2)');

%建立网络

net = newlvq(minmax(P),4,[.6 .4],0.1);

%在同一幅图上绘出输入向量及初始权重向量

figure;

plotvec(P,C)

hold on

W1=net.iw{1};

plot(W1(1,1),W1(1,2),'ow')

title('输入以及权重向量');

xlabel('P(1), W(1)');

ylabel('P(2), W(2)');

hold off;

%训练网络,并再次绘出权重向量

figure;

plotvec(P,C);

hold on;

net.trainParam.epochs=150;

net.trainParam.show=Inf;

net=train(net,P,T);

plotvec(net.iw{1}',vec2ind(net.lw{2}),'o');

%对于一个特定的点,得到网络的输出

p = [0.8; 0.3];

a = vec2ind(sim(net,p))

实验举例:

(1)

%以FRP -混凝土面内剪切试验说明matlab 神经元网络的使用

%读入试验数据,数据格式为

% FRP厚度(mm) FRP宽度(mm) FRP粘结长度(mm) FRP弹模(GPa) 混凝土抗拉强度(MPa) 混 凝土宽度(mm)

%[ 0.169 50 130 97 2.9 100]'

%网络输出为极限承载力

FID1=fopen('Direct_Shear_Test.txt','r');

[Test_Data,count]=fscanf(FID1,'%e',[7 inf]);

%前6列为参数,最后1列是试验承载力

fclose(FID1);

S1=8;

%设定数值边界

Boundry=zeros(6,2);

for i=1:6

Boundry(i,:)=minmax(Test_Data(i,:));

end

%初始化网络

net=newff(Boundry,[S1 1],{'tansig','purelin'},'trainscg');

%网络训练

net.trainParam.epochs=50000;

net.trainParam.show=300;

net.trainParam.goal=0.0001;

net=train(net, Test_Data(1:6,:),Test_Data(7,:));

%验证网络

testp=Test_Data(1:6,20);

resultp=sim(net,testp)

%如果要使用网络只需要先读入存档的训练好的网络

load Direct_Shear_net.mat

%接着输入试验参数

a=[ 0.169 50 130 97 2.9 100]';

%得到承载力

Pu=sim(net,testp)

(2)

采用动量梯度下降算法训练 BP 网络。

训练样本定义如下:

输入矢量为

p =[-1 -2 3 1 -1 1 5 -3]

目标矢量为 t = [-1 -1 1 1]

解:本例的 MATLAB 程序如下:

close all

clear

echo on

clc

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

pause

% 敲任意键开始

clc

% 定义训练样本

% P 为输入矢量

P=[-1, -2, 3, 1; -1, 1, 5, -3];

%T为目标矢量

T=[-1, -1, 1, 1];

pause;

clc

% 创建一个新的前向神经网络

net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')

% 当前输入层权值和阈值

inputWeights=net.IW{1,1}

inputbias=net.b{1}

% 当前网络层权值和阈值

layerWeights=net.LW{2,1}

layerbias=net.b{2}

pause

clc

% 设置训练参数

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.mc = 0.9;

net.trainParam.epochs = 1000;

net.trainParam.goal = 1e-3;

pause

clc

% 调用 TRAINGDM 算法训练 BP 网络

[net,tr]=train(net,P,T);

pause

clc

% 对 BP 网络进行仿真

A = sim(net,P)

% 计算仿真误差

E = T - A

MSE=mse(E)

pause

clc

echo off

(3)

采用贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采用两种训练方法,即 L-M 优化算法(trainlm )和贝叶斯正则化算法(trainbr ),用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下MATLAB 语句生成: 输入矢量:P = [-1:0.05:1];

目标矢量:randn(’seed ’,78341223) ;

T = sin(2*pi*P)+0.1*randn(size(P));

解:本例的 MATLAB 程序如下:

close all

clear

echo on

clc

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

pause

% 敲任意键开始

clc

% 定义训练样本矢量

% P 为输入矢量

P = [-1:0.05:1];

% T 为目标矢量

randn('seed',78341223); T = sin(2*pi*P)+0.1*randn(size(P));

% 绘制样本数据点

plot(P,T,'+');

echo off

hold on;

plot(P,sin(2*pi*P),':');

% 绘制不含噪声的正弦曲线

echo on

clc

pause

clc

% 创建一个新的前向神经网络

net=newff(minmax(P),[20,1],{'tansig','purelin'});

pause

clc

echo off

clc

disp('1. L-M 优化算法 TRAINLM'); disp('2. 贝叶斯正则化算法 TRAINBR'); choice=input('请选择训练算法(1,2):');

figure(gcf);

if(choice==1)

echo on

clc

% 采用 L-M 优化算法 TRAINLM

net.trainFcn='trainlm';

pause

clc

% 设置训练参数

net.trainParam.epochs = 500;

net.trainParam.goal = 1e-6;

net=init(net);

% 重新初始化

pause

clc

elseif(choice==2)

echo on

clc

% 采用贝叶斯正则化算法 TRAINBR

net.trainFcn='trainbr';

pause

clc

% 设置训练参数

net.trainParam.epochs = 500;

randn('seed',192736547);

net = init(net);

% 重新初始化

pause

clc

end

% 调用相应算法训练 BP 网络

[net,tr]=train(net,P,T);

pause

clc

% 对 BP 网络进行仿真

A = sim(net,P);

% 计算仿真误差

E = T - A;

MSE=mse(E)

pause

clc

% 绘制匹配结果曲线

close all;

plot(P,A,P,T,'+',P,sin(2*pi*P),':');

pause;

clc

echo off

人工神经网络发展趋势:

人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网络的研究,为人工神经

网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。光电结合的神经计算机为人工神经网络的发展提供了良好条件。

人工智能及网络拓扑算法的发展, 推动了人工神经网络的重新崛起, 迅速发展已成了当今世界人工智能的又一热点。人工神经网络由于它在并行处理和自适应方面的优良特性及在模式识别方面的应用成果已使人们对之刮目相看。人工神经网络正向模拟人类认知的道路上深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向;在现代神经科学研究成果的基础上,试图用模拟神经网络加工、记忆信息的方式,制造各种智能机器;神经元网络的实现是其广泛应用的前提,是软件与硬件的有效结合,可以针对网络材料和功能结构,研究更简洁高效的网络结构,同时扩大神经元芯片的作用范围; 利用光电结合的神经计算机,创造出功能更全,应用更广的人工神经网络,提高其信息处理能力,进一步优化从理论到实际的实现;人类与计算机的自然口译、流畅的谈话、音频检索甚至用自然语言与计算机对话也是其发展实现的方向之一。

虽然人工神经网络已经取得了一定的进步,但是还存在许多缺陷,例如:应用的面不够宽阔、结果不够精确;现有模型算法的训练速度不够高;算法的集成度不够高;同时我们希望在理论上寻找新的突破点, 建立新的通用模型和算法。需进一步对生物神经元系统进行研究,不断丰富人们对人脑神经的认识。

参 考 文 献

[1] 韩立群. 人工神经网络[M]. 北京:北京邮电大学出版社,2006.

[2] 武妍,王守觉. 一种通过反馈提高神经网络学习性能的新算法[J].计算机研究与发展,2004,41(9): 1488-1492.

[3] 邓学荣, 王全. 神经网络系统. 新浪潮.1 9 8 9 年第6 期

[4] 罗忠,谢永斌,朱重光. CMAC学习过程收敛性研究[J]. 自动化学报,1997,23(4):455-461.

[5] 何国光,朱萍,曹志彤,等. 混沌神经网络的Lyapunov 指数与混沌区域[J]. 浙江大学报,

2004,31(7):387-390.

[6] 董军,胡上序. 混沌神经网络研究进展和展望[J]. 信息与控制,1997,26(5):360-368.

[7] WU Wei,WANG Jian,CHENG Ming-song,et al. Convergenceanalysis of online gradient method for BP neural networks[J].Neural Networks , 2011(24):91-98. [7][6]


相关文章

  • 人工神经网络原理_分类及应用
  • 科技资讯 2014 NO.03 SCIENCE & TECHNOLOGY INFORMATION 学 术 论 坛 人工神经网络原理.分类及应用 王磊 (东莞职业技术学院教育技术中心 广东东莞 523808) 摘 要:本文就人工神经网 ...查看


  • 遥感影像的解译-分类
  • (赵春霞.钱乐祥)监督分类是需要学习训练的分类方法,如最大似然分类,人工神经网络分类,即是需要事先为每类地物在遥感图像上采集样本数据,之后通过学习训练过程才来分类;非监督分类不需要人工采集地物样本点数据,多是通过聚类的方法来自动分类,主要有 ...查看


  • 未来计算机接口的设想
  • 摘要:近些年来,脑-机接口BCI(brain-computer interaction)技术的研究在国际上引起了广泛的兴趣并获得了快速的发展.人类大脑能够产生多种信号, 包括电的.磁的.化学的以及大脑活动的机械反应等各种形式.这些信号可以通 ...查看


  • 2017年中国人工智能行业发展分析报告
  • 2017年人工智能行业现状及发展前景 趋势展望分析报告 2017年6月出版 文本目录 1.人工智能与深度学习........................................................4 1.1.人工智能 ...查看


  • 自组织特征映射网络(SOM)课件
  • 人工神经网络 自组织特征映射网络简介 二〇一二年十二月 目录: 2. 自组织特征映射网基本概念 3. 自组织特征映射网拓扑结构 4. 自组织特征映射网学习算法 5. 自组织特征映射网的应用 从自组织竞争神经网络谈起:此类网络是模拟生物神经系 ...查看


  • 网络舆情分析技术的研究
  • 网络舆情分析研究 舆情是指在一定的社会空间内,围绕中介性社会事件的发生.发展和变化,民众对社会管理者产生和持有的社会政治态度.它是较多群众关于社会中各种现象.问题所表达的信念.态度.意见和情绪等等表现的总和.网络舆情形成迅速,对社会影响巨大 ...查看


  • 人工智能在电子政务建设中的实例应用初探
  • 一.我国电子政务建设的背景综述 2 0 0 2 年5 月,联合国经济和社会理事会发布了题为<电子政府发展评价的基准:一个全球视角>的报告.该报告显示,2001 年在联合国190 个国家和地区中,已经开展电子政务的国家和地区为16 ...查看


  • 各种分类算法比较
  • 各种分类算法比较 最近在学习分类算法,顺便整理了各种分类算法的优缺点. 1决策树(Decision Trees)的优缺点 决策树的优点: 一. 决策树易于理解和解释. 人们在通过解释后都有能力去理解决策树所表达的意义. 二. 对于决策树,数 ...查看


  • 遗传算法与神经网络
  • 遗 传 算 法 与 神 经 网 络 1 遗传算法 ............................................................................................... ...查看


热门内容