神经网络实用教程讲解与源码专家讲座_第1页
神经网络实用教程讲解与源码专家讲座_第2页
神经网络实用教程讲解与源码专家讲座_第3页
神经网络实用教程讲解与源码专家讲座_第4页
神经网络实用教程讲解与源码专家讲座_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验二Matlab快速入门讲解神经网络实用教程讲解与源码专家讲座第1页试验二

MATLAB快速入门

神经网络实用教程讲解与源码专家讲座第2页试验二

MATLAB快速入门3、使用MATLAB中条件语句和循环语句,编程实现下面功效:从1累加到20,即:1+2+3+4+…+20,当累加和超出30时,跳出FOR循环,在命令窗口中输出此时累加次数和累加值。

神经网络实用教程讲解与源码专家讲座第3页演示程序sum=0;fori=1:20sum=sum+i;ifsum>30%break;disp('sumis30')fprintf('%2d,sum')x=1continue;endendisum神经网络实用教程讲解与源码专家讲座第4页试验二

MATLAB快速入门4、神经网络惯用激活函数有S型、对数S型、线性型和硬限幅等,在MATLAB中有tansig()、logsig()、purelin()和hardlim()四个函数对应,请使用MATLAB编程,按下画所表示图形,画出四个激活函数图形。

神经网络实用教程讲解与源码专家讲座第5页演示程序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');gridon神经网络实用教程讲解与源码专家讲座第6页%设置第二个图形绘图位置为第一行第二列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);神经网络实用教程讲解与源码专家讲座第7页%设置图形线条宽度set(hnd3,'linewidth',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('hardlim');gridon神经网络实用教程讲解与源码专家讲座第8页谢谢!神经网络实用教程讲解与源码专家讲座第9页试验三单层感知器构建与使用讲解神经网络实用教程讲解与源码专家讲座第10页试验三单层感知器构建与使用神经网络实用教程讲解与源码专家讲座第11页试验三单层感知器构建与使用

1、已经对逻辑与单层感知器实现权值调整计算过程进行了讲解,请使用MATLAB语言编写程序,实现单层感知器对逻辑与进行分类。

神经网络实用教程讲解与源码专家讲座第12页演示程序1%试验三第1题演示程序%设计并训练一个对与运算进行分类单层感知器%神经网络并输出分类结果。%给定训练样本数据P=[0011;0101];%给定样本数据所对应类别,用1和0来表示两种类别T=[0001];%创建一个有两个输入、样本数据取值范围都在[0,1]之间,%而且网络只有一个神经元感知器神经网络net=newp([01;01],1); %设置网络最大训练次数为20次,即训练20次后结束训练net.trainParam.epochs=20;%使用训练函数对创建网络进行训练net=train(net,P,T);神经网络实用教程讲解与源码专家讲座第13页演示程序1%对训练后网络进行仿真,即依据训练后网络和样本数据%给出输出a=net.b{1};b=net.iw{1};Y=sim(net,P);%计算网络平均绝对误差,表示网络错误分类E1=mae(Y-T);%给定测试数据,检测训练好神经网络性能Q=[1010;0110];%使用测试数据,对网络进行仿真,仿真输出即为分类结果Y1=sim(net,Q);%创建一个新绘图窗口神经网络实用教程讲解与源码专家讲座第14页演示程序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)神经网络实用教程讲解与源码专家讲座第15页试验三单层感知器构建与使用2、现需要对一组数据进行分类,设样本数据输入数据为P=[-0.4-0.50.6-0.1;0.900.10.5],其期望值为T=[1101],请构建一个单层感知器对数据进行分类,并用测试数据Q=[0.60.9-0.10.7;-0.1-0.50.5-0.3]对构建好神经网络进行测试,并评价其性能.

