感知器算法实验--1

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验目的

1. 理解线性分类器的分类原理。

2. 掌握感知器算法,利用它对输入的数据进行分类。

3. 理解BP 算法,使用BP 算法对输入数据进行分类。 二. 实验原理 1.感知器算法

感知器算法是通过训练模式的迭代和学习算法,产生线性可分的模式判别函数。感知器算法就是通过对训练模式样本集的“学习”得出判别函数的系数解。在本次实验中,我们主要是采用硬限幅函数进行分类。

感知器的训练算法如下:

设输入矢量{x 1,x 2,…,x n }其中每一个模式类别已知,它们分别属于ω1类和ω2类。 (1)置步数k=1,令增量ρ为某正的常数,分别赋给初始增广权矢量w(1)的各分量较小的任意值。

(2)输入训练模式x k ,计算判别函数值w T (k) x k 。 (3)调整增广权矢量,规则是:

a.如果x k ∈ω1和w T (k) x k ≤0,则w(k+1)=w(k)+ ρx k ;

b.如果x k ∈ω2和w T (k) x k ≥0,则w(k+1)=w(k)-ρx k ;

c.如果x k ∈ω1和w T (k) x k >0,或x k ∈ω2和w T (k) x k <0,则w(k+1)=w(k)

(4)如果k

如果训练模式已经符号规化,即x k ∈ω2已经乘以-1(包括增广分量1),则校正权矢量的规则可统一为

()

(1)()k w k w k w k x ρ⎧+=⎨+⎩

如果w T (k) x k >0分类正确,则为第一个表达式,如果w T (k) x k ≤0错误分类则为第二个表达式。

在全部模式训练完一轮之后只要还有模式分类错误,则需要进行第二轮迭代,再用全部训练模式训练一次,建立新的权矢量。如果对训练模式还有错分,则进行第三轮迭代依此类推,直至对所有驯良模式均能正确分类为止,此时的w 即为所求的权矢量。

2.BP 算法

BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、隐层、输出层组成的阶层型神经网络,隐层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight )。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。 算法描述: 输入层:

单元i 的输入:i

x ;

单元数量:d ; 单元i 的输出:i

x ;

单元i 的激活函数:线性函数; 隐层: 单元j 的输入:netj ; 单元数量:nH ;

01

j d

t j ji i j i net x x

ωωω==+=∑ 010(,,....,),1t d x x x x x ==

01(,,....,)t j j j jd ωωωω=

单元j 的输出:

()j j y f net =;

单元j 的激活函数:非线性函数; 输出层: 单元k 的输入: k net ;

单元数量:c ;

01

H

n t k kj j k k j net y y

ωωω==+=∑

010(,,....,),1H t n y y y y y ==

01(,,....,)H

t k k k kn ωωωω=

单元k 的输出:()k

k z

f net =

单元k 的激活函数:非线性函数

两层神经网络图如下:

分析:

(1)给定隐层单元及输出层单元的激活函数,一个神经网络就可以实现一个对输入特征向量x 的非线性映射。因此,神经网络本质上是一个非线性函数。 (2)给定隐层单元及输出层单元的激活函数,该非线性函数所对应的映射关系完全由权系数决定。不同的权系数对应不同的非线性映射。 (3)神经网络学习的目的,就是根据已知的训练样本,确定神经网络的权系数。这一过程称为训练过程。在训练过程结束后,对于新样本x ,根据神经网络的输出进行判决。

(4)对于C 类分类问题,神经网络的输出为(),1,...,k

z

x k c =。神经网络的判决

规则为:如果()(),1,...,,k l

z x z x l c l k ≥=≠,则判x 属于wk 。

(5)令()(),1,...,k k g x z x k c ==,可以看出神经网络实际上实现了C 个非线性的鉴别函数,并根据鉴别函数的取值进行分类。

(6)神经网络的训练目标:调整权系数w ,即所有的wkj 及wij ,使得对于训练集中的每一个训练样本(x,t),网络的输出尽可能满足: 11()()......()c c z x t z x t

z x t ⎛⎫⎛⎫ ⎪ ⎪=== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭

(7)优化准则:对于样本集D ,使下述误差函数取得最小值: ()()

x x D

J J ωω∈=∑

()

2

1

1()()2c x k k k J t z x ω==-∑

权系数的调整:

kj kj kj

J ωωη

ω∂←-∂

()'()k j k k k k kj

J

y t z f net δδω∂==--∂,

1

()c

ji ji j i j j k kj

k ji ji J J

x f net ωωηδδδωωω=∂∂'←-==∂∂∑,, BP 算法描述:

对于给定的样本集D={(x,t)},初始化网络结构d*nH*c 。初始化权系数w ,学习效率η、阈值θ。

随机从D 中取出一个样本(x,t),根据该样本更新权系数w :

kj kj kj

J ωωη

ω∂←-∂

ji ji ji

J ωωη

ω∂←-∂

计算

()()pre J J J ωω∆=-,如果J θ∆<结束训练,并认为此时的w 为最优。

否则转第2步继续进行循环。

三.实验容 1. 感知器算法实验

本实验利用感知器算法的原理,随机抽取两类的部分数据,然后,用这两类的其他数据来验证分类是否正确。这里是利用感知器两两分类的原理。实验可得结果如下表。其中r1是输入x1所得的分类正确率,r2是输入x2所得的分类正确率,r3是输入x3所得的分类正确率。

当训练样本数m 取20时,x1和x2数据分类正确率都是100%,x1和x3数据分类正确率是100%,而x2和x3的分类正确率分别为86% 和93%。

当训练样本数m 取30时,x1和x2数据分类正确率都是100%,x1和x3数据分类正确率是100%,而x2和x3的分类正确率分别为92% 和88%。

由实验结果可以看出,x1和x2、x1和x3之间是线性可分的,而x2和x3则达到了与预设的迭代次数的上限,且分类效果不明显。说明感知器算法对于现行可分的数据有比较好的性能与速度,但对于线性不可分的数据则效果较差。 2.BP 算法实验

(1)异或问题实验

利用前向两层神经网络来完成异或分类,输入的样本为x1=[0 1 -1],x2=[1 0 -1],

相关文档
最新文档