资源描述:
《实验一基于人工神经网络的数码识别》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《人工智能导论》课程基于人工神经网络的数码识别班级:计1103学号:201107010330姓名:贾梦洁成绩评定:评阅老师:日期:实验报告正文一、实验目的基于祌经网络的数字识别系统二、实验内容通常实现手写体数字识别技术的方法有很多种,比如说Fisher线性判别方法,最小风险贝叶斯判别方法,朴素贝叶斯判别方法,神经网络方法等。这些方法都可以实现手写体数字的识别,本课题是采用后向传播(BP)祌经网络算法,先用MATLAB自带的函数im2bw把输入的数字阁像二值化处理,然后取得阁片数字部分的最大行列和最小行列,对阁片进
2、行实际大小的裁剪,为接下来的归一化做铺垫,取得图像的矩阵特征值,输入到设賈好的BP网络中,让网络学习,并保存网络,最后用sim函数仿真识别。运行程序后,训练好的神经网络对输入的数字进行识别。但是有时识别同一数字图八后所得出的结果会不相同,训练网络的时长,精确度也不相同。巾此我们付以得出祌经网络具有不稳定性和局限性,同时很多因素都能影响网络,比如加入噪声,所以神经网络仍需要人们进一步的研究。三、实验所用智能算法基本原理与流程学习过程中由信号的正向传播与误差的逆向传播两个过程组成.正向传播时,模式作用于输入层,经隐层
3、处理后,传入误差的逆向传播阶段,将输出误差按某种子形式,通过隐层向输入层逐层返回,并“分摊”给各层的所有单元,从而获得各层单元的参考误差或称误差信号,以作为修改各单元权值的依据.权值不断修改的过程,也就是网络学习过程.此过程一直进行到网络输出的误差准逐渐减少到可接受的程度或达到设定的学习次数为止.BP网络模型包括其输入输出模型,作川函数模型,误差计算模型和自学习模型.BP网络由输入层,输出层以及一个或多个隐层节点互连而成的一种多层网,这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输
4、出限制在-1和1之间.该系统使用自建样本库,应用BP祌经网络算法对样本进行训练识别。系统分为预处理、特征提取、分类器三部分。其中,预处理包括数据的读取,灰度转换,二值化,去噪,然后得到特征值,分类器的设计是整个系统的核心部分。具体程序流程图如下:U!系统构成与程序设计include"tvec.h"include"tmat.hH#include五、核心代码include"tvec.h"include"tmat.hH#includetypedeftmatCMat
5、rix;typedeftvecCVector;一个简单易用的矩阵类库使用简介:初始化矩阵:tmaxA(3,2);•虫成一个3行2列的零阵初始化矩阵:tmaxB(2z2,a);-生成一个2行2列的矩阵并利用数组a的前2X2个元素为其赋值。这里要求a至少要包含2X2个元素给矩阵元素赋值:A(l,2)=1.0;-将1.0赋给矩阵A的第1行、第2列取矩阵元素的值:f=A(2,2);-取出矩阵A第2行、第2列的值赋给f矩阵的加、减、乘:A=B+C;C=B*A;等等,可以像普通
6、数据类型那样直接进行运算符运算矩阵转置:transpose(A);求矩阵行列式:det(A);注意:必须是方阵矩阵求逆:inv(A);注意:必须是方阵得到矩阵的行数和列数:A.nrows();A.ncols();resize矩阵:A.resize(2,2);-取原来A矩阵的前2X2个元素来构造新尺、j*的A另外,tvec.h则包含了一个矢量(14量)类库,这里也简要介绍一下初始化向量:tvecA;-生成一个一维的向量。默认初始值为0初始化向量:tvecB(4);-生成一个4维的向量
7、初始化向量:tvecC(4,0.1);-生成一个4维的向量,并将每一维元素初始化为0.1初始化向量:tvecD(5,a);-生成一个5维的向量,并用数组a的前5个元素为其赋值初始化向量:tvecE(B);-由向量B来初始化向量E。相当于复制向量给向量的元素赋值:B(l)=2.0;-给B向量的第1维元素赋值为2.0提取向量元素的值:f=B(2);-将B向量的第2维元素提取出來,赋给变量f得到向量的维数:B.nsizef);【注意】:1.本类库的矩阵、向量运算采用值传递
8、2.本类库的矩阵和向量的第一个元素的起始丁标为1,不是0。这点尤其要注意。这和C语言中的数组不一样CVectorV[3];booltest(){V[0].resize(4);V[0](l)=l;doublek=V[O](l);cout«k;returntrue;}intmain(){doublea[】={l,2,3A5,6,7,8,9};doubleb[]={1.12,2