神经网络实用教程讲解与源码专家讲座第16页演示程序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;神经网络实用教程讲解与源码专家讲座第17页演示程序2%使用训练函数对创建网络进行训练net=train(net,P,T);%对训练后网络进行仿真,即依据训练后网络和样本数据给出输出a=net.b{1}b=net.iw{1}Y=sim(net,P);%计算网络平均绝对误差,表示网络错误分类E1=mae(Y-T)%给定测试数据,检测训练好神经网络性能Q=[0.60.9-0.10.7;-0.1-0.50.5-0.3];%使用测试数据,对网络进行仿真,仿真输出即为分类结果神经网络实用教程讲解与源码专家讲座第18页演示程序2Y1=sim(net,Q);%创建一个新绘图窗口figure;%设置绘图范围,在坐标图中绘制测试数据点,并依据数据所对应类别用约定符号画出

v=[-12-12];plotpv(Q,Y1,v);%利用权值和阈值,在坐标图中绘制分类线

plotpc(net.iw{1},net.b{1})%为更清楚看到分类,能够给阈值加一个小偏移量%plotpc(net.iw{1},net.b{1}+0.1)神经网络实用教程讲解与源码专家讲座第19页试验三单层感知器构建与使用3、有下面一组样本数据:输入数据为P=[0001;1011],目标值为[0110],能否使用单层感知器对其进行正确分类,请编写MATLAB程序验证,并对结果进行分析?

神经网络实用教程讲解与源码专家讲座第20页演示程序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);神经网络实用教程讲解与源码专家讲座第21页演示程序3%对训练后网络进行仿真,即依据训练后网络和样本数据给出输出a=net.b{1}b=net.iw{1}Y=sim(net,P);%计算网络平均绝对误差,表示网络错误分类E1=mae(Y-T)%给定测试数据,检测训练好神经网络性能Q=[0101;0011];%使用测试数据,对网络进行仿真,仿真输出即为分类结果神经网络实用教程讲解与源码专家讲座第22页演示程序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)神经网络实用教程讲解与源码专家讲座第23页谢谢!神经网络实用教程讲解与源码专家讲座第24页试验四线性神经网络构建与使用讲解神经网络实用教程讲解与源码专家讲座第25页试验四

线性神经网络构建与使用

神经网络实用教程讲解与源码专家讲座第26页试验四

线性神经网络构建与使用

1、有21组单输入矢量和相对应目标矢量,试设计一个线性神经网络来拟合这对数组函数关系,并用测试数据进行测试。神经网络实用教程讲解与源码专家讲座第27页试验四

线性神经网络构建与使用

输入与目标数据以下:

输入数据: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

神经网络实用教程讲解与源码专家讲座第28页演示程序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=train(net,P,T);神经网络实用教程讲解与源码专家讲座第29页演示程序1%有-------标识间部分为拟合函数时程序,有+++++++++++标识间部分为测试时程序%-----------------------------%y=sim(net,P);%%求解网络均方误差值%E=mse(y-T);%%获取绘图句柄%hndl1=plot(P,y);%%设置线宽为2%set(hndl1,'linewidth',2);%%设置线颜色为红色%set(hndl1,'color','red');%holdon%hndl2=plot(P,T);神经网络实用教程讲解与源码专家讲座第30页演示程序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','MarkerFaceColor','g','MarkerSize',12);%+++++++++++++++++++++++++++神经网络实用教程讲解与源码专家讲座第31页试验四

线性神经网络构建与使用

思索题

1、一线性神经网络输入为P=[1.1-1.3],目标为T=[0.61];设权值和偏置初始值为0,学习速率为0.01,请计算出此网络前二次权值和偏置值?神经网络实用教程讲解与源码专家讲座第32页试验四

线性神经网络构建与使用

权值调整公式(见《神经网络实用教程》p27)

神经网络实用教程讲解与源码专家讲座第33页试验四

线性神经网络构建与使用第一次调整实际输出:神经网络实用教程讲解与源码专家讲座第34页试验四

线性神经网络构建与使用第一次调整实际输出:神经网络实用教程讲解与源码专家讲座第35页试验四

线性神经网络构建与使用思索题2、用MATLAB编程实现第1题,要求输出每一次迭代后权值和偏置。

