数学建模社区-数学中国

标题: 神经网络中的matlab仿真求助有部分程序 [打印本页]

作者: 小不点    时间: 2007-6-10 01:41
标题: 神经网络中的matlab仿真求助有部分程序

编写一个利用前向传播神经网络进行字符识别的程序。设神经网络为具有一个隐含层的BP网络,需识别的字符有三个AIO,其输入为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)时,求网络输出值。

这题似乎并不难。做下啦。求助~~~

[此贴子已经被作者于2007-7-4 11:59:44编辑过]

作者: 小不点    时间: 2007-6-10 01:45
标题: 我晕,似乎看不到,还是上传吧
真是的,题见文档。[attach]3264[/attach]

神经网络中的matlab仿真求助.doc

39 KB, 下载次数: 76, 下载积分: 体力 -2 点

神经网络中的matlab仿真求助


作者: flyd_ragon    时间: 2007-6-13 22:58

作者: suebup    时间: 2007-6-24 09:13
ddddddddddddddd
作者: 小不点    时间: 2007-7-4 11:45

经过一番学习之后,下面是本人用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
%*****************

[此贴子已经被作者于2007-7-4 11:51:01编辑过]

.rar

958 Bytes, 下载次数: 20, 下载积分: 体力 -2 点


作者: jackson216    时间: 2008-12-31 18:41
太好啦,终于找到了!
作者: jackson216    时间: 2009-1-2 22:06
我又来下载啦
作者: chang_bo321    时间: 2009-2-22 16:29
新手,不会
作者: leopard001    时间: 2009-5-29 18:17
哇,有点难~~~
作者: l0310i    时间: 2009-5-29 20:46
:)                :)
作者: swjtu-zlj    时间: 2009-6-1 19:29
:dizzy::dizzy:
作者: rodinsun    时间: 2011-12-22 21:26
我好想下呀
作者: 906267195    时间: 2014-8-25 19:04
新手,,菜鸟,,不会




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5