编写一个利用前向传播神经网络进行字符识别的程序。设神经网络为具有一个隐含层的BP网络,需识别的字符有三个A,I,O,其输入为4×4个象素的扫描输入,见上图。
目标输出分别为A=(1,-1,-1),I=(-1,1,1),O=(-1,-1,1).网络为16个输入节点、3个输出节点、9个隐含层节点。利用所编程序完成训练后, 在输入样本为X=(1,1,1,1,1,-1,-1,1,1,1,1,1,1,1,-1,1)时,求网络输出值。
这题似乎并不难。做下啦。求助~~~
39 KB, 下载次数: 76, 下载积分: 体力 -2 点
神经网络中的matlab仿真求助
经过一番学习之后,下面是本人用matlab7.1写的。其中有很多不理解的地方,请指正。另外,我想用plotchar()来画出4*4的图像,但只能画出5*7的,不知何解??或用什么来画呢??怎样通过竞争层后输出也没搞懂??估计是没人回答了!!程序见符件~[attach]3298[/attach]
alphabet=[1 -1 1;1 1 1;1 -1 1;1 -1 1;1 -1 1;-1 1 -1;-1 -1 -1;1 -1 1;
1 -1 1;1 1 -1;1 -1 -1;1 -1 1;1 -1 1;-1 1 1;-1 -1 1;1 -1 1]
targets=[1 -1 -1;-1 1 1;-1 -1 1]
[R Q]=size(alphabet);
P=alphabet;
net = newff(minmax(P),[9 3],{'tansig' 'tansig'}, 'traingdx')
net.Lw{2,1}=net.LW{2,1}*0.001;
net.b{2}=net.b{2}*0.001;
%no noise
%无噪声训练
T=targets;
net.performFcn='sse';
net.trainParam.goal=0.0001;
%net.trainParam.show=20;
net.trainParam.epochs=5000;
net.trainParam.mc=0.95;
[net,tr]=train(net,P,T);
%有噪声操练
netn=net;
netn.trainParam.goal=0.0003;
netn.trainParam.epochs=300;
T=[targets targets targets targets];
for pass=1:10
P=[alphabet,alphabet,...
(alphabet+randn(R,Q)*0.1),...
(alphabet+randn(R,Q)*0.2)];
[netn,tr]=train(netn,P,T);
end
%*****************************************
%****************************************
%再次无噪声训练
netn.trainParam.goal=0.0001;
netn.trainParam.epochs=500;
%netn.trainPanram.show=5;
P=alphabet;
T=targets;
[netn,tr]=train(netn,P,T);
%**********************************************
%**********************************************
%系统性能
noise_range=0:.05:.5;
max_test=10;
network1=[];
network2=[];
T=targets;
for noiselevel=noise_range
errors1=0;
errors2=0;
for i=1:max_test
P=alphabet+randn(16,3)*noiselevel;
A=sim(net,P);
%AA=compet(A);
errors1=errors1+sum(sum(abs(A-T)))/2;
An=sim(netn,P);
%AAn=compet(An);
errors2=errors2+sum(sum(abs(An-T)))/2;
end
network1=[network1 errors1/3/10];
network2=[network2 errors2/3/10];
end
plot(noise_range,network1*10,'--',noise_range,network2*10);
title('识别误差');
xlabel('噪声指标');
ylabel('无噪声——有噪声——');
%测试
testX=[1;1;1;1;1;-1;-1;1;1;1;1;1;1;1;-1;1];
XX=sim(net,testX);
XX
%*****************
958 Bytes, 下载次数: 20, 下载积分: 体力 -2 点
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |