模式识别实验二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ,首先从样本集中选取不同数量的样本训练感知器,在所有样本集上检测分类正确率。首先对第一类和第二类分类,其中一次运行结果如下表所示:

第一类和第三类分类,其中一次运行结果如下表所示:

第二类和第三类分类,其中一次运行结果如下表所示:

相关文档
最新文档