您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > Matlab神经网络工具箱学习之一
MATLAB神经网络工具箱学习之一1、神经网络设计的流程2、神经网络设计四个层次3、神经网络模型4、神经网络结构5、创建神经网络对象6、配置神经网络的输入输出7、理解神经网络工具箱的数据结构8、神经网络训练1、神经网络设计的流程神经网络设计可以分为七个步骤:a.采集数据b.创建网络c.配置网络参数d.初始化权重和偏置e.训练神经网络f.验证网络g.使用网络2、神经网络设计四个层次这里的层次主要只Matlab的神经网络工具箱和相关命令a.第一层是“GettingStartedwithNeuralNetworkToolbox”里面提到的GUI,可以方便、快速的解决拟合、模式识别、聚类、时序分析等问题。b.第二层是使用命令行输入。c.第三层是工具箱的个性化配置,根据需求选择参数。d.第四层是自己修改.M文件,以适应需要解决的问题。3、神经网络模型基本神经元神经网络的最基本结构是神经元。下图是单个神经元的图示。一个神经元包含了输入p,此输入的权重w,外加偏置b,这三项元素组成了转移方程f的输入,经过f的计算,得到输出a。网络的权重方程通常是取w和p的乘积,有时也使用|w-p|(参见helpnnweight)。网络的输入方程n一般是各项wp的累加和,有时也用乘积(参见helpnnnetinput)。神经网络的训练目的就是迭代计算,每次调整w和b的值,使得网络的输出结果和目标结果的误差最小。转移方程常用的转移方程有两种,线性转移方程和Log-sigmoid转移方程。前一种多用于网络最后一层(输出层),而后者多用于网络的中间层(参见helpnntransfer)。神经元的向量输入通常每个节点的输入p会是一个多维(N维)的向量,所以每个节点的权重也是N维的向量w,偏置b还是一个常数。转移方程的输入就可以写为n=w*p+b,n仍旧是一个标量。4、神经网络结构神经网络按照结构可以分为单层网络和多层网络,每一层网络又可以包含多个节点(神经元),最后构成一个完整的模型。一层网络下图是一层网络的模型图,输入有R个元素,每个元素Pr是一个向量。中间层有S个节点(神经元),Wsr表示第S个节点对第r个输入的权重。bs表示第s个节点的偏置。权重W就变成了一个SxR的矩阵。P是RxN的矩阵,b是一个S维的向量。多层网络多层网络类似于是多级运算放大电路,把多个一层网络串联。每一层都有一个权重矩阵W和偏置向量b。上一层的输出作为下一层的输入。5、创建神经网络对象创建一个简单的网络模型可以用feedforwardnet()函数net=feedforwardnet这时会显示很多的模型参数。dimensions表示整个网络的结构。connections保存网络各节点之间的连接状态,0表示没有连接,1表示有连接。layerConnect矩阵是各个网络层之间的连接,行表示目标层,列表示源层。关键的几个参数是inputs,layers,outputs,biases,inputWeightsandlayerWeights.6、配置神经网络的输入输出网络的输入输出配置可以用configure()函数。net1=configure(net,input,target_output);%%anexampleofBPnetworkloaddatainputoutput%shuffleindexk=rand(1,2000);[m,n]=sort(k);%preparefortrainingdata1900outof2000input_train=input(n(1:1900),:)';output_train=output(n(1:1900));%preparefortestdata100outof2000input_test=input(n(1901:2000),:)';output_test=output(n(1901:2000));%normalizetrainingandtestdatato[-1,1][inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%initialNNmodelandsetparametersnet=newff(inputn,outputn,5);net.trainParam.epochs=100;%iterationtimesnet.trainParam.lr=0.1;%learningratenet.trainParam.goal=0.00004;net=train(net,inputn,outputn);%normalizetestdatainputn_test=mapminmax('apply',input_test,inputps);%predictoutputan=sim(net,inputn_test);%de-normalizetestdataBPoutput=mapminmax('reverse',an,outputps);%plotpredictoutputfigure(1)plot(BPoutput,':og')holdonplot(output_test,'-*');legend('testoutput','expectedoutput')title('BPneuralnetworktestoutput','fontsize',12)ylabel('output','fontsize',12)xlabel('sample','fontsize',12)%ploterrorserror=BPoutput-output_test;figure(2)plot(error,'-*')title('BPneuralnetworkerror','fontsize',12)ylabel('error','fontsize',12)xlabel('samole','fontsize',12)
本文标题:Matlab神经网络工具箱学习之一
链接地址:https://www.777doc.com/doc-6072245 .html