建模快乐;
今天讲解一下神经网络算法,我们中文博大精深,从这个东西的名字就能感受到这个事物的杀气,我们从名字入手,首先想到是什么,当然是我们头脑里面的各种神经网络,各种神经细胞,各种突触,感受器是吧,我们的算法,也是同样的道理,利用的是什么,利用的就是各种突触之间,进行层次传递,然后,传递之间进行不断的修正,其实这个和迭代效果差不多,但是呢,这里在一次迭代过程中,加入了很多权重,很像神经网络,其实本质上,也没有什么很复杂的东西,这个和回归分析什么的,都是一个目的,就是让这个误差达到最小,我们学习这个东西,头脑里,一定要有一个概念,实际数据,理想数据,误差,这个就一定要有意识,把我们的世界分成两个,一个是理想世界,一个是观察世界,我们知道,理想是不存在的,所以,误差是永远存在的,我们的目的就是,尽量的让这个误差最小,这就是我们的目的,而误差最小,怎么也离不开方差,最小二乘法的思想!
使用:我们学习一个东西,当然是拿来使用的,而不是拿来好看的,那么神经网络到底是干什么的,很简单,进行智能识别的,比如说,给电脑一个动物的照片,电脑可以告诉你这个是猪,还是狗;你给他一段音乐,他可以告诉你,这个是哪个乐器演奏的,就是这样, 那么再扩大一点呢?
那么地方就多了,比如说:模式识别,图像处理,智能控制,组合优化,金融预测(涨还是跌),机器人,等等,提出了四十多种神经网络,然后,我们今天只讲一个简单的,bp神经网络;
概念: 好的,我们进入整体,神经网络算法到底是什么呢,这个就必须要数形结合,把图像放上来,一切就变得很清晰了;
整体结构:输入,求和,激活函数;
整体思想:通过构建一个基本的网络框架,给予数据的基本范围,输入训练数据,进行迭代,找到误差最小的权重,然后开始预测;这就是基本的思想;那么这个权重的取值过程,就很深入了,需要我们的数学知识;
w 就是我们的权重 ,x就是我们的输入数据,而y就是我们的输出数据,一般输出的是什么,是我们的判断,因为我们的神经网络到底干什么的,是拿来进行判断的;那么输出结果就是,这个东西,是什么,是吧,那么就是1|0,这样是把,所以输出比较简单,;重点就是,这个w是如何确定的,那么这个激活函数就什么,阈值是什么,通过字面意思,我们猜一猜,可以知道,超过这个阈值,我们就开启激活函数,激活了,这个东西就成立,就返回1;
好的,这个是神经网络的大概思想,我们现在开始进入bp神经网络:
上图:
BP网络就是,这种网状,一个x1进入,然后形成三个,因为隐含层有三个,所以,求和函数,就是把这个分散的数据,再次聚合在一起,各个数据,结果不同的权重,就形成了完全不一样的效果,然后去瞧一瞧阈值,如果你力度过,那么就有幸激活,激活函数;
原理:激活函数几个常见的:purelin 线性传递函数
logsig 对数s形传递函数
。。。
这些都是基于matlab的;
然和呢,
实现:
clear
clc
%第一个种类
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; %每隔10步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
net.trainParam.goal=1e-10; %训练目标最小误差1e-10
net.trainParam.epochs=50000; %允许最大训练步数50000步
%开始训练
[net,tr]=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)
如何去使用:newff神经网络模型建立,这里四个参数,第一个是属性的范围;第二个是神经网络的层次,后面的就是激活函数的选择;根据你的实例离散类型进行选择;
然后设置这个神经网络的各个参数,然后把训练数据导入,train 开始训练,sim 开始预测;
参考:《数学建模算法大全》
参考网址:https://blog.youkuaiyun.com/ACdreamers/article/details/44657439