基于遗传算法的BP神经网络优化
1 前言
BP神经网络是人工神经网络中应用最广泛的算法,但是也存在一些缺陷,例如学习收敛速度太慢,不能保证收敛到全局最小点、网络结构不易确定。另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法对神经网络进行优化。
注:此篇文章为个人学习笔记总结,如有资源冒犯,请与我联系,我将立即进行处理,谢谢
2 思路与步骤
遗传算法优化BP神经网络主要分为三步:BP神经网络结构的确定、遗传算法优化权值和阈值、BP神经网络训练与预测。
2.1 BP神经网络结构的确定
网络创建
BP网络结构的确定有以下两条比较重要的指导原则。
1 .对于一般的模式识别问题,三层网络可以很好地解决问题
2 .在三层网络中,隐含层神经网络个数n2和输入层神经元个数n1之间有近似关系:n2=2n1+1
也可用其余的关系计算隐含层个数,如下:
(1) m=√(n+l) + a
m为隐含层个数,n为输入层节点数,l为输出层节点数,a为1-10之间的常数
(2) m=√(nl)
m为隐含层个数,n为输入层节点数,l为输出层节点数
(3) m=log2(n)
m为隐含层个数,n为输入层节点数传递函数
logsig 输入值为任意值,输出值为0~1之间
tansig 输入值为任意值,输出值为-1~1之间
2.2遗传算法
基本要素:染色体编码方式、适应度函数、遗传操作、运行参数
其中运行参数是遗传算法初始化时确定的参数,主要包括:群体大小M、遗传代数G、交叉概率Pt、变异概率Pm
种群初始化
种群中每个个体都包含一个网络所有的权值和阈值
编码时可采用实数编码或者二进制编码。
适应度函数
可以选择预测样本的预测值与期望值的误差矩阵的范数作为目标函数的输出
选择
轮盘赌算法
轮盘赌算法又称比例算法,各个个体被选中的概率与其适应度大小成正比
(1)计算出种群中每个个体的适应度值f(i=1、2、3、……、M),M为种群大小
(2)计算机出每个个体被遗传到下一代群体中的概率
(3)计算出每个个体的累计概率
根据得到的累计概率结合自身的要求选择所需的个体锦标赛算法
从群体中随机选择k个个体,将其中适应度最高的个体保存到下一代。这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止。参数k为竞赛规模。 交叉
交叉概率是用来确定两个染色体进行局部的交换以产生两个新的子代的概率,一般取值为0.25~1.00。实验表明交叉概率通常取值为0.7左右是理想的。变异
通常变异概率为0.001左右。
3 结语
遗传算法优化BP神经网络的目的是通过遗传算法得到更好的网络初始权值与阈值,其基本思想是用个体代表网络的初始权值和阈值,把预测样本的BP神经网络的预测误差的范数作为目标函数的输出,进而计算该个体的适应度值,通过选择、交叉、变异操作寻找最优个体,即最优的BP神经网络初始权值和阈值。
一个较好的遗传算法优化BP神经网络的案例可见《matlab智能算法30个案例分析》