Matlab实现BP网络识别字母
2017-04-11 11:11
316 查看
![](https://images2015.cnblogs.com/blog/1135245/201704/1135245-20170411111008438-182743013.jpg)
训练样本空间
每个样本使用5×5的二值矩阵表征一个字母。一共10个字母类型,分别是N,I,L,H,T,C,E,F,Z,V。每个字母9个样本。共90个。N1=[1,0,0,0,1; 1,0,0,0,1; 1,0,1,0,1; 1,0,0,1,1; 1,0,0,0,1]; N2=[1,0,0,0,1; 1,1,0,0,1; 1,0,1,0,0; 1,0,0,1,1; 1,0,0,0,1]; · · · · · · N9=[1,0,0,0,1; 1,1,0,0,1; 1,0,1,1,1; 1,0,0,1,1; 1,0,0,0,1]; I1=[0,0,1,1,0; 0,0,1,0,0; 0,0,1,0,0; 0,0,1,0,0; 0,1,1,1,0]; I2=[0,1,1,1,0; 0,0,1,0,0; 0,0,0,0,0; 0,0,1,0,0; 0,1,1,1,0]; · · · · · · V8=[1,0,0,0,1; 1,0,0,0,0; 0,1,0,1,0; 0,1,0,1,0; 0,0,1,0,0]; V9=[1,0,1,0,1; 1,0,0,0,1; 0,1,0,1,0; 0,1,0,1,0; 0,0,1,0,0]; %训练集 P=[N1(1:end);N2(1:end);N3(1:end); N4(1:end);N5(1:end);N6(1:end); N7(1:end);N8(1:end);N9(1:end); I1(1:end);I2(1:end);I3(1:end); I4(1:end);I5(1:end);I6(1:end); I7(1:end);I8(1:end);I9(1:end); L1(1:end);L2(1:end);L3(1:end); L4(1:end);L5(1:end);L6(1:end); L7(1:end);L8(1:end);L9(1:end); H1(1:end);H2(1:end);H3(1:end); H4(1:end);H5(1:end);H6(1:end); H7(1:end);H8(1:end);H9(1:end); T1(1:end);T2(1:end);T3(1:end); T4(1:end);T5(1:end);T6(1:end); T7(1:end);T8(1:end);T9(1:end); C1(1:end);C2(1:end);C3(1:end); C4(1:end);C5(1:end);C6(1:end); C7(1:end);C8(1:end);C9(1:end); E1(1:end);E2(1:end);E3(1:end); E4(1:end);E5(1:end);E6(1:end); E7(1:end);E8(1:end);E9(1:end); F1(1:end);F2(1:end);F3(1:end); F4(1:end);F5(1:end);F6(1:end); F7(1:end);F8(1:end);F9(1:end); Z1(1:end);Z2(1:end);Z3(1:end); Z4(1:end);Z5(1:end);Z6(1:end); Z7(1:end);Z8(1:end);Z9(1:end); V1(1:end);V2(1:end);V3(1:end); V4(1:end);V5(1:end);V6(1:end); V7(1:end);V8(1:end);V9(1:end);]';%注意转置
期望输出
%期望输出,每一列表示一个样本的期望输出。 T=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ; 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 ; ];
测试样本空间
%测试样本空间:为10个字母 N0=[1,0,0,0,1; 1,1,0,0,1; 1,0,1,0,1; 1,0,0,1,1; 1,0,0,0,1]; I0=[0,1,1,1,0; 0,0,1,0,0; 0,0,1,0,0; 0,0,1,0,0; 0,1,1,1,0]; L0=[1,0,0,0,0; 1,0,0,0,0; 1,0,0,0,0; 1,0,0,0,0; 1,1,1,1,1]; H0=[1,0,0,0,1; 1,0,0,0,1; 1,1,1,1,1; 1,0,0,0,1; 1,0,0,0,1]; T0=[1,1,1,1,1; 0,0,1,0,0; 0,0,1,0,0; 0,0,1,0,0; 0,0,1,0,0]; C0=[1,1,1,1,1; 1,0,0,0,0; 1,0,0,0,0; 1,0,0,0,0; 1,1,1,1,1]; E0=[1,1,1,1,1; 1,0,0,0,0; 1,1,1,1,0; 1,0,0,0,0; 1,1,1,1,1]; F0=[1,1,1,1,0; 1,0,0,0,0; 1,1,1,0,0; 1,0,0,0,0; 1,0,0,0,0]; Z0=[1,1,1,1,1; 0,0,0,1,0; 0,0,1,0,0; 0,1,0,0,0; 1,1,1,1,1]; V0=[1,0,0,0,1; 1,0,0,0,1; 0,1,0,1,0; 0,1,0,1,0; 0,0,1,0,0]; %测试集 X=[N0(1:end);I0(1:end);L0(1:end);H0(1:end);T0(1:end); C0(1:end);E0(1:end);F0(1:end);Z0(1:end);V0(1:end);]';%注意转置
参数设置与训练网络
%参数设置函数 net=newff(P,T,11); net.trainParam.epochs=50;%最大迭代次数 net.trainParam.goal=0.000001;%计算期望与实际的差,当小于这个值时,迭代停止 net.trainParam.lr=0.2;%学习速率 %用训练样本集、期望输出来训练我们设置的网络 net=train(net,P,T);
测试阶段
%使用sim将测试样本集X进行测试,% sim函数用于仿真一个神经网络,输出结果返回到C C=sim(net,X);
输出结果
在命令窗口用:C(回车换行)
即可查看输出的分类结果:
>> C C = 0.0844 0.0347 1.0807 0.9751 0.8557 0.9753 0.9901 0.8641 1.0358 1.0402 1.1358 1.0816 0.0260 0.0904 -0.0034 -0.0285 0.9873 1.0561 1.0743 0.9758 0.6802 1.0481 -0.0390 0.0107 1.0695 1.0152 0.0134 0.0654 0.9796 0.9731 -0.2012 0.7774 0.0502 0.9262 0.0497 0.9352 -0.0690 0.7618 -0.0061 1.1026
相关文章推荐
- 具有模糊字母识别能力的bp网络实现
- Matlab实现单层感知机网络识别字母
- 用BP网络算法实现对含噪声0到9数字的识别
- 神经网络学习(六)MNIST手写字识别 --- Matlab实现
- 用matlab实现神经网络识别数字
- 神经网络 手写识别例子 matlab实现
- 基于BP人工神经网络的数字字符识别及MATLAB实现
- BP(Back Propagation)神经网络及Matlab矩阵实现
- 三层 BP 神经网络 matlab 实现
- 神经网络学习(四)反向(BP)传播算法(2)-Matlab实现
- 用BP网络算法实现对含噪声0到9数字的识别
- BP 神经网络的 MATLAB 实现步骤
- RBF神经网络的matlab简单实现
- 最简单的三层神经网络Matlab实现
- 第2章 单层前向网络及LMS学习算法仿真实例 Matlab 实现
- 基于K-L变换的人脸识别的MATLAB实现
- 基于BP网络的语言识别代码
- BP网络 C++实现
- 分享:matlab实现车牌字符分割与识别
- 样本概率密度(pdf)估计的Matlab实现%用来画网络延时数据