模式识别实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式识别实验二
学院:电子与信息工程学院学号:**********
姓名:黄*
一、实验内容
1、Iris数据集以鸢尾花的特征作为数量来源。该数据集由3种不同类型的鸢尾花的50个样本数据构成。使用感知器算法对3种类型的鸢尾花两两分类。
2、产生以(0, 0),(1, 1),(1, 0),(0, 1)为中心的数据样本,其中(0,0)和(1,1)为一类,(1,0)和(0,1)为一类,使用BP算法对这两类数据点分类。
3、使用BP算法对Iris 数据集中的3类样本分类。
二、实验原理
1、感知器算法
感知器是两类分类的线性分类模型,其输入为样本的特征向量,输出为样本的类别,即通过样本的特征,就可以准确判断该样本属于哪一类。感知器能解决的问题首先要求特征空间是线性可分的,其次是两类问题。其基本模型如下图所示:
其中输入特征X=[x
0,x
1
,…,x
n-1
]T ,连接权值W=[w
,w
1
,…,w
n-1
]T, b为偏置值,为了
方便计算,在X和W中添加一维来表示偏置,X=[x
0,x
1
,…,x
n-1
,1]T,
W=[w
0,w
1
,…,w
n-1
,w
n
]T,感知器的输出y=W T X。
感知器学习算法是一种监督学习算法,训练感知器的过程中需要给出样本的特征值X和期望的输出值d,定义误差函数ε=(d -y)2,算法的优化目标是求得权值向量W,使得在所有样本上误差ε取得最小值。本次实验中使用梯度下降法来求取最优权值W。权值调整可表示为如下形式:
W(n+1) = W(n) –η(∂ε/∂W)
其中η为学习速率,∂ε/∂W为误差关于权值的变化率,∂ε/∂W值如下式:
∂ε/∂W = -2(d - y)X
感知器学习算法的步骤如下:
(1)随机初始化W(0)
(2)选取一个样本计算∂ε/∂W
(3)更新权值W(n+1) = W(n) –η(∂ε/∂W)
(4)检测是否达到优化目标,达到优化目标则学习完成,否则继续步骤(2)
2、BP算法
由于感知器算法输入到输出为线性映射,所以只能较好的解决线性可分的分
类问题。而非线性映射能较好的解决非线性可分问题,实验中以此为基础使用BP 算法对数据进行分类。
W ij
L
神经网络的基本结构如上图所示,网络输入X=[x 0, x 1,…,x n ]T ,输出Y=[y 0,y 1,…,y m ]T 。W ij 为第L 层第i 个神经元到第L-1层神经元的连接权值,L 层第i 个神经元的输入用I pi 表示,输出用O pi 表示,输入到输出的映射使用非线性函数f(x)=1/(1+exp(-x))。L 层第i 个神经元的输入可表示为∑=j
WijOpj Ipi ,其中Opj 为第L-1层的输出。
BP 算法是监督学习算法,训练网络时输入特征值和期望输出d ,其误差可表示为E=(d -y)2,BP 算法使用梯度下降法使得样本集在网络上的平均误差达到最小值。网络权值调整可表示为:
W (l)ij (k+1) = W (l)ij (k) + △p W (l)ij
其中△p W (l)ij = -α(∂E p /∂p W (l)ij ),α为算法的学习速率,(∂E p /∂p W (l)ij )为误差对权值的变化率。输出层和隐含层的∂E p /∂p W (l)ij 变化率计算方式是有差别的。 (1)输出层∂E p /∂p W (l)ij
∂E p /∂p W (l)ij = (∂E p /∂I (l)i )*( ∂I (l)i /∂W (l)ij ) ∂I (l)i /∂W (l)ij = O (l-1)j
∂E p /∂I (l)I = (∂E p /∂O (l)i )*( ∂O (l)i /∂I (l)i ) ∂O (l)i /∂I (l)I = O (l)i *(1- O (l)i ) ∂E p / ∂O (l)I = -2(d i - O (l)I ) 得到输出层∂E p /∂p W (l)ij
∂E p /∂p W (l)ij = -2(d i – O (l)i )O (l)i (1- O (l)i )O (l-1)
j (2)隐含层∂E p /∂p W (l)ij
∂E p /∂p W (l)ij = (∂E p /∂I (l)i )*( ∂I (l)i /∂W (l)
ij ) ∂I (l)i /∂W (l)ij = O (l-1)j
∂E p /∂I (l)I = (∂E p /∂O (l)i )*( ∂O (l)i /∂I (l)
i ) ∂O (l)i /∂I (l)I = O (l)i *(1- O (l)
i )
∂E p /∂O (l)
I = ∑∂∂∂∂++m
i l m l m l p O I I E )/)(/()()1()1(
得到隐含层∂E p /∂p W (l)ij
∂E p /∂p W
(l)ij
=∑∂∂∂∂++m
i l m l m l p O I I E )/)(/()()1()1( O (l)i (1- O (l)i ) O (l-1)j
BP 算法的执行步骤如下: (1)初始化网络权值
(2)输入训练样本对,计算各层输出 (3)计算网络各层误差 (4)调整各层权值
(5)检测网络是否达到优化目标,若满足则训练结束,否则重复执行步骤(2)
三、实验过程
(1)使用感知器算法对Iris 数据集两两分类
输入特征向量X=[x 0, x 1, x 2, x 3, 1]T ,权值W=[w 0, w 1, w 2, w 3, b]T ,首先从样本集中选取不同数量的样本训练感知器,在所有样本集上检测分类正确率。首先对第一类和第二类分类,其中一次运行结果如下表所示:
第一类和第三类分类,其中一次运行结果如下表所示:
第二类和第三类分类,其中一次运行结果如下表所示: