⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generation.m

📁 生产代百哦26个字母布尔值的样本数据
💻 M
字号:
clc
clear
close all
%%生产代百哦26个字母布尔值的样本数据,然后构建一个两层神经网络
[alphabet,targets]=prprob;
[R,Q]=size(alphabet);
[S2,Q]=size(targets);
S1=10;
[R,Q]=size(alphabet);
[S2,Q]=size(targets);
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 targets targets targets targets targets targets];
for pass=1:10
    P=[alphabet,alphabet,alphabet,alphabet,alphabet,alphabet,(alphabet+randn(R,Q)*0.1),(alphabet+randn(R,Q)*0.05),(alphabet+randn(R,Q)*0.15),(alphabet+randn(R,Q)*0.2)];
    [netn,tr]=train(netn,P,T);
end
%%%%%%%再次无噪声训练
netn.trainParam.goal=0.1;
netn.trainParam.epochs=500;
net.trainParam.show=5;
P=alphabet;
T=targets;
[netn,tr]=train(netn,P,T);
%%%%%%%系统性能(用上百个输入相邻加入不同的噪声信号进行了测试,绘制网络识别错误与噪声信号的比较曲线
noise_range=0:.05:.5;
max_test=100;
network1=[];
network2=[];
T=targets;
for noiselevel=noise_range
    errors2=0;
    errors1=0;
    for i=1:max_test
        P=alphabet+randn(35,26)*noiselevel;
        A=sim(net,P);
        AA=compet(A);
        errors1=errors1+sum(sum(abs(AA-T)))/2;
        An=sim(netn,P);
        AAn=compet(An);
        errors2=errors2+sum(sum(abs(AAn-T)))/2;
    end
    network1=[network1 errors1/26/100];
    network2=[network2 errors2/26/100];
end
figure,plot(noise_range,network1*100,'--',noise_range,network2*100);
title('recognition error');
xlabel('noise label');
ylabel('noiseless train net-- noise train net---');
%%%%%%随机选择几字母验证
noisyJ=alphabet(:,1)+randn(35,1)*0.2;
figure,plotchar(noisyJ);
A2=sim(net,noisyJ);
A2=compet(A2);
answer=find(compet(A2)==1);
figure,plotchar(alphabet(:,answer));
noisyJ=alphabet(:,10)+randn(35,1)*0.2;
figure,plotchar(noisyJ);
A2=sim(net,noisyJ);
A2=compet(A2);
answer=find(compet(A2)==1);
figure,plotchar(alphabet(:,answer));
noisyJ=alphabet(:,23)+randn(35,1)*0.2;
figure,plotchar(noisyJ);
A2=sim(net,noisyJ);
A2=compet(A2);
answer=find(compet(A2)==1);
figure,plotchar(alphabet(:,answer));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -