《神经网络技术与应用》程序题答案Word格式.docx
《《神经网络技术与应用》程序题答案Word格式.docx》由会员分享,可在线阅读,更多相关《《神经网络技术与应用》程序题答案Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
![《神经网络技术与应用》程序题答案Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/31/aa4001d7-5368-4b69-af47-08d0bbdc6852/aa4001d7-5368-4b69-af47-08d0bbdc68521.gif)
4.简述CMAC网络的结构及特点。
5.试用RBF网络学习一下函数(步骤可参看第3题):
其中:
。
若输入信号的分辨率不同时,对算法的收敛过程有何影响。
6.用Hopfield网络对如下字符进行识别:
(1)试确定网络结构和网络权值;
(2)将污染率为10%字符“0”、“1”、“2”、“3”(随机设定)输入网络,给出网络收敛后的结果。
(3)将污染率为20%字符“4”、“6”、“9”(随机设定)输入网络,给出网络收敛后的结果。
(20分)
7.简述ART-1网络的结构和工作过程。
8.结合自己的研究方向,谈谈如何应用神经网络理论和知识解决面临的实际问题,要求给出实例。
3.
程序如下
x=-5:
0.001:
5;
y=cos(x)+2*sin(x)+5*x+exp(2*x);
net=newff(minmax(x),[8,1],{'
tansig'
'
purelin'
},'
trainlm'
);
net.trainparam.epochs=10000;
net.trainparam.goal=0.01;
[net,tr]=train(net,x,y);
>
plot(x,y)
title('
标准输出'
holdoff
y4=sim(net,x);
plot(x,y4)
plot(x,y4,'
b'
)
g'
样本不变情况下训练后输出'
y1=cos(x1)+2*sin(x1)+5*x1+exp(2*x1);
x1=-5:
0.0009:
y1=cos(x1)+2*sin(x1)+5*x1+exp(2*x1);
plot(x1,y1,'
r'
样本改变后标准输出'
y2=sim(net,x1);
plot(x1,y2,'
title('
样本改变后训练输出'
err=y2-y1;
plot(x1,err,'
误差曲线'
N越大,训练次数越少,网络性能越好,学习效果变好,但是N太大会导致计算机单步计算时间变长;
越大,训练次数越少,训练时间减少,网络性能变差,学习效果变坏;
总体上说,N越大,
越小,学习效果会越好。
但是会牺牲时间,有时候系统可能会达不到
的训练要求。
5.
clear
x=rand(2,1000);
x=(x-0.5)*10;
x1=x(1,:
x2=x(2,:
y=x1.^3+x2.^3+3*x1.^2+6*x1+7*x2+5*x1.*x2;
net=newrb(x,y);
NEWRB,neurons=0,MSE=9868.38
NEWRB,neurons=25,MSE=136.414
NEWRB,neurons=1000,MSE=1.41658e-010
[i,j]=meshgrid(-5:
0.1:
5);
row=size(i);
tx1=i(:
tx1=tx1'
;
tx2=j(:
tx2=tx2'
tx=[tx1;
tx2];
ty=sim(net,tx);
v=reshape(ty,row);
figure
mesh(i,j,v);
zlim([-200,600]);
rbf网络'
[x1,x2]=meshgrid(-5:
0.05:
mesh(x1,x2,y)
函数曲面图'
mesh(x1,x2,v-y);
误差曲面效果图'
输入信号分辨率越高,学习速率越低,需要更多时间才能完成rbf网络的训练,算法收敛过程变慢,学习效果变好;
过大的分辨率可能会导致计算机内存溢出而崩溃。
6.
程序如下:
zero=[-1-1-1-1-1-1-1-1-1-1;
-1-1-11111-1-1-1;
-1-1111111-1-1;
-1111-1-1111-1;
-1-1-1-1-1-1-1-1-1-1];
.....
one=-1*one;
zero=-1*zero;
two=-1*two;
I=[zero;
one;
two;
three]'
subplot(3,4,1);
imshow(imresize(zero,20));
标准字符0'
subplot(3,4,2);
imshow(imresize(one,20));
标准字符1'
subplot(3,4,3);
imshow(imresize(two,20));
标准字符2'
subplot(3,4,4);
imshow(imresize(three,20));
标准字符3'
net=newhop(I)
rand('
state'
0);
fori=1:
120
a=rand;
ifa<
=0.3
one(i)=-1*one(i);
zero(i)=-1*zero(i);
two(i)=-1*two(i);
three(i)=-1*three(i);
end
no0=zero;
no1=one;
no2=two;
no3=three;
subplot(3,4,5);
污染后字符0'
subplot(3,4,6);
污染后字符1'
subplot(3,4,7);
污染后字符2'
subplot(3,4,8);
污染后字符3'
noise0={(no0)'
};
tu0=sim(net,{12,10},{},noise0);
subplot(3,4,9);
imshow(imresize(tu0{10}'
20));
收敛后字符0'
noise1={(no1)'
tu1=sim(net,{12,10},{},noise1);
subplot(3,4,10);
imshow(imresize(tu1{10}'
收敛后字符1'
noise2={(no2)'
tu2=sim(net,{12,10},{},noise2);
subplot(3,4,11);
imshow(imresize(tu2{10}'
收敛后字符2'
noise3={(no3)'
tu3=sim(net,{12,10},{},noise3);
subplot(3,4,12);
imshow(imresize(tu3{10}'
收敛后字符3'
four=[1-1-11111-1-11;
1-1-11111-1-11;
1-1-1-1-1-1-1-1-11;
1111111-1-11;
];
......
subplot(3,3,1);
imshow(imresize(four,1));
标准字符4'
subplot(3,3,2);
imshow(imresize(six,1));
标准字符6'
subplot(3,3,3);
imshow(imresize(nine,1));
标准字符9'
k=10;
I=[four;
six;
nine]'
rand('
fori=1:
a=rand;
ifa<
=0.2
four(i)=-1*four(i);
six(i)=-1*six(i);
nine(i)=-1*nine(i);
no4=four;
no6=six;
no9=nine;
subplot(3,3,4);
污染后字符4'
subplot(3,3,5);
污染后字符6'
subplot(3,3,6);
污染后字符9'
noise4={(no4)'
tu4=sim(net,{12,k},{},noise4);
subplot(3,3,7);
imshow(imresize(tu4{k}'
1));
收敛后字符4'
noise6={(no6)'
tu6=sim(net,{12,k},{},noise6);
subplot(3,3,8);
imshow(imresize(tu6{k}'
收敛后字符6'
noise9={(no9)'
tu9=sim(net,{12,k},{},noise9);
subplot(3,3,9);
imshow(imresize(tu9{k}'
收敛后字符9'