神经网络实用教程讲解与源码专家讲座第36页演示程序2%线性神经网络拟合曲线输出权值演示程序%输入样本数NPATS=2;%输入样本值矩阵Patterns=[1.1-1.3];%输出目标值Target=[0.61];%学习率LearnRate=0.01;神经网络实用教程讲解与源码专家讲座第37页演示程序2%将偏置看作输入第一个分量,组成网络输入值Inputs=[ones(1,2);Patterns];%权值初始化Weights=[00];%循环计算权值和偏置改变值fori=1:3%计算神经元输出Result=(Weights*Inputs);神经网络实用教程讲解与源码专家讲座第38页演示程序2%判断实际输出与目标值是否相等,相等则结束迭代,不然进入下一轮迭代ifResult==Target,break,end%按LMS误差学习算法调整权值Weights=Weights+2*LearnRate*(Target-Result)*Inputs';%在显示器上输出权值编号其对应值fprintf('%2d.Weights=',i);disp(Weights);end神经网络实用教程讲解与源码专家讲座第39页谢谢!神经网络实用教程讲解与源码专家讲座第40页试验五BP神经网络构建与使用(一)讲解神经网络实用教程讲解与源码专家讲座第41页试验五BP神经网络构建与使用

神经网络实用教程讲解与源码专家讲座第42页试验五

BP神经网络构建与使用

1、有21组单输入矢量和相对应目标矢量,试设计一个线性神经网络来拟合这对数组函数关系,并用测试数据进行测试。神经网络实用教程讲解与源码专家讲座第43页试验五

BP神经网络构建与使用

存在问题1、激活函数选择

tansig定义域为负无穷到正无穷,值域为-1到1,logsig定义域为负无穷到正无穷,值域为0到12、结果怎样显示?

神经网络实用教程讲解与源码专家讲座第44页试验五

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]

测试数据为:P2=-1:0.025:1

神经网络实用教程讲解与源码专家讲座第45页BP演示程序%%本函数演示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'},'traingd');%能够改变训练步数为3000、5000、10000来查看网络训练结果net.trainParam.epochs=5000;%目标误差设为0.01net.trainParam.goal=0.01;神经网络实用教程讲解与源码专家讲座第46页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');holdonhndl2=plot(P,T);神经网络实用教程讲解与源码专家讲座第47页BP演示程序set(hndl2,'linewidth',2);%设置图形标题title('BP神经网络迫近非线性函数MATLAB实现');%设置图例legend('BP神经网络迫近非线性函数','原数据')%-----------------------------%从此处到标识为+++++++++++部分为测试时程序,测试用此部分程序替换-------------间程序%测试数据%测试%P2=-1:0.05:1;%ytest=sim(net,P2);%figure%hndl1=plot(P2,ytest);神经网络实用教程讲解与源码专家讲座第48页BP演示程序%%设置线宽为2%set(hndl1,'linewidth',2);%%设置线颜色为红色%set(hndl1,'color','red');%holdon%hndl2=plot(P,T);%set(hndl2,'linewidth',2);%%设置图形标题%title('BP神经网络迫近非线性函数MATLAB实现');%%设置图例%legend('BP神经网络迫近非线性函数','原数据')%+++++++++++++++++++++++++++++++神经网络实用教程讲解与源码专家讲座第49页线性网络演示程序%%本函数演示线性神经网络对非线性数据迫近效果%%下面为用线性神经网络迫近非线性数据演示程序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];%创建一个只有一个输出,输入延时为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;神经网络实用教程讲解与源码专家讲座第50页线性网络演示程序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');神经网络实用教程讲解与源码专家讲座第51页线性网络演示程序holdonhndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('线性神经网络迫近非线性函数MATLAB实现');%设置图例legend('线性神经网络迫近非线性函数','原线性数据')%------------------------------------------------%从此处到标识为+++++++++++部分为测试时程序,测试用此部分程序替换-------------间程序%测试数据%P2=-1:0.025:1;%ytest=sim(net,P2);%figure神经网络实用教程讲解与源码专家讲座第52页线性网络演示程序%获取绘图句柄%hndl1=plot(P2,ytest);%设置线宽为2%set(hndl1,'linewidth',2);%设置线颜色为红色%set(hndl1,'color','red');%holdon%hndl2=plot(P,T);%set(hndl2,'linewidth',2);%设置图形标题%title('线性神经网络迫近非线性函数MATLAB实现');%设置图例%legend('线性神经网络迫近非线性函数','原线性数据')%+++++++++++++++++++++++++++++++神经网络实用教程讲解与源码专家讲座第53页谢谢!神经网络实用教程讲解与源码专家讲座第54页试验六BP神经网络构建与使用(二)讲解神经网络实用教程讲解与源码专家讲座第55页试验六BP神经网络构建与使用(二)

