模式识别实验
- 格式:doc
- 大小:785.50 KB
- 文档页数:12
姓名:学号:院系:电子与信息工程学院课程名称:模式识别实验名称:神经网络用于模式识别同组人:实验成绩:总成绩:教师评语教师签字:年月日1实验目的1.掌握人工神经网络的基本结构与原理,理解神经网络在模式识别中的应用;2.学会使用多输入多输出结构,构造三层神经网络并对给定的样本进行分类;3.分析学习效率η,惯性系数α,总的迭代次数N,训练控制误差ε,初始化权值以及隐层节点数对网络性能的影响;4.采用批处理BP重复算法进行分类,结果与三层神经网络进行对比。
2原理2.1人工神经网络人工神经网络(Artificial Neural Network,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。
它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。
在工程与学术界也常直接简称为神经网络或类神经网络。
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。
每个节点代表一种特定的输出函数,称为激励函数(activation function)。
每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。
网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。
而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。
2.1.1人工神经元图 1 生物神经元神经元是大脑处理信息的基本单元,以细胞体为主体,由许多向周围延伸的不规则树枝状纤维构成的神经细胞,其形状很像一棵枯树的枝干。
它主要由细胞体、树突、轴突和突触(Synapse,又称神经键)组成。
胞体:是神经细胞的本体(可看成系统);树突:长度较短,接受自其他神经元的信号(输入); 轴突:它用以输出信号;突触:它是一个神经元与另一个神经元相联系的部位,是一个神经元轴突的端部将信号(兴奋)传递给下一个神经元的树突或胞体;对树突的突触多为兴奋性的,使下一个神经元兴奋;而对胞体的突触多为抑制性,其作用是阻止下一个神经元兴奋。
一个神经元有两种状态:兴奋和抑制。
平时处于抑制状态的神经元,其树突和胞体接收其他神经元经由突触传来的兴奋电位;多个输入在神经元中以代数和的方式叠加;如果输入兴奋总量超过某个阈值,神经元就会被激发进入兴奋状态,发出输出脉冲,并由轴突的突触传递给其他神经元。
神经元被触发之后有一个不应期,在此期间内不能被触发,然后阈值逐渐下降,恢复兴奋性。
图 2 人工神经元输入i x :相当于其他神经元的输出; 权值i ω:相当于突触的连接强度;f :是一个非线性函数,如阈值函数或Sigmoid 函数。
神经元的动作:1ni i i net x ω==∑,()y f net =。
当f 为阈值函数时,其输出为:1sgn n i i i y x ωθ=⎛⎫=- ⎪⎝⎭∑,也可写为:()sgn T y W X =或:()T y f W X =。
其中:0θω=-,()012,,,,Tn W ωωωω=…,,()121,,,Tn X x x x =…,。
选取不同的输出函数f ,y 的取值范围也不同。
若:()()()()1 0sgn 1 0x f x x x ≥⎧⎪=⎨-<⎪⎩,则{}1,1y ∈-或,若:()()()1 00 0x f x x >⎧⎪=⎨≤⎪⎩,则{}0,1y ∈ 某些算法要求f 可微,此时通常选用Sigmoid 函数:()()22th 11e xf x x -==-+,则()1,1y ∈-或:()11exf x -=+,则()0,1y ∈。
Sigmoid 函数的特性:(1)非线性,单调性;(2)无限次可微;(3)当权值很大时可近似阈值函数,当权值很小时可近似线性函数。
2.1.2 神经元的学习算法—Hebb 学习规则如果神经元i u 接收来自另一神经元j u 的输出,则当这两个神经元同时兴奋时,从j u 到i u 的权值ij ω就得到加强。
具体到前述的神经元模型,可以将Hebb 规则表现为如下的算法:i i yx ωη∆=式中i ω∆是对第i 个权值的修正量,η是控制学习速度的系数。
太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般取01η<≤。
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。
2.1.3 基本特征人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。
它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。
人工神经网络具有四个基本特征:图 3 典型的神经网络结构1.非线性:非线性关系是自然界的普遍特性。
大脑的智慧就是一种非线性现象。
人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性 关系。
具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。
2.非局限性:一个神经网络通常由多个神经元广泛连接而成。
一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。
通过单元之间的大量连接模拟大脑的非局限性。
联想记忆是非局限性的典型例子。
3.非常定性:人工神经网络具有自适应、自组织、自学习能力。
神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。
经常采用迭代过程描写动力系统的演化过程。
4.非凸性:一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。
例如能量函数,它的极值相应于系统比较稳定的状态。
非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。
人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。
网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。
输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。
神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。
人工神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。
它是涉及神经科学、思维科学、人工智能、计算机科学等多个领域的交叉学科。
人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。
2.2前馈神经网络2.2.1前馈神经网络(用于监督学习)网络的神经元接受前一级输入,并输出到下一级,无反馈。
节点分为两类:输入节点与计算单元。
每个计算单元可有任意个输入,但只有一个输出,而输出可藕合到任意多个其他节点的输入。
前馈网络通常分为不同的层,第i层的输入只与第1i 层的输出相联。
输入节点为第一层。
输入和输出节点由于可与外界相连,称为可见层,而其他的中间层则称为隐层。
图 4 前馈神经网络2.2.2 感知器也称双层神经网络、单计算层感知器。
1.输入层,也称为感知层。
每个节点接收一个输入信号,n 个输入信号构成输入列向量X 。
2.具有计算单元的输出层。
有m 个神经元节点,均有信息处理能力,m 个节点向外部输出信息,构成输出列向量O 。
3.两层之间的连接权值。
用权值列向量j ω表示,m 个权向量构成单层感知器的权值矩阵W 。
o 1 … o j … o mW 1 ○W j ○ W m ○○○ ○ ○x 1 x 2 … x i … x n图 5 感知器模型示意图感知器用于模式识别,输入X :样本的特征向量。
输出O :每个节点输出为:()()0sgn sgn sgn n T j j j ij i j i O net w x W X θ=⎛⎫=-== ⎪⎝⎭∑输出向量O 可以用来表示类别属性。
2.2.3 三层前馈网络及MLP三层前馈网络由输入层、中间层和输出层构成。
有两个计算层,也称三层感知器。
能够求解非线性问题。
三层或三层以上的前馈网络通常又被叫做多层感知器(Multi-Layer Perceptron .简称MLP)。
由三部分组成:1.一组感知单元组成输入层; 2.一层或多层计算节点的隐藏层; 3.一层计算节点的输出层。
MLP 的表示:输入节点数-第1隐层节点数-第2隐层节点数-…,-输出节点数。
如图 6,可表示为:4-4-3网络。
图 6 三层前馈网络人工神经元可实现与非门,任何逻辑函数都可以由与非门组成。
任何逻辑函数都可用一个三层(只有两层计算单元)的前馈网络实现。
当神经元的输出函数为Sigmoid函数时,上述结论可以推广到连续的非线性函数。
在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。
感知器,决策域:平面;双层计算单元,决策域:凸区域。
三层计算单元,决策域:任意形状。
三层网络可以应付任何问题,但对于较复杂的问题,更多层的网络有可能获得更精简的结果。
输入层:由特征向量构成,输入单元数是特征维数。
输出层:由类别构成,输出单元数目可以是类数。
隐层单元数:单元数目如何确定则缺乏有效的方法。
问题越复杂,需要的隐层单元越多;隐层单元越多越容易收敛。
但会增加计算量,而且会产生“过学习”效果,使对未出现过的样本的推广能力变差。
隐层单元数难以确定时,可以先选较多单元数,待学习完成后,再逐步删除一些隐层单元。
若性能明显变坏,则恢复原状,逐个测试各隐层单元的贡献,把不必要的删去。
2.2.4反向传播算法(BP算法)三层前馈网络的适用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐层不直接与外界连接,无法直接计算其误差。
BP算法(Back-Propogation)可解决这一问题。
主要思想:从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。
算法分为两个阶段:第一阶段(正向过程):输入信息从输入层经隐层逐层计算各单元的输出值;第二阶段(反向传播过程):输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值。
在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。
1.第一阶段(正向过程)图 7 某层某单元j O考虑如图所示的某层的某单元j O ,当输入样本某个样本时,则:j ij ij j inet w O O f net ==∑()若输出函数是Sigmoid 函数,则:jj j net O f net e-==+()112.第二阶段(反向传播过程)对于输出层,j O 是实际输出,与理想输出j y 的误差:j j jE y O =-∑()212 局部梯度:j jEnet δ∂=∂ 权值对误差的影响:ijj j ij j ij net E E O w net w δ∂∂∂==∂∂∂负梯度修正权值:ij j i w O ηδ∆=-,η:步长 修正算法:ij ij ij w k w k w k +=+∆()()()1实际计算时,为了加快收敛速度,一般要加上前次权值修正量,称为惯性量:ij j i ij w k O w k ηδα∆=-+∆-()()1,α:惯性系数。