matlab下编写bp神经网络实现手写数字识别(含图片及代码)
本文参考链接https://blog.csdn.net/huang_miao_xin/article/details/51364152。修改了其中部分代码,可以完美运行。
代码主要包括以下五个部分。
一、神经网络初始化
V=double(rand(256,64));
W=double(rand(64,10));
delta_V=double(rand(256,64));
delta_W=double(rand(64,10));
% lf=0;用来看错误在哪一步的参考数据
yita=0.2;%缩放系数,有的文章称学习率
yita1=0.05;%我自己加的参数,缩放激活函数的自变量防止输入过大进入函数的饱和区,可以去掉体会一下变化
train_number=10;%训练样本中,有多少个数字,一共9个,没有0
train_num=400;%训练样本中,每种数字多少张图,一共100张
x=double(zeros(1,256));%输入层
y=double(zeros(1,64));%中间层,也是隐藏层
output=double(zeros(1,10));%输出层
tar_output=double(zeros(1,10));%目标输出,即理想输出
delta=double(zeros(1,10));%一个中间变量,可以不管
%记录总的均方差便于画图
s_record=1:400