神经网络数学建模工作室——浅尝神经网络浅尝•神经网络基础知识•常用函数介绍•案例——蠓虫分类神经网络基础知识构成:大量简单的基本元件——神经元相互连接工作原理:模拟生物的神经处理信息的方式功能:进行信息的并行处理和非线性转化特点:比较轻松地实现非线性映射过程具有大规模的计算能力医学:疾病识别图像:识别、去噪、增强、配准、融合金融:股票和有价证券的预测分析、资本收益的预测和分析、风险管理、信用评估等等应用范围神经网络结构图输入层输出层中间层树突细胞核细胞体轴突突触神经末梢生物神经元结构:神经元结构模型x1x2xjx3xniyiijxj为输入信号,为阈值,表示与神经元xj连接的权值yi表示输出值iij传递函数阈值型线性型S型0ix0ix2xxi1xxi21xxxi01)(xf01)(baxxfii2)(11)(cxiiexf神经网络的互连模式神经元分层排列,分别组成输入层、中间层(也叫隐含层,可以由若干层组成)和输出层。前向网络:输入层输出层中间层特点:每层只接受前一层的信息,没有反馈。如:感知器网络和BP神经网络有反馈的前向神经网络:特点:输出层对输入层有反馈信息。如:认知机和回归BP网络。层内有互相结合的前向网络:特点:可以实现同一层内神经元之间的横向抑制或兴奋作用相互结合型网络:特点:任意两个神经元之间都可能有联系BP神经网络多层前馈神经网络,信号向前传播,误差向后传播。输入层输出层中间层ijk输入层输出层中间层ijkjikjixpijiijxu1)(jjufv中间层:输入输出输入层输出层中间层ijkjikjix输出层:输入输出njkjjkvU1)(kkUfVnjkjpijiikxfU11)))((())))((((11njkjpijiikxffV输入层输出层中间层ijkjikjix思路:1、触角长和翼长作为输入信息,分别记为x1,x2。目标输出:(0,1)、(1,0)。Af类记为(1,0),Apf类记为(0,1)。输入层输出层中间层ijkjikjix10))))((((11或njkjpijiikxffV输入层输出层中间层ijkjikjix2、通过已知样本训练出合适的权值使输出为(0,1)或(1,0)。kjji、3、将待区分的蠓虫数据输入网络,求值。权值求法:向后传播法理想输出Af类(1,0),Apf类(0,1)记为{Tis}则有误差:sinjkjpijiisisiksixffTVTE、、)))))(((((21)(21)(112使得E(w)最小的作为所需的权值kjji、)(E0梯度下降法传递函数(激活函数)logsig(S型函数):xexf212)(MATLAB按此函数计算:调用格式:A=logsig(N)如:n=-10:0.1:10a=logsig(n)plot(n,a)gridon-10-8-6-4-2024681000.10.20.30.40.50.60.70.80.91图形如下:tansig(双曲正切S型传递函数):调用格式:A=tansig(n)112)(2nexf如:n=-10:0.1:10a=tansig(n)plot(n,a)gridon如右图所示-10-8-6-4-20246810-1-0.8-0.6-0.4-0.200.20.40.60.81newff创建一个BP网络,其调用格式为:net=newffnet=newff(PR,[S1S2…SN1],{TF1TF2…TFN1},BTF,BLF,PF)其中,net=newff:用于在对话框中创建一个BP网络PR:由每组输入(共有R组输入)元素的最大值和最小值组成的R×2维的矩阵;Si:第i层的长度,共计N1层TFi:第i层的传递函数,默认为“tansig”BTF:BP网络的训练函数,默认为“trainlm”;BLF:权值和阈值的BP学习算法,默认为“learngdm”PF:网络的性能函数,默认为“mse”常用函数train用于对神经网络进行训练。调用格式为:[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai)其中,NET:待训练的神经网络;P:网络的输入信号;T:网络的目标,默认值为0;Pi:初始的输入延迟,默认为0;Ai:初始的层次延迟,默认为0;net:函数返回值,训练后的神经网络;tr:函数返回值,训练记录(包括步数和性能);Y:函数返回值,神经网络的输出信号;E:函数返回值,神经网络的误差;Pf:函数返回值,最终输入延迟;Af:函数返回值,最终层延迟。神经网络仿真函数sim调用格式为:[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T)其中,Y:函数返回值,网络输出;Pf:函数返回值,最终输出延迟;Af:函数返回值,最终的层延迟;E:函数返回值,网络误差;perf:函数返回值,网络性能;net:待仿真的神经网络;P:网络输入;Pi:初始输入延迟,默认为0;Ai:初始的层延迟,默认为0;T:网络目标,默认为0.clearp1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.001.28,2.00;1.30,1.96];p=[p1;p2]';pr=minmax(p);goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')net=newff(pr,[3,2],{'logsig','logsig'});net=train(net,p,goal);x=[1.241.80;1.281.84;1.402.04]';y0=sim(net,p)y=sim(net,x)Thanks!