基于人工神经网络的数字卡片识别.doc

上传人:scccc 文档编号:11227935 上传时间:2021-07-15 格式:DOC 页数:9 大小:17.88KB
返回 下载 相关 举报
基于人工神经网络的数字卡片识别.doc_第1页
第1页 / 共9页
基于人工神经网络的数字卡片识别.doc_第2页
第2页 / 共9页
基于人工神经网络的数字卡片识别.doc_第3页
第3页 / 共9页
基于人工神经网络的数字卡片识别.doc_第4页
第4页 / 共9页
基于人工神经网络的数字卡片识别.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于人工神经网络的数字卡片识别.doc》由会员分享,可在线阅读,更多相关《基于人工神经网络的数字卡片识别.doc(9页珍藏版)》请在三一文库上搜索。

1、基于人工神经网络的数字卡片识别 一、作业要求 对小卡片上的数字进行奇偶数识别。数字卡为奇数时,输出1;数字卡为偶数时,输出0。要求使用matlab软件编程。 二、人工神经网络背景 人工神经网络(Artificial Neural Network,即ANN),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation funct

2、ion)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。 图1 人工神经元模型 在上图中,X1, X2,Xn是神经元的输入,即是来自前级n个神经元的轴突的信息:i是i神经元的阀值:Wil, Wi2, Win分别是i神经元对Xl , X2,Xn的权系数,也即突触的传递效率;Yi是i神经元的输出;f是激活函数,它决定i神经元受到输人X1, X2,,Xn的共同刺激达到阀值时以何种方式输出。上述的神经元模型,其数学

3、模型表达式: n?ui?wijxj?i j?1?y?f(u)i?i 其中,Ui又被称为诱导局部域。激活函数f通过诱导局部域Ui定义神经元的输出。 图2算法框图 三、代码及其作用: 1.【CardMatrix.m】此文件的作用是输出数字卡片的格式。 function Y = CardMatrix (num) switch num case 0 Y = 0 1 1 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 0 1 1 1 0; case 1 Y = 0 0 1 0 0; 0 1 1 0 0; 0 0 1 0 0; 0 0 1 0 0; 0 1 1 1 0; cas

4、e 2 Y = 0 1 1 1 0; 1 0 0 0 1; 0 0 1 1 0; 0 1 0 0 0; 1 1 1 1 1; case 3 Y = 0 1 1 1 0; 1 0 0 0 1; 0 0 1 1 1; 1 0 0 0 1; 0 1 1 1 0; case 4 Y = 0 0 1 1 0; 0 1 0 1 0; 1 0 0 1 0; 1 1 1 1 1; 0 0 0 1 0; case 5 Y = 0 1 1 1 1; 0 1 0 0 0; 0 1 1 1 0; 0 0 0 0 1; 0 1 1 1 0; case 6 Y = 0 0 1 1 0; 0 1 0 0 0; 1 1 1

5、1 1; 1 0 0 0 1; 0 1 1 1 0; case 7 Y = 1 1 1 1 1; 0 0 0 0 1; 0 0 0 1 0; 0 0 1 0 0; 0 0 1 0 0; case 8 Y = 0 1 1 1 0; 1 0 0 0 1; 0 1 1 1 0; 1 0 0 0 1; 0 1 1 1 0; case 9 Y = 0 1 1 1 0; 1 0 0 0 1; 0 1 1 1 1; 0 0 0 0 1; 0 1 1 1 0; otherwise Y = zeros(5); end 2.【UnitStep.m】此文件是一个单位阶跃函数,用来供给阈值函数调用。 function

6、 y = UnitStep (x) if x<=0 y = 0; else y = 1; end 3.【ThresholdFunc.m文件】此文件是就阈值函数,用来模拟单个神经元的人工神经网络。 function y = ThresholdFunc (X, W) X = double(X); v = 0; for i = 1:5 for j = 1:5 v = v + X(i,j) * W(i,j); end end y = UnitStep(v); 4.【NNstudy.m】此文件的作用是神经网络的学习,确定权值矩阵。当神经网络在不超过最大训练次数的情况下完成学习后,程序会自动退出,并

7、返回所经过的训练次数。 function W = NNstudy (n, t_max) W = ones(5) * 0.1; d = 0 1 0 1 0 1 0 1 0 1 ; for k = 1:t_max Flag_adj = 0; for num = 0:9 y = ThresholdFunc(CardMatrix(num), W); if y = d(num+1) Flag_adj = 1; card = double(CardMatrix(num); for i = 1:5 for j = 1:5 W(i,j) = W(i,j) + n * ( d(num+1) - y ) * ca

8、rd(i,j); end end end end if Flag_adj = 0 break; end end disp(sprintf(nTraining times: %d, k); 5.【NumberDiscriminate.m】此文件为主文件,用来区别奇偶数卡片。 function NumberDiscriminate (num, W) if num<0 | num >9 disp(Error! The input number should range from 1 to 9.); return; end y = ThresholdFunc(CardMatrix(num)

9、, W); disp( ); disp(Card Matrix:); disp(CardMatrix(num); if y=1 disp(OUTPUT = 1 (Odd); else disp(OUTPUT = 0 (Even); end disp( ); 四、结果展示: >> W = NNstudy(0.01, 10) Training times: 9 W = 0.1000 0.0400 -0.0600 -0.0600 0.0400 0.0000 0.1000 0.0500 -0.0400 0.0500 0.0300 -0.0200 -0.0100 -0.0200 0.0500

10、 0.0500 0.0300 -0.0100 -0.0100 -0.0600 >> NumberDiscriminate(0, W) Card Matrix: 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 OUTPUT = 0 (Even) >> NumberDiscriminate(1, W) 0.1000 0.0400 0.0800 0.0100 0.0300 Card Matrix: 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 OUTPUT = 1 (Od

11、d) >> NumberDiscriminate(2, W) Card Matrix: 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 OUTPUT = 0 (Even) >> NumberDiscriminate(3, W) Card Matrix: 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 OUTPUT = 1 (Odd) >> NumberDiscriminate(4, W) Card Matrix: 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 O

12、UTPUT = 0 (Even) >> NumberDiscriminate(5, W) 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 Card Matrix: 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 OUTPUT = 1 (Odd) >> NumberDiscriminate(6, W) Card Matrix: 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 OUTPUT = 0 (Even) >> NumberDiscriminate(7, W)

13、Card Matrix: 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 OUTPUT = 1 (Odd) >> NumberDiscriminate(8, W) Card Matrix: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 OUTPUT = 0 (Even) >> NumberDiscriminate(9, W) 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 Card Matrix: 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 OUTPUT = 1 (Odd)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1