神经网络实用教程讲解与源码专家讲座第56页试验六

BP神经网络构建与使用(二)

使用BP神经网络对正弦函数进行迫近神经网络实用教程讲解与源码专家讲座第57页试验六

BP神经网络构建与使用(二)存在问题1、激活函数选择2、训练次数确实定3、隐含层神经元个数确实定

神经网络实用教程讲解与源码专家讲座第58页试验六

BP神经网络构建与使用(二)试验内容1数据:输入样本数据:P=-2:0.1:2;期望目标数据:T=sin(2*P);测试数据:P=-2:0.05:2;

神经网络实用教程讲解与源码专家讲座第59页试验六

BP神经网络构建与使用(二)试验内容2:探测网络适当训练次数最大训练次数设置为3000、5000、10000

观察效果

神经网络实用教程讲解与源码专家讲座第60页试验六

BP神经网络构建与使用(二)试验内容3:探测适当隐含层神经元个数设置隐含层神经网络个数为2个、8个、10个、20个,比较效果

神经网络实用教程讲解与源码专家讲座第61页试验六

BP神经网络构建与使用(二)试验内容4:输入正弦函数改为sin(3*P)、sin(4*P)、sin(8*P)时

观察迫近效果

神经网络实用教程讲解与源码专家讲座第62页试验六

BP神经网络构建与使用(二)思索题1、试验中构建BP神经网络适当训练次数在什么范围内?2、试验中构建BP神经网络适当隐含层神经元个数在什么范围内?神经网络实用教程讲解与源码专家讲座第63页演示程序%%本函数演示BP网络对非线性数据迫近效果%%下面为用BP神经网络迫近非线性数据演示程序clcclearcloseall%输入样本P=-2:0.1:2;T=sin(4*P);%创建一个BP神经网络,每一个输入向量取值范围为[-1,1],隐含层有5个神经元,%输出层有一个神经元,隐含层激活函数为tansig,输出层激活函数为logsig,%训练函数为梯度下降函数,即2.3.2节中所描述标准学习算法。%可改变隐含层神经元个数为2、8、10、20测试网络性能net=newff([-11],[5,1],{'tansig','tansig'},'traingd');%能够改变训练步数为3000、5000、10000来查看网络训练结果net.trainParam.epochs=;神经网络实用教程讲解与源码专家讲座第64页演示程序%目标误差设为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,'linewidth',2);%设置线颜色为红色set(hndl1,'color','red');holdon神经网络实用教程讲解与源码专家讲座第65页演示程序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)神经网络实用教程讲解与源码专家讲座第66页演示程序hndl1=plot(P2,ytest);%设置线宽为2set(hndl1,'linewidth',2);%设置线颜色为红色set(hndl1,'color','red');holdonhndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('使用测试数据测试BP神经网络迫近非线性函数');%设置图例%legend('BP神经网络迫近非线性函数','原数据')%++++++++++++++++++++神经网络实用教程讲解与源码专家讲座第67页谢谢!神经网络实用教程讲解与源码专家讲座第68页试验七RBF神经网络构建与使用讲解神经网络实用教程讲解与源码专家讲座第69页试验七RBF神经网络构建与使用

神经网络实用教程讲解与源码专家讲座第70页试验七

RBF神经网络构建与使用

使用RBF神经网络对指定函数进行迫近神经网络实用教程讲解与源码专家讲座第71页试验七

RBF神经网络构建与使用存在问题1、点乘使用2、仿真输出与实际函数显示3、扩展参数确实定

4、基神经元个数确实定

神经网络实用教程讲解与源码专家讲座第72页试验七

RBF神经网络构建与使用试验内容1对下述函数迫近

