BP神经网络简易版数字识别(matlab实现)

用BP神经网络识别手写数字,其原理就是将手写图片进行处理,把像素点作为数组作为输入的数据,并标记数据的结果。然后对网络进行训练。

MATLAB代码:

function BPconsiderNum()
clc;
num1 = xlsread('numKnow.xlsx','Sheet2','A1:AI9');
num2 = xlsread('numKnow.xlsx','Sheet3','A1:I1');
input_train=num1(1:9,1:35)';
output_train=num2(1,1:9);
input_test=num1(1:9,1:35)';
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
net=newff(inputn,outputn,[35,35]);
net.trainParam.epochs=50;
net.trainParam.lr=0.05;
net.trainParam.goal=0.00004;
net=train(net,inputn,outputn);
inputn_test=mapminmax('apply',input_test,inputps);
an = sim(net,inputn_test);
BPoutput=mapminmax('reverse',an,outputps)

因为数据训练集比较少,所以把学习速率设置的比较小,为0.05。最后训练结果如下所示:

BP神经网络简易版数字识别(matlab实现)_第1张图片

 

 BP神经网络简易版数字识别(matlab实现)_第2张图片

其输入的测试 数据为:

 BP神经网络简易版数字识别(matlab实现)_第3张图片

结果只有图3离实际值误差比较大。其他都很接近正确结果。 

你可能感兴趣的:(深度学习与机器学习)