文档介绍:
理解线性分类器的分类原理。
掌握感知器算法,利用它对输入的数据进行分类。
理解BP算法,使用BP算法对输入数据进行分类。
,产生线性可分的模式判别函))2
x2kk
k=1
权系数的调整:
J
wjw—n—
kjkjQw
kj
QJ
wjw—n,
jijidwdw
jiji
dJ
=0y,dwkj
kj
dJ
=0x,
ji
0=—(t—z)f(net)
kkkk
0j=八叫疋0kwkj
k=1
BP算法描述:
对于给定的样本集D={(x,t)},初始化网络结构d*nH*c。初始化权系数w,学****效率耳、阈值9。
随机从D中取出一个样本(x,t),根据该样本更新权系数w:
kj
kj'dw
kj
J
JW—n
ji
jidw
ji
计算AJ=J(w)—J(w),如果AJ<0结束训练,并认为此时的w为最
pre
优。否则转第2步继续进行循环
三.实验内容
本实验利用感知器算法的原理,随机抽取两类的部分数据,然后,用这两类的其他数据来验证分类是否正确。这里是利用感知器两两分类的原理。实验可得结果如下表。其中r1是输入x1所得的分类正确率,r2是输入x2所得的分类正确率,r3是输入x3所得的分类正确率。
当训练样本数m取20时,xl和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=[01—1],x2=[10—1],x3=[00—1],x4=[l1—1]将这四个样本分成两类。其中,xl和x2是属于w1类,x3和x4属于w2类。第一层(输入层)采用三个神经元,两个输入神经元和一个恒等于1的神经元,第二层(输出层)设置一个神经元,,。这里采用负梯度法调整参数。在本实验中,我们记录训练次数和做不同次实验的分类正确率。取实验次数为1,训练次数为3686,分类正确率为100%;取实验次数为25,最后一次训练次数为2970,分类正确率100%;取实验次数为50,最后一次训练次数2942,分类正确率100%。由实验可以看出,分别做1次、25次和50次实验,所得到的分类正确率都是100%,所以说利用前向两层神经网络来完成异或分类问题可以得到很好的分类效果。
(2)BP算法实验
采用前向两层神经网络来实现x1、x2和x3两两之间的分类。分别选取不同个数(m)的样本进行训练,得到相应的权系数,然后再将全部数据代入进行分类,记录训练次数和分类正确率。可得如下结果:
训练样本数
输入不同组数据后的训练次数和分类正确率
x1和x2
x1和x3
x2和x3
正确率
迭代系数
正确率
迭代次数
正确率
迭代次数
m=5
r1=100%
r2=100%
1334
r1=100%
r3=100%
1336
r2=92%
r3=86%
4452
m=15
r1=100%
r2=100%
915
r1=100%
r3=100%
1276
r2=92%
r3=98%
2213
m=25
r1=100%
r2=100%
989
r1=100%
r3=100%
1131
r2=92%
r3=96%
1970
m=35
r1=100%
r2=100%
961
r1=100%
r3=100%
1044
r2=92%
r3=98%
1410
m=45
r1=100%
r2=100%
867
r1=100%
r3=100%
1039
r2=90%
r3=100%
2006
x1和x2之间分别选取训练样本数为5和45时的分类效果:
x1和x3之间分别选取训练样本数为5和45时的分类效果:
x2和x3之间分别选取训练样本数为5和45时的分类效果:
■■-■---————t------r-------r------—
'■
0□—-j■■■■!-1-j_____
■IIIIIIII