神经网络模式识别Matlab程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

神经网络模式识别Matlab程序识别加入20%噪声的A-Z26个字母。(20%噪声情况下,完全能够识别)clear;close all;

clc;

[alphabet,targets]=prprob;

[R,Q]=size(alphabet);

[S2,Q]=size(targets);

S1=10;

P=alphabet;

net=newff(minmax(P),[S1,S2],{'logsig''logsig'},'traingdx'); net.LW{2,1}=net.LW{2,1}*0.01;

net.b{2}=net.b{2}*0.01;

T=targets;

net.performFcn='sse';

net.trainParam.goal=0.1;

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.6;

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.1;

netn.trainParam.epochs=500;

netn.trainParam.show=5;

P=alphabet;

T=targets;

[netn,tr]=train(netn,P,T);

noise_percent=0.2;

for k=1:26

noisyChar=alphabet(:,k)+randn(35,1)*noise_percent;

subplot(6,9,k+floor(k/9.5)*9);

plotchar(noisyChar);

de_noisyChar=sim(net,noisyChar);

de_noisyChar=compet(de_noisyChar);

answer=find(de_noisyChar==1);

subplot(6,9,k+floor(k/9.5)*9+9);

plotchar(alphabet(:,answer));

end

set(gcf,'Position',[10,60,900,700],'color','w')运行结果如下:

有噪声

成功识别

相关文档
最新文档