神经网络实用教程讲解与源码专家讲座第73页演示程序%建立一个径向基神经网络,对非线性函数进行迫近,并作出网络迫近误差曲线。%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);神经网络实用教程讲解与源码专家讲座第74页演示程序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);神经网络实用教程讲解与源码专家讲座第75页演示程序%设置图形标题title('使用训练数据测试RBF神经网络迫近非线性函数');%%下面为使用测试数据对训练好神经网络效果进行测试xtest=0:0.01:4;%ttest=exp(-xtest).*sin(xtest);ytestsim=sim(net,xtest);subplot(2,1,2)hndl1=plot(xtest,ytestsim);神经网络实用教程讲解与源码专家讲座第76页演示程序%设置线宽为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神经网络迫近非线性函数');神经网络实用教程讲解与源码专家讲座第77页试验七

RBF神经网络构建与使用试验内容2:观察改变扩展参数影响扩展参数(分布密度)设置为x0.1、0.5、0.8

观察效果

神经网络实用教程讲解与源码专家讲座第78页试验七

RBF神经网络构建与使用试验内容3:观察隐含层神经元最大个数改变影响隐含层神经元个数最大值:1个、5个、10个、30个

神经网络实用教程讲解与源码专家讲座第79页试验七

RBF神经网络构建与使用补充:与BP神经网络比较

神经网络实用教程讲解与源码专家讲座第80页演示程序%%本函数演示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=500;%目标误差设为0.01net.trainParam.goal=0.01;%设置学习速率为0.1神经网络实用教程讲解与源码专家讲座第81页演示程序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神经网络实用教程讲解与源码专家讲座第82页演示程序hndl2=plot(P,T);set(hndl2,'linewidth',2);%设置图形标题title('BP神经网络迫近函数');%%下面为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);神经网络实用教程讲解与源码专家讲座第83页演示程序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神经网络迫近函数');神经网络实用教程讲解与源码专家讲座第84页试验七

RBF神经网络构建与使用思索题1、试验中构建RBF神经网络适当扩展参数在什么范围内?2、试验中构建RBF神经网络适当隐含层神经元个数最大值在什么范围内?神经网络实用教程讲解与源码专家讲座第85页谢谢!神经网络实用教程讲解与源码专家讲座第86页试验八SOM神经网络构建与使用讲解神经网络实用教程讲解与源码专家讲座第87页试验八SOM神经网络构建与使用

神经网络实用教程讲解与源码专家讲座第88页试验八

SOM神经网络构建与使用

使用SOM神经网络对指定数据进行聚类神经网络实用教程讲解与源码专家讲座第89页试验八

SOM神经网络构建与使用

存在问题1、单值向量与下标向量转换2、竞争层网络拓扑结构3、聚类结果显示

4、竞争层神经元数量

神经网络实用教程讲解与源码专家讲座第90页试验八

SOM神经网络构建与使用试验内容1对指定数据进行聚类并测试

神经网络实用教程讲解与源码专家讲座第91页试验八

SOM神经网络构建与使用

试验内容2:单值向量与下标向量转换结果显示神经网络实用教程讲解与源码专家讲座第92页试验八

SOM神经网络构建与使用vec2ind()功效将单值向量组变换成下标向量格式

ind=vec2ind(vec)说明式中,vec为m行n列向量矩阵x,x中每个列向量i,除包含一个1外,其余元素均为0,ind为n个元素值为1所在行下标值组成一个行向量。神经网络实用教程讲解与源码专家讲座第93页试验八

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神经网络实用教程讲解与源码专家讲座第94页试验八

SOM神经网络构建与使用试验内容3:观察竞争层神经元个数改变影响隐含层神经元布置:[35]、[45]、[58]

神经网络实用教程讲解与源码专家讲座第95页演示程序1%%clcclearcloseall%建立一个自组织神经网络对上述数据分类,%测试训练后自组织神经网络性能,判断其属于哪个类别。P=[-6-4-2-4-60-4-64-6;02-220-220-20];%创建一个自组织神经网络,[01;01]表示输入数据取值范围在[0,1]之间,%[3,4]表示竞争层组织结构为34,其余参数取默认值。神经网络实用教程讲解与源码专家讲座第96页演示程序1%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论