神经网络的期末考试复习.docx
- 文档编号:9772752
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:31
- 大小:24.25KB
神经网络的期末考试复习.docx
《神经网络的期末考试复习.docx》由会员分享,可在线阅读,更多相关《神经网络的期末考试复习.docx(31页珍藏版)》请在冰豆网上搜索。
神经网络的期末考试复习
单层感知器
设计神经网络对课本120页给出的坐标点进行二分类。
代码(P127)
P=[-9,1,-12,-4,0,5;...
15,-8,4,5,11,9];
%perception_newp.m
%清理
clear,clc
closeall
%定义输入训练向量
P=[-9,1,-12,-4,0,5;...
15,-8,4,5,11,9];
%期望输出
T=[0,1,0,0,0,1]
figure;
plotpv(P,T);holdon%%%%%向量坐标
S=size(T,1);
%创建感知器
net=newp([-20,20;-20,20],S);
%训练
net=train(net,P,T);
plotpc(net.iw{1,1},net.b{1})%%%%%%%%分类线
%输入训练数据仿真验证
Y=sim(net,P)
设计神经网络对一组模式P进行分类(坐标点4分类)。
P127
P=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;
1.21.81.60.60.80.50.20.8-1.5-1.3];
T=[1110011100;
0000011111];
closeall;clear;clc
%%样本数据与类别
P=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;
1.21.81.60.60.80.50.20.8-1.5-1.3];
T=[1110011100;
0000011111];
V=[-22-22];
figure;
plotpv(P,T,V);holdon
%%1.维度确认
[R,Q]=size(P);
[S,Q]=size(T);
%%2.创建网络
net=newp(minmax(P),S);%建立一个感知器网络
%%3.初始化网络
%net.iw{1,1}=rands(S,R);
%net.b{1}=rands(S,1);
%net.trainParam.epochs=50;%定义最大循环次数
%%4.训练网络
net=train(net,P,T);
%%5.结果评估
P_test=P;
T1=sim(net,P)
plotpc(net.iw{1,1},net.b{1})
线性拟合(P135)newlind
拟合直线方程y=3*x-7
%example5_1.m
x=-5:
5;
y=3*x-7;%直线方程为
%randn('state',2);%设置种子,便于重复执行
y=y+randn(1,length(y))*1.5;%加入噪声的直线%%%%%%%%%都是用这个,用来做降噪对比
plot(x,y,'o');
P=x;T=y;
net=newlind(P,T);%用newlind建立线性层
new_x=-5:
.2:
5;%新的输入样本
new_y=sim(net,new_x);%仿真
holdon;plot(new_x,new_y);
legend('原始数据点','最小二乘拟合直线');
net.iw%权值为2.9219
%ans=
%
%[2.9219]
net.b%偏置为-6.6797
%ans=
%
%[-6.6797]
title('newlind用于最小二乘拟合直线');
newlin(P136)
%example5_2.m
x=-5:
5;
y=3*x-7;%直线方程为
randn('state',2);%设置种子,便于重复执行
y=y+randn(1,length(y))*1.5;%加入噪声的直线%%%%%%%用来做降噪对比
plot(x,y,'o');
P=x;T=y;
net=newlin(minmax(P),1,[0],maxlinlr(P));%用newlin创建线性网络
tic;net=train(net,P,T);toc%训练。
与newlind不同,newlin创建的网络需要调用训练函数
new_x=-5:
.2:
5;
new_y=sim(net,new_x);%仿真
holdon;plot(new_x,new_y);
legend('原始数据点','最小二乘拟合直线');
title('newlin用于最小二乘拟合直线');
net.iw
%ans=
%
%[2.9219]
net.b
%ans=
%
%[-6.6797]
设计自适应线性网络实现从输入矢量到输出矢量的变换关系。
P136newlin
P=[11.51.2-0.3;
-123-0.5;
21-1.60.9];
T=[0.53-2.21.4;
1.1-1.21.7-0.4;
30.2-1.8-0.4;
-10.1-1.00.6];
closeall;clear;clc
%%样本数据
P=[11.51.2-0.3;
-123-0.5;
21-1.60.9];
T=[0.53-2.21.4;
1.1-1.21.7-0.4;
30.2-1.8-0.4;
-10.1-1.00.6];
%%1.维度确认
[R,Q]=size(P);
[S,Q]=size(T);
%%2.创建网络
net=newlin(minmax(P),S);
%lr=0.9*maxlinlr(P);
%net=newlin(minmax(P),S,[0],lr);
%%3.初始化网络
net.iw{1,1}=rands(S,R);
net.b{1}=rands(S,1);
net.trainParam.epochs=1000;%定义最大循环次数
net.trainParam.goal=0.001;%期望误差
%%4.训练网络
net=train(net,P,T);
%%5.结果评估
A=sim(net,P);
e=sqrt(sum(sum((T-A).^2)))
设计神经网络实现下面的函数关系。
newlin(P136)
P=-1:
0.1:
1;
T=[-0.96-0.577-0.07290.377
0.6410.660.4610.1336
-0.201-0.434-0.5-0.393
-0.16470.09880.30720.396
0.34490.1816-0.0312-0.2183
-0.3201];
closeall;clear;clc
%%样本数据
P=-1:
0.1:
1;
T=[-0.96-0.577-0.07290.3770.6410.660.4610.1336...
-0.201-0.434-0.5-0.393-0.16470.09880.3072...
0.3960.34490.1816-0.0312-0.2183-0.3201];
figure;
%ind=1:
1;
%plot(P(ind),T(ind),'b+','linewidth',2,'MarkerSize',8);holdon
plot(P,T,'b+','linewidth',2,'MarkerSize',8);holdon%%%%%%%没啥用,linewidth',2,'MarkerSize',8运行出来的b+的大小
xlim([-1.11]);ylim([-1.11]);%%%%%%%运行出来的图的坐标区间
set(gcf,'Position',[232,246,500,375]);%%%%%%%没啥用,运行的图换个位置
%%1.维度确认
[R,Q]=size(P);
[S,Q]=size(T);
%%2.创建网络
net=newff(minmax(P),[5,S],{'tansig','purelin'});
%net=newff(minmax(P),[5,S],{'tansig','purelin'},'traingdm');
%net=newcf(minmax(P),[5,S],{'tansig','purelin'},'trainlm');
%%3.初始化网络
net.trainParam.epochs=10000;%定义最大循环次数
net.trainParam.goal=1e-6;%期望误差
%net.trainParam.show=50;
%net.trainParam.lr=0.5;%学习速率
%net.trainParam.mc=0.9;%附加动量法里面的参数
%%4.训练网络
net=train(net,P,T);%训练网络
%%5.结果评估
P1=-1:
0.01:
max(P);
A=sim(net,P1);%网络仿真
figure
plot(P,T,'b+')
holdon
plot(P1,A,'r')
%plot(P,A,'r-')
BP神经网络(P170它的函数是y=x2-4)
设计BP神经网络逼近函数
要求采用Matlab编程实现。
closeall;clear;clc
%%样本数据
P=0:
0.1:
4;
T=sqrt(P/4);
snr=40;
T=awgn(T,snr);%%%%%%%%在T信号中加入高斯白噪声,为了对比降噪效果
figure;
%ind=1:
1;
%plot(P(ind),T(ind),'b+','linewidth',2,'MarkerSize',8);holdon
plot(P,T,'b+','linewidth',2,'MarkerSize',8);holdon%%%%%%%没啥用,linewidth',2,'MarkerSize',8运行出来的b+的大小
xlim([04]);ylim([01]);%%%%%%%运行出来的图的坐标区间
set(gcf,'Position',[232,246,500,375]);%%%%%%%没啥用,运行的图换个位置
%%1.维度确认
[R,Q]=size(P);
[S,Q]=size(T);
%%2.创建网络
net=newff(minmax(P),[3,S],{'tansig','purelin'},'trainlm');%%%%%%net=newff(最大最小值,输出层节点,默认值,默认trainlm)
%net=newff(minmax(P),[5,S],{'tansig','purelin'},'traingdm');%%%%%%traingdm动量批梯度下降函数,默认trainlm
%net=newcf(minmax(P),[5,S],{'tansig','purelin'},'trainlm');
%%3.初始化网络
net.trainParam.epochs=10000;%定义最大循环次数
net.trainParam.goal=1e-6;%期望误差
%net.trainParam.show=50;
%net.trainParam.lr=0.5;%学习速率
%net.trainParam.mc=0.9;%附加动量法里面的参数
%%4.训练网络
net=train(net,P,T);%训练网络
%%5.结果评估
P1=0:
0.01:
max(P);
A=sim(net,P1);%网络仿真
figure
plot(P,T,'b+')
holdon
plot(P1,A,'r')
%plot(P,A,'r-')
BP网络实现课本241页的坐标点分类。
%BP_for_PR
%%清理
closeall
clear,clc
%%定义数据
rng('default')%%%%%%%将种子设为默认值
rng
(2);%%%%%%%利用rng函数设置随机种子
a=rand(14,2)*10;%训练数据点%%%%%%%产生14x2随机矩阵再乘10,rand为0-1之间的元素,a为0-10之间的元素
p=ceil(a)'%%%%%%%使p为不小于本身的最小整数
tc=[3,1,1,2,1,3,2,3,2,3,3,2,2,3];%类别
figure;
plot(p(1,tc==1),p(2,tc==1),'ro','LineWidth',1);holdon
plot(p(1,tc==2),p(2,tc==2),'b*','LineWidth',1);
plot(p(1,tc==3),p(2,tc==3),'k+','LineWidth',1);
axis([0,11,0,11])%%%%%%%%%%坐标取值范围
legend('第一类','第二类','第三类');
%%1.维度确认
[R,Q]=size(p);
%%2-4.创建与训练RBF网络
T=ind2vec(tc);
T=full(T);
%net=newrb(p,T,1e-2,10,Q,1);
[S,Q]=size(T);
net=newff(minmax(p),[9,S],{'tansig','purelin'});%%%%%%net=newff(最大最小值,输出层节点,默认值,默认trainlm)
net=train(net,p,T);%训练网络
%net=newpnn(p,T);%%%%%%%%设计概率神经网络
%%5.结果评估
%1)训练精度
tc_t=sim(net,p);
tc_t=compet(tc_t);
tc_train=vec2ind(tc_t);
tmp=tc-tc_train;
train_error=length(find(tmp~=0))./length(tmp);
disp(['训练误差为',num2str(train_error)]);
%2)画出分类界
x=0:
.4:
11;
N=length(x);
fori=1:
N
forj=1:
N
xx(1,(i-1)*N+j)=x(i);
xx(2,(i-1)*N+j)=x(j);
end
end
figure
(1);
plot(xx(1,:
),xx(2,:
),'go')
yy=sim(net,xx);
yy=compet(yy);
y=vec2ind(yy);
%3)显示
figure
plot(xx(1,y==1),xx(2,y==1),'ro');
holdon;
plot(xx(1,y==2),xx(2,y==2),'b*');
plot(xx(1,y==3),xx(2,y==3),'k+');
plot(p(1,tc==1),p(2,tc==1),'ro','LineWidth',3);
plot(p(1,tc==2),p(2,tc==2),'b*','LineWidth',3);
plot(p(1,tc==3),p(2,tc==3),'k+','LineWidth',3);
axis([0,11,0,11])
legend('第一类','第二类','第三类');
title('分类结果');
设计RBF神经网络逼近函数
newrb
要求采用Matlab编程实现,并与BP神经网络的结果进行对比。
closeall;clear;clc
%%样本数据
P=0:
0.1:
4;
T=sqrt(P/4);
snr=40;
T=awgn(T,snr);%%%%%%%%在T信号中加入高斯白噪声,为了对比降噪效果
figure;
%ind=1:
1;
%plot(P(ind),T(ind),'b+','linewidth',2,'MarkerSize',8);holdon
plot(P,T,'b+','linewidth',2,'MarkerSize',8);holdon%%%%%%%没啥用,linewidth',2,'MarkerSize',8运行出来的b+的大小
xlim([04]);ylim([01]);%%%%%%%运行出来的图的坐标区间
set(gcf,'Position',[232,246,500,375]);%%%%%%%没啥用,运行的图换个位置
%%1.维度确认
[R,Q]=size(P);
[S,Q]=size(T);
%%2-4.创建与训练网络
%net=newrb(P,T,1e-5,5,Q,1);%%%%%%%%%%%%%net=newrb(P,T,指定均方误差[默认0],扩散速度[默认1],隐含节点最大个数[默认Q],控制显示级别的参数[默认25])
net=newrb(P,T,1e-5,5);
%%5.结果评估
P1=0:
0.01:
max(P);
A=sim(net,P1);%网络仿真
figure
plot(P,T,'b+')
holdon
plot(P1,A,'r')
%plot(P,A,'r-')
根据课本241页给出的坐标点数据,分别设计RBF网络和PNN网络实现坐标点分类,并进行结果对比。
P227和p237
%RBF_for_PR
%%清理
closeall
clear,clc
%%定义数据
rng('default')%%%%%%%将种子设为默认值
rng
(2);%%%%%%%利用rng函数设置随机种子
a=rand(14,2)*10;%训练数据点%%%%%%%产生14x2随机矩阵再乘10,rand为0-1之间的元素,a为0-10之间的元素
p=ceil(a)'%%%%%%%使p为不小于本身的最小整数
tc=[3,1,1,2,1,3,2,3,2,3,3,2,2,3];%类别
figure;
plot(p(1,tc==1),p(2,tc==1),'ro','LineWidth',1);holdon
plot(p(1,tc==2),p(2,tc==2),'b*','LineWidth',1);
plot(p(1,tc==3),p(2,tc==3),'k+','LineWidth',1);
axis([0,11,0,11])
legend('第一类','第二类','第三类');
%%1.维度确认
[R,Q]=size(p);
%%2-4.创建与训练RBF网络
T=ind2vec(tc);
T=full(T);
net=newrb(p,T,1e-2,10,Q,1);%%%%%%net=newrb(P,T,指定均方误差[默认0],扩散速度[默认1],隐含节点最大个数[默认Q],控制显示级别的参数[默认25])
%net=newpnn(p,T);
%%5.结果评估
%1)训练精度
tc_t=sim(net,p);
tc_t=compet(tc_t);
tc_train=vec2ind(tc_t);
tmp=tc-tc_train;
train_error=length(find(tmp~=0))./length(tmp);
disp(['训练误差为',num2str(train_error)]);
%2)画出分类界
x=0:
.4:
11;
N=length(x);
fori=1:
N
forj=1:
N
xx(1,(i-1)*N+j)=x(i);
xx(2,(i-1)*N+j)=x(j);
end
end
figure
(1);
plot(xx(1,:
),xx(2,:
),'go')
yy=sim(net,xx);
yy=compet(yy);
y=vec2ind(yy);
%3)显示
figure
plot(xx(1,y==1),xx(2,y==1),'ro');
xlim([011]);ylim([011]);
holdon;
plot(xx(1,y==2),xx(2,y==2),'b*');
plot(xx(1,y==3),xx(2,y==3),'k+');
plot(p(1,tc==1),p(2,tc==1),'ro','LineWidth',3);
plot(p(1,tc==2),p(2,tc==2),'b*','LineWidth',3);
plot(p(1,tc==3),p(2,tc==3),'k+','LineWidth',3);
axis([0,11,0,11])
legend('第一类','第二类','第三类');
title('分类结果');
利用Matlab神经网络工具箱函数,通过基本竞争神经网络和自组织映射网络(SOM)两种方式分别实现下列坐标点的聚类。
聚类的类别数目可以选择2~4个,建议类别数目观察输出结果。
数据来源于课表269页表8-1。
基本竞争神经网络(工具箱)
%采用竞争神经网络,实现数据聚类
%采用Matlab工具箱函数
%%清理
closeall;clear,clc
%%样本数据
x0=[4.1,1.8,0.5,2.9,4.0,0.6,3.8,4.3,3.2,1.0,3.0,3.6,3.8,3.7,3.7,8.6,9.1,...
7.5,8.1,9.0,6.9,8.6,8.5,9.6,10.0,9.3,6.9,6.4,6.7,8.7;...
8.1,5.8,8.0,5.2,7.1,7.3,8.1,6.0,7.2,8.3,7.4,7.8,7.0,6.4,8.0,...
3.5,2.9,3.8,3.9,2.6,4.0,2.9,3.2,4.9,3.5,3.3,5.5,5.0,4.4,4.3];
figure;
plot(x0(1,:
),x0(2,:
),'bo')%%%%%%%绘制坐标点,不用改
%%建立竞争网络,两个类别
%net=competlayer
(2);%%%%%%%新版竞争网络函数,net=competlayer(a),分为几类a就是几
net=new
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络 期末考试 复习