神经网络作业.docx
- 文档编号:23164933
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:17
- 大小:61.51KB
神经网络作业.docx
《神经网络作业.docx》由会员分享,可在线阅读,更多相关《神经网络作业.docx(17页珍藏版)》请在冰豆网上搜索。
神经网络作业
神
经
网
络
作
业
姓名:
李军叶
班级:
10数学
学号:
41008040124
第一次作业:
请用感知器学习规则求解。
如下分类并画图P=[21-21;2-221];
T=[0101];s=1r=2q=4初始值和偏置值w(0)=[00]b(0)=0
1.程序如下
P=[21-21;2-221];T=[0101];
%初始化
[R,Q]=size(P);[S,Q]=size(T);
W=[00]
b=0
max_epoch=20;
%表达式
B=cat(2,b,b,b,b);%b变成一个SQ的矩阵B
A=hardlim(W*P+B);%求网络输出
forepoch=1:
max_epoch%开始循环训练、修正权值过程
%检查
ifall(A==T)%当A=T时结束
epoch=epoch-1;
break
end
%学习
e=T-A;
dW=learnp([],P,[],[],[],[],e);%求权值的修正值
db=learnp(b,ones(1,S),[],[],[],[],e);%求偏差的修正值
W=W+dW%修正后的权值
B=B+db%修正后的偏差
A=hardlim(W*P+B)%计算权值修正后的网络输出
end
W=
00
b=
0
W=
0-4
B=
-10-10
A=
0100
W=
1-3
B=
-10-11
A=
0100
W=
2-2
B=
-10-12
A=
0101
2.作图程序:
P=[21-21;2-221];T=[0101];
[R,Q]=size(P);
[S,Q]=size(T);
net=newp(minmax(P),S);%建立一个感知器网络
W=[00]
b=0
net.iw{1,1}=W;
net.b{1}=b;
net.trainParam.epochs=20;%定义最大循环次数
net=train(net,P,T);
%绘制训练后的分类结果
V=[-22-22];%取一数组限制坐标数值大小
plotpv(P,T,V);%在输入矢量空间绘画输入矢量和目标矢量的位置
axis('equal'),%令横坐标和纵坐标等距离长度
title('InputVectorGraph'),%写图标题
xlabel('p1'),%写横轴标题
ylabel('p2'),%写纵轴标题
plotpc(net.iw{1,1},net.b{1});%绘制由W和B在输入平面中形成的最终分类线
W=
00
b=
0
TRAINC,Epoch0/20
TRAINC,Epoch8/20
TRAINC,Performancegoalmet.
解法2:
>>net=newp([-11;-11],1);
P=[21-21;2-221];
T=[0101];
W=[00]
b=0
figure
plotpv(P,T)
A=sim(net,P)%训练前的网络输出
net.trainParam.epochs=20;%定义最大循环次数
net=train(net,P,T);%训练网络,使输出和期望相同
net.iw{1,1}=W%输出训练后的网络权值
net.b{1}=b%输出训练后的网络偏差
A=sim(net,P)
W=
00
b=
0
A=
1111
TRAINC,Epoch0/20
TRAINC,Epoch8/20
TRAINC,Performancegoalmet.
第二次作业:
设计一个线性神经元实现从输入到输出矢量的变换关系输入:
P=[0.8-2];
输出:
T=[0.51.0];
P=[0.8-2];
T=[0.51.0];
plot(P,T)
pause
clc
[R,Q]=size(P);
[S,Q]=size(T);
lr=0.4*maxlinlr(P)%最佳学习速率
net=newlin(minmax(P),S,[0],lr);%创建线性网络
net.inputWeights{1,1}.initFcn='rands';%初始化权值
net.biases{1}.initFcn='rands';%初始化偏差
net=init(net);%把初始化的权值和偏差函数赋给网络
W0=net.iw{1,1}%显示初始化权值和偏差
B0=net.b{1}
net.trainParam.epochs=20;%最大循环次数
net.trainParam.goal=0.001;%期望误差
[nettr]=train(net,P,T);%进行线性网络权值训练
W=net.iw{1,1}%显示网络训练后最终的权值和偏差
B=net.b{1}
A=sim(net,P);
pause
plot(P,T)
holdon;
plot(P,A)
程序运行的结果如下:
lr=
0.0862
W0=
-0.5377
B0=
0.9003
TRAINB,Epoch0/20,MSE0.476447/0.001.
TRAINB,Epoch9/20,MSE0.000742152/0.001.
TRAINB,Performancegoalmet.
W=
-0.1696
B=
0.6724
这个是P-T图
这个是误差图:
第三次作业
3用BP神经网络对一个简单的非线性神经元进行训练,输入矢量为P=[-1-231;-1153]目标矢量为t=[-1-111];要求类似例4.1的做法,隐含层神经元为3个,输出层为一个,(S1=3,S2=1,r=2,q=4)给出训练0,100,200次时的训练结果图,给出训练结果后的网络误差记录图
P=[-1-231;-1153];
T=[-1-111];
plot(P,T,'r+');
[R,Q]=size(P);[S2,Q]=size(T);S1=3;S2=1;
[W1,B1]=rands(S1,R);
[W2,B2]=rands(S2,S1);
b1=[];b2=[];
b1=B1*ones(1,4);
b2=B2*ones(1,4);
a2=W2*tansig(W1*P+b1)+b2;
A2=purelin(a2);
holdon
plot(P,A2)
holdoff
disp('按任一键继续')
pause
net=newcf(minmax(P),[5,1],{'tansig','purelin'},'traingd');%创建两层前向回馈网络
net.trainParam.epochs=n(运行时分别取0100200);%初始化训练次数
net.trainParam.goal=9.5238e-004;%sse=0.02%初始化误差值
net.trainParam.lr=0.15;
[net,tr]=train(net,P,T);%训练网络
Y=sim(net,P);%计算结果
plot(P,Y,'r-')
hold
plot(P,T,'r+');
holdoff
0次训练
按任意键
100次训练
按任意键
200次训练
第四次作业:
例5.15.2
%例5.1%
closeall
clfreset
figure(gcf);
echoon
clc
pause
clc
T=[1-11;1-1-1;-111];
a=[];w=zeros(3,3);%初始化矩阵
fori=1:
3
a=T(:
i)*T(:
i)';
w=a+w-eye(3);%权值
end
Y=hardlims(w*T)%输出结果
Y=
1-1-1
1-1-1
-111
%例5.2,
T=[11-1;
1-11;
1-1-1;
11-1;
1-1-1];
a=[];w=zeros(5);%初始化矩阵
fori=1:
3
a=T(:
i)*T(:
i)';
w=a+w-eye(5);%应用海布学习法则的权值
end
W=w
Y=hardlims(w*T)%输出结果
W=
0-1131
-101-11
11013
3-1101
11310
Y=
11-1
1-11
1-1-1
11-1
1-1-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络 作业