//由于大论文需要,将学习神经网络知识,总结。
神经网络学习
1.1、BP神经网络
-
归一化方法
最大最小法
平均数方差法
-
隐藏节点数
最佳隐含层节点数选择可参考如下公式 :
l<n-1;
式中,n 为输入层节点数以为隐含层节点数; m 为输出层节点数; a 为 0~ 10 之间的常数。在实际问题中,隐含层节点数的选择首先是参考公式来确定节点数的大概范围,然后用试凑法确定最佳的节点数。 -
训练过程中权值和阀值调整
附加动量方法
-
学习率修改方法
概念:BP 神经网络学习率平的取值在〔0,1 ] 之间,学习率?越大,对权值的修改越大,网络学习速度越快。但过大的学习速率 q 将使权值学习过程产生震苦奋,过小的学习概率使网络收敛过慢,权值难以趋于稳定。变学习率方法是指学习概率守在 BP 神经网络进化初期较大,网络收敛迅速,随着学习过程的进行,学习率不断减小 , 网络趋于稳定.变学习率计算公式为
式中 ,市max 为最大学习率;min为最小学习率 ; t.max为最大选代次数;t 为当前迭代次数 。
1.2、BP神经网络的非线性系统建模
- BP神经网络工具箱
所述为MATLAB库,提供神经网络函数
此章节,通过设置BP网络,拟合非线性函数,y=x12+x22
设置输入,2个节点,隐藏5个,输出1个。
-
多隐层和单隐层
BP 神经网络由输入层、隐含层和输出层组成,隐含层根据层数又可以分为单隐含层和多隐含层。多隐含层由多个单隐含层组成,同单隐含层相比,多隐含层泛化能力强、预测精度高 ,但是训练时间较长。隐含层层数的选择要从网络精度和训练时间上综合考虑,对于较简单的映射关系,在网络精度达到要求的情况下,可以选择单隐含层,以求加快速度;对于复杂的映射关系,则可以选择多隐含层 ,以期提高网络的预测精度 -
隐含层节点数
BP 神 经网络构建时应注意隐含层节点数的选择,如果隐含层含节点数太少, BP 神经 网络不能建立复杂的映射关系,网络预测误差较大 。 但是如果节点数过多,网络学习时间增加,并且可能出现“过拟合”现象,就是训练样本预测准确,但是其他样本预测误差较大 。 -
训练数据的影响
神经网络预测的准确性和训练数据的多少有较大的关系,尤其对于一个多输入多输出的网络,如果缺乏足够多的网络训练数据,网络预测值可能存在较大的误差.
数据越多,训练的程序越好,预测就会更准确。
- 节点转移函数
节点转移函数,即激活函数,是将上一层节点值传递到下一节点的方法,常用的激活函数有:
其中,从输入层到隐藏层,隐藏层到输出层,都需要经过激活函数传递。
例如,如果输入到隐藏层传递使用purelin函数,则输入多少,隐藏节点也取多少。
隐含层和输出层函数的选择对 BP 神经网络预测精度有较大影响。
一般隐含层节点转移函数选用 logsig 函数或 tansig 函数,输出层节点转移函数选用 tansig 或pureJin 函数, - 复杂系统拟合
对复杂系统的拟合能力由局限性,其有一定幅变限制,对一些跳变过大的系统,不能正确拟合。(个人认为)
1.3、遗传算法优化神经网络
- 算法原理
遗传算法优化 BP 神经网络分为 BP 神经网络结构确定、遗传算法优化和 BP 神经网络预测 3 个部分。
首先,确定网络结构,以确定遗传算法个体长度。
通过迭代找到最优个体,对网络的各个权值和阀值进行赋值。
通过测试集,产生输出结果。
本案例中,由于拟合非线性函数有 2 个输入参数、 1 个输出参数,所以设置的 BP 神经网络结构为 2-5-1 ,即输入层有 2 个节点,隐含层有 5 个节点,输出层有 1 个节点,共有 2 × 5+5 × 1 = 15 个权值, 5 + 1=6 个阀值,所以遗传算法个体编码长度为 15 + 6=21 。
其中,遗传算法的适应度函数是,根据个体得到BP网络的初始化阀值和权值,进行训练,然后预测。预测得到的n个节点的误差和,为其适应度。
即个体所带的初始值,得到的网络,最终预测误差越小,这个个体越好。