当前位置:文档之家› 神经网络(BP网)—鸢尾花分类问题

神经网络(BP网)—鸢尾花分类问题

3/20
感知器网络
� 感知器的结构
感知器网络简化结构图
r
加权输入: ni = ∑ wij p j + bi
j =1
输出:
2013-4-24
ai = f ( ni )
4/20
感知器网络
� 感知器的学习
——有教师的学习
有教师学习算法将一组训练集 送入网络,根据网络的实际 输出与期望输出间的差别来调整连接权。 有导师学习算法的主要步骤包括: 1) 从样本集合中取一个样本(Ai,Bi); 2) 计算网络的实际输出O; 3) 求D=Bi-O; 4) 根据D调整权值W和阈值b; 5) 对每个样本重复上述过程,直到对整个样本集来说,误 差不超过规定范围。
用BP网实现鸢尾花分类问题
%读取训练数据 [f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150); %特征值归一化 [input,PS] = mapminmax( [f1 , f2 , f3 , f4 ]') ; %构造输出矩阵 s = length(class) ; output = zeros( s , 3 ) ; for i = 1 : s output( i , class( i ) ) = 1 ; end %创建神经网络 net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } , 'traingdx' ) ; %设置训练参数 net.trainparam.show = 50 ;% 显示中间结果的周期 net.trainparam.epochs = 500 ;%最大迭代次数 net.trainparam.goal = 0.01 ; %神经网络训练的目标误差 net.trainParam.lr = 0.01 ; %学习率
华南师范大学计算机学院 – 神经网络
鸢尾花分类BP网实现
作者:杨劲松
2013-4-24
鸢尾花分类BP网实现
� 问题描述 � 感知器网络 � BP网 � 用BP网实现鸢尾花分类问题
2013-4-24
2/20
问题描述
� 鸢尾花分类问题
有一批Iris花,已知这批Iris花可分为3个品种,现 需要对其进行分类。不同品种的Iris花的花萼长度、花 萼宽度、花瓣长度、花瓣宽度会有差异。
—每层的神经元数 —每层使用的转移函数 —使用的训练函数
2013-4-24
10/20
用BP网实现鸢尾花分类问题
� matlab提供newff函数用于创建一个 BP网络
每层使用转移函数 每组输入向量的最大和最小值
net = newff(PR,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
每层神经元的个数 训练函数
BP网
� BP网——反向传播网络( back propagation network )
—单层感知器网络只有一层神经元,简单,处理线性问题
—BP网络有多层神经元,复杂,非线性问题 � BP网结构
x1 x2 … xn 输入层
2013-4-24
W(1)
W(2)
W(3)
W(L)
o1 o2 … … … 隐藏层 … … 输出层
2013-4-24 11/20
用BP网实现鸢尾花分类问题
� 训练样本
—读取训练数据
[f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150);
—训练神经网络
net = train( net, input , output' ) ;
2013-4-24
12/20
用BP网实现鸢尾花分类问题
� 检验网络
—读取测试数据
[t1 t2 t3 t4 c] = textread('testData.txt' , '%f%f%f%f%f',150);
—模拟神经网络
Y = sim( n3-4-24
13/20
2013-4-24
14/20
用BP网实现鸢尾花分类问题
%开始训练 net = train( net, input , output' ) ; %读取测试数据 [t1 t2 t3 t4 c] = textread('testData.txt' , '%f%f%f%f%f',150); %测试数据归一化 testInput = mapminmax ( [t1,t2,t3,t4]') ; %仿真 Y = sim( net , testInput ); %统计识别正确率 [s1 , s2] = size( Y ) ; hitNum = 0 ; for i = 1 : s2 [m , Index] = max( Y( : , i ) ) ; if( Index == c(i) ) hitNum = hitNum + 1 ; end end sprintf(' 识别率是 %3.3f%%',100 * hitNum / s2 )
� Fisher's Iris Data Sepal
length 5.1 7.0 6.3
2013-4-24
Sepal width Petal length Petal width Species 3.5 1.4 0.2 setosa 3.2 4.7 1.4 versicolor 3.3 6.0 2.5 virginica
2013-4-24 5/20
感知器网络
� 感知器的学习
——有教师的学习(δ规则)
目标输出
e =t−a
——训练目的:t-> a
实际输出
• 当e=0时,得到最优网络权值和阈值 • 当e>0时,实际输出小于目标输出,应增加网络权值和阈值 • 当e<0时,实际输出大于目标输出,应减少网络权值和阈值
2013-4-24 6/20
示例: • BLF - 权值和阈值学习函数,默认为'learngdm'. net minmax(input) , [10 3] , { 'logsig' 'purelin' } , • = PFnewff( - 网络性能函数,默认为 'mse'. 'traingdx' ); • IPF - 行输入处理单元矩阵 • OPF - 行输出处理单元矩阵 • DDF - 数据分割函数,默认为'dividerand';
17/20
用BP网实现鸢尾花分类问题 � 训练后的测试样本输出(隐层:100,输出层:3)
2013-4-24
输出图示 (识别率是 94.667%)
18/20
用BP网实现鸢尾花分类问题
� 一个隐层(隐层:100,输出 层:3) � 两个隐层(隐层:20,20, 输出层:3)
输出图示 (识别率是 93.333%)
2013-4-24
15/20
用BP网实现鸢尾花分类问题 � 网络未经训练时的输出(隐层:100,输出层:3)
2013-4-24
输出图示 (识别率是 8.000%)
16/20
用BP网实现鸢尾花分类问题 � 训练后的训练样本输出(隐层:100,输出层:3)
2013-4-24
输出图示 (识别率是 100.000%)
2013-4-24
输出图示 (识别率是 96.000%)
19/20
用BP网实现鸢尾花分类问题
� 一个隐层(隐层:100,输出 层:3) � 两个隐层(隐层:20,20, 输出层:3)
输出图示 (识别率是 96.000%)
2013-4-24
输出图示 (识别率是 96.000%)
20/20
7/20
… om
BP网
� BP网结构
2013-4-24
8/20
用BP网实现鸢尾花分类问题
� 要做的工作: a) 建立一个BP网络 b) 使用样本训练这个网络 c) 使用新的数据集模拟这个网络
2013-4-24
9/20
用BP网实现鸢尾花分类问题
� 要做的工作: a) 建立一个 BP网络 —网络层数
相关主题