您好,欢迎来到爱站旅游。
搜索
您的当前位置:首页基于人工神经网络的数字卡片识别

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

来源:爱站旅游
作业一:基于人工神经网络的数字卡片识别

一、作业要求

对小卡片上的数字进行奇偶数识别。数字卡为奇数时,输出1;数字卡为偶数时,输出0。要求使用matlab软件编程。

二、人工神经网络背景

人工神经网络(Artificial Neural Network,即ANN),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

图1 人工神经元模型

在上图中,X1, X2……,Xn是神经元的输入,即是来自前级n个神经元的轴突的信息:θi是i神经元的阀值:Wil, Wi2,…… Win分别是i神经元对Xl , X2……,Xn的权系数,也即突触的传递效率;Yi是i神经元的输出;f[·]是激活函数,它决定i神经元受到输人X1, X2,……,Xn的共同刺激达到阀值时以何种方式输出。上述的神经元模型,其数学模型表达式:

nuiwijxjij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]; case 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 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 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】此文件的作用是神经网络的学习,确定权值矩阵。当神经网络在不超过最大训练次数的情况下完成学习后,程序会自动退出,并返回所经过的训练次数。

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 ) * card(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), 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 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 (Odd)

>> 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

OUTPUT = 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)

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)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务