摘 要:作为模式识别的感知器神经网络,构建网络模型需要一个很重要的权值参数,可以通过手工计算,也可以通过MATLAB神经网络工具箱进行训练仿真获得,使用两种权值建立分类器网络模型,对比测试模式识别结果,不同权值模型对于测试样本识别率是有差异的,为了提高模型的泛化,构建网络模型时需要测试选用最优权值。
关键词:模式识别;神经网络;感知器;权值
中图分类号: TP183 文献标志码: A 文章编码:2095-2163(2015)03-
Perceptron Network Weights Calculation and MATLAB Simulation in Pattern Recognition
ZHANG Guangjian
(1 Department of Information Engineering, Sichuan College of Architectural Technology,Deyang Sichuan 618000, China;2 Institute of Intelligent Computing, Sichuan College of Architectural Technology, Deyang Sichuan 618000, China)
Abstract:As the perceptron neural network pattern recognition, constructing the network model takes a very important parameters, which can be used by manual calculation, and can also carry out the training simulation obtained by MATLAB neural network toolbox. The paper uses two weights for building the classifier network model, and compares test results of the pattern recognition model.It is known that for the recognition rate of the samples tested, the weights are different,and in order to improve the generalization of the model, the construction of the network model need to test selects the optimal weights.
Keywords:Pattern Recognition; Neural Network; Perceptron; Weights
0 引 言
人工神经网络[1](artificial neural network,ANN),简称神经网络(neural network,NN),是一种对人脑功能实行模拟的简化模型结构,是一种功能型的数学模型(计算模型),可完成科学计算,并具有强大的处理问题能力。神经网络是由大量的人工神经元相互连接而成的信息处理系统,能够基于外界信息的引发改变内部结构,因而属于一种自适应系统。现代神经网络则是一种非线性统计性数据建模工具,常用来对输入和输出间的复杂关系进行建模,或用来探索数据的关联模式。
1943年,美国神经生理学家McCulloch和Pitts提出的第一个神经网络模型M-P模型,开创了人工智能的研究工作,奠定了神经网络的发展基础。其中的感知器(Perceptron)则是由美国计算机科学家罗森布拉特(Frank Rosenblatt)于1957年提出的。 本文由wWW. DyLw.NeT提供,第一 论 文 网专业写作教育教学论文和毕业论文以及发表论文服务,欢迎光临DyLW.neT
具体来说,神经网络是一种运算模型[2],是由大量的节点(或称“神经元”,或“单元”)及其间的相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接均表示对于通过该连接信号的加权值,称之为权重(weight),也就相当于人工神经网络的记忆。此外的网络输出则是依据网络的连接方式、权重值(权值)和激励函数的不同而各不相同。综合论述可得,网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。因此,为解决模式识别问题创建的网络模型,若选用最优权值,就会极大地提高模式识别率。
1 感知器及学习算法
神经网络中,感知器神经网络[3]是一种典型的分层结构,信息从输入层进入网络后,将逐层向前传递至输出层。单层感知器是一个具有一层神经元、采用阈值激活函数的前向网络。通过对网络权值的训练,可以使感知器对一组输入矢量的响应完成结果为0或1的目标输出,从而实现对输入矢量分类的目的。没有反馈或竞争的简单神经元感知器模型如图1 所示。
图1 一个单一神经元的感知器模型
Fig.1 A single neuron perceptron model
在感知器学习算法[4]中,设输入向量 ,相应的权值向量 ,对一个输入模式 的网络输入 为
(1)
根据阈值函数产生一个输出 为:
(2)
感知器学习中,设t为目标输出,使用Hebbian学习,其误差公式为:
(3)
对任何新权值,具体计算公式为:
(4)
对于误差E的三种可能情况,新权值的调整公式为:
(5)
在公式(5)中, 是新的调整权值, 是前次或者初始权值; 是输入向量; 是学习率,且是一个常数, 。精准快捷地确定 值,将直接影响对后期的网络学习训练时间。 2 手工计算权值
样本集如表1所示。其中 x1,x2为两个输入,t为期望目标输出。感知器分类器的任务是将表1所示的二维模式进行分类。
表1 分类数据
Tab.1 Classification of samples
0.3,0.7 1
-0.6,0.3 0
-0.1,-0.8 0
0.1,-0.45 1
样本点如图2所示。
图2 输入向量与期望响应样本图
Fig.2 Input vector and the desired response sample figure
根据文献[2]的推理,假定 ,其中, 是学习率, 为网络初始权值。权值调整过程具体如下。
(0.3)=0.95
=-0.15
调整后的权值,继续计算第二组样本数据 。
如果分类正确,继续使用该组权值计算下一组数据;分类错误,即需应用公式(5)的规则进行权值调整,直到最终获得一组权值w=[1.05 0.025],完成对全部样本进行的正确分类。为此,根据权值和样本对感知器网络进行分类训练,其相应的分类结果如图3所示。
图3样本分类图
Fig.3 Sample classification map
3 MATLAB训练仿真
MATLAB神经网络工具箱(Neural Network Tool)[5],为神经网络提供了一种高效、集成的仿真手段,通过该工具箱,可以对神经网络进行设计、训练、可视化以及仿真。
使用MATLAB R2013a 的神经网络工具箱函数,设置p为输入向量,t为期望目标向量。
p= [0.3 -0.6 -0.1 0.1;
0.7 0.3 -0.8 -0.45];
t= [1 0 0 1];
net =newp(minmax(p),1);
网络传递函数指定为硬限值函数HARDLIM,
学习函数指定为LEARNP。创建如图4所示的感知器神经网络模型。
图4 生成的感知器网络模型
Fig.4 Perceptron network model generation
使用命令net=train(net,p,t)进行网络训练,使用sim(net,p)进行仿真,得到输出向量为[1 0 0 1],完全匹配期望目标向量t ,训练结果达到零误差,网络权值w=[1.8 0],偏值为b=0。使用plotpc(net.iw{1,1},net.b{1}) 命令在样本中绘制分类线,如图5所示,从图中可以看出分类线能对输入样本完全分类。
图5 训练后的网络对输入样本的分类
Fig.5 Classification of the input sample after network training
4 网络测试[6]
通过样本训练得到的网络,但是测试样本的准确率却未必会高。一个性能良好的网络应该具有优秀的泛化能力。首先输入样本数据进行训练,通过修正权值来减小误差得到拟合程度很高的网络模型,而后的网络测试则是用另外的样本数据去测试网络的性能。
对于两种权值建立的网络模型,通过加入测试样本数据进行分类测试,测试样本为:
p1=[ 0.4 -0.5 0 0.2 ; 0.8 0.4 -0.7 -0.35 ]
使用MATLAB的sim(net,P1) 函数完成对输入样本的测试。
对于手工计算获得的权值W=[1.05,0.025],加入测试样本集后,分类结果如图6所示。
图6测试样本分类(手工计算)
Fig.6 Test sample classification (manual calculation)
对于使用MATLAB计算机仿真训练获得的权值W=[1.8 0] ,加入测试样本集,分类结果如图7所示。
图7测试样本分类(MATLAB)
Fig.7 The test sample classification (MATLAB)
对比图6和图7,可以清楚看到根据两种方式获得的权值,建立两种感知器神经网络模型,均能对样本进行分类,但却同时可知图6的网络模型可对测试样本集进行更见成效的分类。
5 结束语 本文由wWW. DyLw.NeT提供,第一 论 文 网专业写作教育教学论文和毕业论文以及发表论文服务,欢迎光临DyLW.neT
感知器神经网络只能解决线性可分的模式分类问题,在应用上有一定的局限性,但对于线性可分问题建立的模型,总能通过训练,在有限的循环次数内找到网络权值,使网络达到期望的输出,进而完成模式分类。通过对同一模型的手工计算和MATLAB训练,得出的网络权值并不相同,但都可以对网络进行分类,只是对于使用MATLAB进行的计算机训练仿真,所获取的权值与计算精度、连同使用的学习函数及传递函数方面将会有一定的影响。而且,选取不同权值建立的模型,在泛化能力上也将存在一定差异。作为感知器分类器的模型建立,需要反复比对找到最优的权值,这样建立的模型在泛化能力上才会具有更好的适应性。
参考文献:
[1] (美)Martin T. Hagan等,著.神经网络设计[M]. 戴葵等,译.北京:机械工业出版社,2002.
[2] Domany, Eytan. Models of Neural Networks III:Association, Generalization, and Representation[M].New York: USA Springer press,2013.
[3] 张昭昭,乔俊飞,著.模块化神经网络结构分析与设计[M].沈阳:辽宁科学技术出版社.2014.