【文档说明】神经网络实用教程讲解与源码课件.ppt,共(105)页,598.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-244300.html
以下为本文档部分文字说明:
AC实验二MATLAB快速入门3、使用MATLAB中的条件语句和循环语句,编程实现下面的功能:从1累加到20,即:1+2+3+4+…+20,当累加和超过30时,跳出FOR循环,在命令窗口中输出此时的累加次数和累加值。演示程序sum=0;for
i=1:20sum=sum+i;ifsum>30%break;disp('sumis30')fprintf('%2d,sum')x=1continue;endendisum实验二MATLAB快速入门4、神经网络常用的
激活函数有S型、对数S型、线性型和硬限幅等,在MATLAB中有tansig()、logsig()、purelin()和hardlim()四个函数对应,请使用MATLAB编程,按下画所示图形,画出四个激活函数的图形。演示程序
x=-10:0.2:10;y1=tansig(x);y2=logsig(x);y3=purelin(x);y4=hardlim(x);h=figure('name','这是一个显示多个激活函数图形的程序');subplot(2,2,1);%绘制第一个图形
hnd1=plot(x,y1);%设置图形线条宽度set(hnd1,'linewidth',1);%设置图形线条颜色set(hnd1,'color','red');title('S型激活函数');legend('tansig');gri
don%设置第二个图形的绘图位置为第一行第二列subplot(2,2,2);hnd2=plot(x,y2);%设置图形线条宽度set(hnd2,'linewidth',2);%设置图形线条颜色set(hnd2,'color','green');title('对数
S型激活函数');legend('logsig');gridon%设置第三个图形的绘图位置为第二行第一列subplot(2,2,3);hnd3=plot(x,y3);%设置图形线条宽度set(hnd3,'l
inewidth',3);%设置图形线条颜色set(hnd3,'color','blue');title('线性激活函数');legend('purelin');gridon%设置第四个图形的绘图位置为第二行第二列subplot(2,2,4);hnd4=plot(x,y4
);%设置图形线条宽度set(hnd4,'linewidth',4);%设置图形线条颜色set(hnd4,'color','yellow');title('硬限幅激活函数');legend('h
ardlim');gridon谢谢!实验三单层感知器的构建与使用讲解实验三单层感知器的构建与使用实验三单层感知器的构建与使用1、已经对逻辑与的单层感知器实现的权值调整计算过程进行了讲解,请使用MATLAB语言编写程序,实现单层感知器对逻辑与进行分
类。演示程序1%实验三第1题演示程序%设计并训练一个对与运算进行分类的单层感知器%神经网络并输出分类结果。%给定训练样本数据P=[0011;0101];%给定样本数据所对应的类别,用1和0来表示两种类别T=[00
01];%创建一个有两个输入、样本数据的取值范围都在[0,1]之间,%并且网络只有一个神经元的感知器神经网络net=newp([01;01],1);%设置网络的最大训练次数为20次,即训练20次后结束训练net.trainParam.epochs=20;%使用训练函数对
创建的网络进行训练net=train(net,P,T);演示程序1%对训练后的网络进行仿真,即根据训练后的网络和样本数据%给出输出a=net.b{1};b=net.iw{1};Y=sim(net,P);%计算网络的平均绝对误
差,表示网络错误分类E1=mae(Y-T);%给定测试数据,检测训练好的神经网络的性能Q=[1010;0110];%使用测试数据,对网络进行仿真,仿真输出即为分类的结果Y1=sim(net,Q);%创建一个新的绘图窗口演示程序1figure;
%设置绘图范围,在坐标图中绘制测试数据点,并根据数据%所对应的类别用约定的符号画出v=[-0.52-0.52];plotpv(Q,Y1,v);%利用权值和阈值,在坐标图中绘制分类线%plotpc(net.iw{1},
net.b{1})%为更清楚的看到分类,可以给阈值加一个小的偏移量plotpc(net.iw{1},net.b{1}+0.1)实验三单层感知器的构建与使用2、现需要对一组数据进行分类,设样本数据的输入数据为P=[-0.4-0.50.6-0.1;0.900.10.5],其期望值为T=[1
101],请构建一个单层感知器对数据进行分类,并用测试数据Q=[0.60.9-0.10.7;-0.1-0.50.5-0.3]对构建好的神经网络进行测试,并评价其性能.演示程序2%实验三第2题演示程序%设计
并训练一个对与运算进行分类的单层感知器神经网络%并输出分类结果。%%给定训练样本数据P=[-0.4-0.50.6-0.1;0.900.10.5];%给定样本数据所对应的类别,用1和0来表示两种类别T
=[1101];%创建一个有两个输入、样本数据的取值范围都在[0,1]之间,%并且网络只有一个神经元的感知器神经网络net=newp([01;01],1);%设置网络的最大训练次数为20次,即训练20次后结束
训练net.trainParam.epochs=20;演示程序2%使用训练函数对创建的网络进行训练net=train(net,P,T);%对训练后的网络进行仿真,即根据训练后的网络和样本数据给出输出a=net.b{1}b=net.iw{1}Y=si
m(net,P);%计算网络的平均绝对误差,表示网络错误分类E1=mae(Y-T)%给定测试数据,检测训练好的神经网络的性能Q=[0.60.9-0.10.7;-0.1-0.50.5-0.3];%使用测试数据,对网络进行仿真,仿真输出即为分类的结果演示程序2Y1=si
m(net,Q);%创建一个新的绘图窗口figure;%设置绘图范围,在坐标图中绘制测试数据点,并根据数据所对应的类别用约定的符号画出v=[-12-12];plotpv(Q,Y1,v);%利用权值和阈值,在坐标图中绘制分类线plotpc(net.iw{1},n
et.b{1})%为更清楚的看到分类,可以给阈值加一个小的偏移量%plotpc(net.iw{1},net.b{1}+0.1)实验三单层感知器的构建与使用3、有下面一组样本数据:输入数据为P=[0001;1011],目标值为[0110],能否使用单层感知器
对其进行正确分类,请编写MATLAB程序验证,并对结果进行分析?演示程序3%实验三第3题演示程序%设计并训练一个对与运算进行分类的单层感知器神经网络并输出分类结果。%%给定训练样本数据P=[0101;0011];%给定样本数据所对应
的类别,用1和0来表示两种类别T=[0110];%创建一个有两个输入、样本数据的取值范围都在[0,1]之间,%并且网络只有一个神经元的感知器神经网络net=newp([01;01],1);%设置网络的最大训练次数为20次,即
训练20次后结束训练net.trainParam.epochs=20;%使用训练函数对创建的网络进行训练net=train(net,P,T);演示程序3%对训练后的网络进行仿真,即根据训练后的网络和样本数据给出输出a=net.b{1}b=net.iw{1}Y=sim(
net,P);%计算网络的平均绝对误差,表示网络错误分类E1=mae(Y-T)%给定测试数据,检测训练好的神经网络的性能Q=[0101;0011];%使用测试数据,对网络进行仿真,仿真输出即为分类的结果演示程序
3Y1=[0110];%创建一个新的绘图窗口figure;%设置绘图范围,在坐标图中绘制测试数据点,并根据数据所对应的类别用约定的符号画出v=[-12-12];plotpv(Q,Y1,v);%利用权值和阈值,在坐标图
中绘制分类线%plotpc(net.iw{1},net.b{1})%为更清楚的看到分类,可以给阈值加一个小的偏移量plotpc(net.iw{1},net.b{1}+0.1)谢谢!实验四线性神经网络的构建与使用讲解实验四线性神经网络的构建与使用实验四线性神经网络的构建与使用1、有
21组单输入矢量和相对应的目标矢量,试设计一个线性神经网络来拟合这对数组的函数关系,并用测试数据进行测试。实验四线性神经网络的构建与使用输入与目标数据如下:输入数据:P=-1:0.1:1期望目标数据:T=[-0.960.577-
0.07290.3770.6410.660.4610.13360.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201]测试数据为:P2=-1:0.025:1演示程序1P=-1:0.1:1
;%T=[-0.960.577-0.07290.3770.6410.660.4610.13360.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.
2183-0.3201];%创建一个只有一个输出,输入延时为0,学习速率为0.01的%线性神经网络,minmax(P)表示样%本数据的取值范围%net=newlin(minmax(P),1,0,0.01);%%对
创建的线性神经网络进行初始化,设置权值和阈值的初始值%net=init(net);%net.trainParam.epochs=500;%%设置网络训练后的目标误差为0.0001%net.trainParam.goal=0.0001;%net=tra
in(net,P,T);演示程序1%有-------标记间的部分为拟合函数时的程序,有+++++++++++标记间的部分为测试时的程序%-----------------------------%y=sim(ne
t,P);%%求解网络的均方误差值%E=mse(y-T);%%获取绘图句柄%hndl1=plot(P,y);%%设置线宽为2%set(hndl1,'linewidth',2);%%设置线的颜色为红色%set
(hndl1,'color','red');%holdon%hndl2=plot(P,T);演示程序1%set(hndl2,'linewidth',2);%%设置图形标题%title('线性神经网络逼近非线性函数的MATLAB实现');%%设置图例%legend('
线性神经网络逼近非线性函数','原线性数据')%%------------------------------------------------%从此处到标记为+++++++++++的部分为测试时的程序,测试用此部分程序替换-------------间的程序%%测试数据%P2
=-1:0.025:1;%ytest=sim(net,P2);%plot(ytest,'d','MarkerFaceColor','r','MarkerSize',8);%holdon%plot(T,'s','MarkerEdgeColor','k','MarkerFa
ceColor','g','MarkerSize',12);%+++++++++++++++++++++++++++实验四线性神经网络的构建与使用思考题1、一线性神经网络的输入为P=[1.1-1.3],目标为T=[0.61];
设权值和偏置的初始值为0,学习速率为0.01,请计算出此网络前二次的权值和偏置的值?实验四线性神经网络的构建与使用1XT输入线性神经元输出w目标值权值输入T2wx2T1wx1b1122xwbTxwbT+=+=112211TbwxxT=T(1)()2()()wkwke
kk+=+pT(1)()2()()wkwkekk+=+p权值调整公式(见《神经网络实用教程》p27)实验四线性神经网络的构建与使用第一次调整➢实际输出:12111100001.1-1.3bwxx==
1XT输入线性神经元输出w目标值权值输入T2wx2T1wx1b1122xwbTxwbT+=+=112211TbwxxT=T(1)()2()()wkwkekk+=+pT0.61-000.6111(1)(0)2*0.01**1.1
1.311.100.02*0.6111.3=0.0320.0128eTYwwe=−===+−=+−−实验四线性神经网络的构建与使用第一次调整➢实际输出:1211110.0
320.01281.1-1.3=0.01790.0486bwxx=−T0.61-0.01790.04860.58210.951411(2)(1)2*0.01**1
.11.311.10.0320.01280.02*0.58210.951411.3=0.0627-0.0247eTYwwe=−===+=−+1XT输入线性神经元输出w目标值权值输入T2wx2T1wx1b1122xwbTxwbT+=+=11221
1TbwxxT=T(1)()2()()wkwkekk+=+p实验四线性神经网络的构建与使用思考题2、用MATLAB编程实现第1题,要求输出每一次迭代后的权值和偏置。1XT输入线
性神经元输出w目标值权值输入T2wx2T1wx1b1122xwbTxwbT+=+=112211TbwxxT=T(1)()2()()wkwkekk+=+p演示程序2%线性神经网
络拟合曲线输出权值演示程序%输入样本数NPATS=2;%输入样本值矩阵Patterns=[1.1-1.3];%输出目标值Target=[0.61];%学习率LearnRate=0.01;演示程序2%将偏置看作输入的第一个分量,
组成网络输入值Inputs=[ones(1,2);Patterns];%权值初始化Weights=[00];%循环计算权值和偏置的改变值fori=1:3%计算神经元的输出Result=(Weights*Inputs);演示程序2%
判断实际输出与目标值是否相等,相等则结束迭代,否则进入下一轮迭代ifResult==Target,break,end%按LMS误差学习算法调整权值Weights=Weights+2*LearnRate*(Target-Res
ult)*Inputs';%在显示器上输出权值编号其对应值fprintf('%2d.Weights=',i);disp(Weights);end谢谢!实验五BP神经网络的构建与使用(一)讲解实验五BP
神经网络的构建与使用实验五BP神经网络的构建与使用1、有21组单输入矢量和相对应的目标矢量,试设计一个线性神经网络来拟合这对数组的函数关系,并用测试数据进行测试。实验五BP神经网络的构建与使用存在的问题1、激活函数的选择tansig的定义域为
负无穷到正无穷,值域为-1到1,logsig的定义域为负无穷到正无穷,值域为0到12、结果如何显示?实验五BP神经网络的构建与使用输入与目标数据如下:输入数据:P=-1:0.1:1期望目标数据:T=[-0.960.577-0.072
90.3770.6410.660.4610.13360.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201]测试数据为:P2=-1:0.025:1BP演示程序%%
本函数演示BP网络对非线性数据的逼近效果%%下面为用BP神经网络逼近非线性数据的演示程序%输入样本P=-1:0.1:1;T=[-0.960.577-0.07290.3770.6410.660.4610.
13360.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201];%创建一个BP神经网络,每一个输入向量的取值范围为[-1,1],隐含层有5个神经元,输出层%有一个神经元,隐含层的
激活函数为tansig,输出层的激活函数为logsig,训练函数为梯度下%降函数,即2.3.2节中所描述的标准学习算法net=newff([-11],[5,1],{'tansig','tansig'},'traing
d');%可以改变训练步数为3000、5000、10000来查看网络的训练结果net.trainParam.epochs=5000;%目标误差设为0.01net.trainParam.goal=0.01;BP演示程序%设置学习速率为0.
1LP.lr=0.1;net=train(net,P,T);%有-------标记间的部分为拟合函数时的程序,有+++++++++++标记间的部分为测试时的程序%-----------------------------
y=sim(net,P);figurehndl1=plot(P,y);%设置线宽为2set(hndl1,'linewidth',2);%设置线的颜色为红色set(hndl1,'color','red');holdonh
ndl2=plot(P,T);BP演示程序set(hndl2,'linewidth',2);%设置图形标题title('BP神经网络逼近非线性函数的MATLAB实现');%设置图例legend('BP神经网络
逼近非线性函数','原数据')%-----------------------------%从此处到标记为+++++++++++的部分为测试时的程序,测试用此部分程序替换-------------间的程序%测试数据%测试%P2=-1:0.05:1;%ytest=
sim(net,P2);%figure%hndl1=plot(P2,ytest);BP演示程序%%设置线宽为2%set(hndl1,'linewidth',2);%%设置线的颜色为红色%set(hndl1,'color','red');%ho
ldon%hndl2=plot(P,T);%set(hndl2,'linewidth',2);%%设置图形标题%title('BP神经网络逼近非线性函数的MATLAB实现');%%设置图例%legend('BP神经网络逼近非线性函数','原数据
')%+++++++++++++++++++++++++++++++线性网络演示程序%%本函数演示线性神经网络对非线性数据的逼近效果%%下面为用线性神经网络逼近非线性数据的演示程序P=-1:0.1:1;T=[-0.960.577-0.07290.3770.6410.660.4610.13
360.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201];%创建一个只有一个输出,输入延时为0,学习速率
为0.01的%线性神经网络,minmax(P)表示样本数据的取值范围net=newlin(minmax(P),1,0,0.01);%对创建的线性神经网络进行初始化,设置权值和阈值的初始值net=init(net);net
.trainParam.epochs=500;%设置网络训练后的目标误差为0.0001net.trainParam.goal=0.0001;线性网络演示程序net=train(net,P,T);%有-------标记间的部分为拟合数据时的程序,有+++++++++++标记间的
部分为测试时的程序%-----------------------------y=sim(net,P);%求解网络的均方误差值E=mse(y-T);figure%获取绘图句柄hndl1=plot(P,y);%设置线宽为2set(hndl1,'linewidth',2);%设
置线的颜色为红色set(hndl1,'color','red');线性网络演示程序holdonhndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('线性神经网络逼近非线性函数的MATLAB实现');%设置图
例legend('线性神经网络逼近非线性函数','原线性数据')%------------------------------------------------%从此处到标记为+++++++++++的部分为测试时的程序,测试用此部分程序替换-
------------间的程序%测试数据%P2=-1:0.025:1;%ytest=sim(net,P2);%figure线性网络演示程序%获取绘图句柄%hndl1=plot(P2,ytest);%设置线宽为2%set(h
ndl1,'linewidth',2);%设置线的颜色为红色%set(hndl1,'color','red');%holdon%hndl2=plot(P,T);%set(hndl2,'linewidth',2);%设置图形标题
%title('线性神经网络逼近非线性函数的MATLAB实现');%设置图例%legend('线性神经网络逼近非线性函数','原线性数据')%+++++++++++++++++++++++++++++++谢谢!实验六BP神经网络的构建与使用(
二)讲解实验六BP神经网络的构建与使用(二)实验六BP神经网络的构建与使用(二)使用BP神经网络对正弦函数进行逼近实验六BP神经网络的构建与使用(二)存在的问题1、激活函数的选择2、训练次数的确定3、隐含层神经元个数的确定实验六BP神经网络的构建与使用
(二)实验内容1数据:➢输入样本数据:P=-2:0.1:2;➢期望目标数据:T=sin(2*P);➢测试数据:P=-2:0.05:2;实验六BP神经网络的构建与使用(二)实验内容2:➢探测网络合适的训练次数➢最大训练次数设置为3
000、5000、10000观测效果实验六BP神经网络的构建与使用(二)实验内容3:➢探测合适的隐含层的神经元个数➢设置隐含层神经网络的个数为2个、8个、10个、20个,比较效果实验六BP神经网络的构建与使用(二)实验内容4:➢输入的正弦函数改为sin(3*P)、sin(4
*P)、sin(8*P)时观测逼近效果实验六BP神经网络的构建与使用(二)思考题1、实验中构建的BP神经网络的合适的训练次数在什么范围内?2、实验中构建的BP神经网络的合适的隐含层神经元的个数在什么范围内?演示程序%%本函数演示BP网络对非线性数据的逼近效果%%下面为用
BP神经网络逼近非线性数据的演示程序clcclearcloseall%输入样本P=-2:0.1:2;T=sin(4*P);%创建一个BP神经网络,每一个输入向量的取值范围为[-1,1],隐含层有5个神经元,%输出层有一个神经元,隐含层的激活函数为tansi
g,输出层的激活函数为logsig,%训练函数为梯度下降函数,即2.3.2节中所描述的标准学习算法。%可改变隐含层神经元个数为2、8、10、20测试网络性能net=newff([-11],[5,1],{'tansig','tansig'},'traingd');%可以改变训练步数为3
000、5000、10000来查看网络的训练结果net.trainParam.epochs=2000;演示程序%目标误差设为0.01net.trainParam.goal=0.01;%设置学习速率为0.1LP.lr=0.1;net=train(net,P,T);%有--
-----标记间的部分为拟合函数时的程序,有+++++++++++标记间的部分为测试时的程序%-----------------------------y=sim(net,P);subplot(2,1,1)hndl1=plot(P,y);%设置线宽为2set(hndl1,'line
width',2);%设置线的颜色为红色set(hndl1,'color','red');holdon演示程序hndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('使用训练数据测试
BP神经网络逼近非线性函数');%设置图例%legend('BP神经网络逼近非线性函数','原数据')%-----------------------------%从此处到标记为+++++++++++的部分为
测试时的程序,测试用此部分程序替换-------------间的程序%测试数据%测试P2=-2:0.05:2;ytest=sim(net,P2);subplot(2,1,2)演示程序hndl1=plot(P2,ytest);%设置
线宽为2set(hndl1,'linewidth',2);%设置线的颜色为红色set(hndl1,'color','red');holdonhndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图
形标题title('使用测试数据测试BP神经网络逼近非线性函数');%设置图例%legend('BP神经网络逼近非线性函数','原数据')%++++++++++++++++++++谢谢!实验七RBF神经网络的构建与使用讲解实验七RB
F神经网络的构建与使用实验七RBF神经网络的构建与使用使用RBF神经网络对指定函数进行逼近实验七RBF神经网络的构建与使用存在的问题1、点乘的使用2、仿真输出与实际函数的显示3、扩展参数的确定4、基神经元个数的确定实验七RBF神经网络
的构建与使用实验内容1➢对下述函数的逼近sin()xyex−=演示程序%建立一个径向基神经网络,对非线性函数进行逼近,并作出网络的逼近误差曲线。%clcclearcloseall%输入从0开始变化到4,每次变化幅度为0.1p=0:0.2:4;t=exp(-p).*sin(p);
%建立一个目标误差为0,径向基函数的分布密度为0.5,隐含层神经元个数的最大值为21,每%增加5个神经元显示一次结果net=newrb(p,t,0,0.5,50,5);ysim=sim(net,p);演示程序subplot(2,
1,1)hndl1=plot(p,ysim);%设置线宽为2set(hndl1,'linewidth',2);%设置线的颜色为红色set(hndl1,'color','red');holdon%因原函数与
逼近函数重合,要看到两个图像y应该加一个小的偏移%hndl2=plot(p,t+0.01);hndl2=plot(p,t);set(hndl2,'linewidth',2);演示程序%设置图形标题title('使用训
练数据测试RBF神经网络逼近非线性函数');%%下面为使用测试数据对训练好的神经网络效果进行测试xtest=0:0.01:4;%ttest=exp(-xtest).*sin(xtest);ytest
sim=sim(net,xtest);subplot(2,1,2)hndl1=plot(xtest,ytestsim);演示程序%设置线宽为2set(hndl1,'linewidth',2);%设置线的颜色为红色set(hndl1,'color','red');
holdon%hndl2=plot(p,t+0.01);hndl2=plot(p,t);set(hndl2,'linewidth',2);%设置图形标题title('使用测试数据测试RBF神经网络逼近非线性函数');实验七RBF神经网络的构建与使用实验内容2:➢观测改变扩展参数的
影响➢扩展参数(分布密度)设置为x0.1、0.5、0.8➢观测效果实验七RBF神经网络的构建与使用实验内容3:➢观测隐含层神经元最大个数改变的影响➢隐含层神经元的个数的最大值:1个、5个、10个、30个实验七RBF神经网络的
构建与使用补充:➢与BP神经网络的比较演示程序%%本函数演示BP网络和RBF网络对函数的逼近效果%%下面为用BP神经网络逼近函数%输入样本P=0:0.2:4;T=exp(-P).*sin(P);%创建一个BP神经网络,每一个输入向量的取值范围为[-1
,1],隐含层有21个神经元,%输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为logsig,%训练函数为梯度下降函数,即2.3.2节中所描述的标准学习算法。%可改变隐含层神经元个数为2、8、10、20测试网络性能net=newff(
[-11],[21,1],{'tansig','tansig'},'traingd');%可以改变训练步数为3000、5000、10000来查看网络的训练结果net.trainParam.epochs=50
0;%目标误差设为0.01net.trainParam.goal=0.01;%设置学习速率为0.1演示程序LP.lr=0.1;net=train(net,P,T);%有-------标记间的部分为拟合函数时的程序,有+++++++++
++标记间的部分为测试时的程序%-----------------------------y=sim(net,P);subplot(2,1,1)hndl1=plot(P,y);%设置线宽为2set(hndl1,'linewidth',2);%设
置线的颜色为红色set(hndl1,'color','red');holdon演示程序hndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('B
P神经网络逼近函数');%%下面为BRF神经网络对函数的逼近%建立一个径向基神经网络,对非线性函数进行逼近,并作出网络的逼近误差曲线。%%输入从0开始变化到4,每次变化幅度为0.1p=0:0.2:4;t=exp(-p).*sin(p);%建立一个目标误差为0,径向基函数的分布密
度为0.5,隐含层神经元个数的最大值为21,每%增加5个神经元显示一次结果net=newrb(p,t,0,0.5,21,5);演示程序ysim=sim(net,p);subplot(2,1,1)hndl1=plot(p,ysim);%设置线宽为2
set(hndl1,'linewidth',2);%设置线的颜色为红色set(hndl1,'color','red');holdon%因原函数与逼近函数重合,要看到两个图像y应该加一个小的偏移%
hndl2=plot(p,t+0.01);hndl2=plot(p,t);set(hndl2,'linewidth',2);%设置图形标题title('RBF神经网络逼近函数');实验七RBF神经网络的构建与使用思考题
1、实验中构建的RBF神经网络的合适的扩展参数在什么范围内?2、实验中构建的RBF神经网络的合适的隐含层神经元的个数最大值在什么范围内?谢谢!实验八SOM神经网络的构建与使用讲解实验八SOM神经网络的构建与使用实验八SOM神经
网络的构建与使用使用SOM神经网络对指定数据进行聚类实验八SOM神经网络的构建与使用存在的问题1、单值向量与下标向量的转换2、竞争层的网络拓扑结构3、聚类结果的显示4、竞争层神经元的数量实验八SOM神经网络的构建与使用实验内容1➢对指定数据进行聚类并测试实验八SOM神
经网络的构建与使用实验内容2:➢单值向量与下标向量的转换➢结果显示实验八SOM神经网络的构建与使用vec2ind()➢功能将单值向量组变换成下标向量➢格式ind=vec2ind(vec)➢说明式中,vec为m行n列的向量矩阵x,x中的每个列向量i,除包含一个
1外,其余元素均为0,ind为n个元素值为1所在的行下标值构成的一个行向量。实验八SOM神经网络的构建与使用C=[1112222111](1,1)1(1,2)1(1,3)1(2,4)1(2,5)1(2,6)1(2,7)1(1,8)1
(1,9)1(1,10)111100001110001111000实验八SOM神经网络的构建与使用实验内容3:➢观测竞争层神经元个数改变的影响➢隐含层神经元的布置:[35]、[45]、[58]演示程序1%%clcclearcloseall%
建立一个自组织神经网络对上述数据分类,%测试训练后的自组织神经网络的性能,判断其属于哪个类别。P=[-6-4-2-4-60-4-64-6;02-220-220-20];%创建一个自组织神经网络,[01;01]表示输入数据的取值范围在[0,1]之间,%[3,4]表示竞争层组织结构为
34,其余参数取默认值。演示程序1%竞争层也可以选取下面布局形式:[35]、[45]、[58],拓扑结构有gridtop,hextop,randtopnet=newsom([01;01],[58]);net.trainParam.epochs=100;net=init(n
et);net=train(net,P);y=sim(net,P)%pausey=vec2ind(y)演示程序1%pause%获取训练后的自组织神经网络的权值w1=net.IW{1,1};%
绘出训练后自组织神经网络的权值分布图plotsom(w1,net.layers{1}.distances);q=1:1:10;plot(q,y,'bd','MarkerFaceColor','b',
'MarkerSize',10)演示程序1holdon%输入测试数据p=[-6;0];%对网络进行测试y_test=sim(net,p);%将测试数据所得到的将单值向量组变换成下标向量y_test=vec2ind
(y_test);r=1;plot(r,y_test,'ro','MarkerFaceColor','r','MarkerSize',10)实验八SOM神经网络的构建与使用思考题1、实验中构建的SOM神经网络合适的竞争
层神经元布局中哪种?2、构建的SOM神经网络每一次运行的结果是不是都一样?谢谢!实验九Elman神经网络实验程序%根据预测方法得到输入向量和目标向量P=[0.44130.47070.69530.81330.43790.46770.69810.80020.45170.472
50.70060.8201;0.43790.46770.69810.80020.45170.47250.70060.82010.45570.47900.70190.8211;0.45170.47250.70060.82010.45570.47900.70190.82110.46010.4811
0.71010.8298;]';T=[0.45570.47900.70190.8211;0.46010.48110.71010.8298;0.46120.48450.71880.8312]';%输入向量的取值范围为[01],用threshold来标记threshol
d=[01;01;01;01;01;01;01;01;01;01;01;01];%创建一个Elman神经网络,隐含层的神经元个数为17个,4个输出层神经元,隐含层激活函%数为tansig,输出层激活
函数为purelinnet=newelm(threshold,[17,4],{'tansig','logsig'},'trainlm');net.trainParam.epochs=3000;net.trainParam.goal=0.01;LP.lr=0.1;net=train(n
et,P,T);%输入测试数据P_test=[0.45570.47900.70190.82110.46010.48110.71010.82980.46120.48450.71880.8312]';T_test=[0.46150
.48910.72010.8330]';y=sim(net,P_test)%在测试数据下,计算网络的输出和实际目标向量之间的差值error=y-T_test;%在坐标平面上画出差值曲线plot(1:4,error,'-');figure%
%测试数据的目标数据与预测数据的关系图plot(y,T_test,'r--');holdonx=0:0.2:1;u=0:0.2:1;plot(x,u,'b-')