建模算法(六)——神经网络模型
(一)神经网络简介
主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦
(二)人工神经网络模型
一、基本单元的三个基本要素
1、一组连接(输入),上面含有连接强度(权值)。
2、一个求和单元
3、一个非线性激活函数,起到将非线性映射作用,并将神经元输出幅度限制在一定范围内(在(0,1)或者(-1,1))
4、还有一个阀值(偏置)
归结如下:
PS:也可以选择将偏置(阀值)加入到线性求和里面
5、激活函数的选择
二、网络结构及工作方式
1、前馈型网络
主要用于模式识别和函数逼近。
2、反馈性网络
用作各种联想储存器;用于求解最优化问题。
(三)蠓虫问题与多层前馈网络
一、蠓虫分类问题
二、多层前馈网络
1、输入层2个,分别表示触角和翅膀的长度,只负责输入
2、处理层有3个(通过实验或者某些经验来确定),有负责计算
3、输出层有2个,有负责计算
然后我们要通过已有的数据来确定权重,所用的方法为向后传播算法
三、向后传播算法
然后就是求解一个非线性规划问题,可以使用前面章节所使用的方法来求解。
四、蠓虫分类问题的求解
clear; p1=[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.00 1.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.trainParam.show=10; net.trainParam.lr=0.05; net.trainParam.goal=1e-10; net.trainParam.epochs=50000; net=train(net,p,goal); x=[1.24 1.80 1.28 1.84 1.40 2.04]'; y0=sim(net,p) y=sim(net,x)