编辑: XR30273052 | 2019-07-15 |
1 - 应用 3:遗传算法优化 BP 神经网络――非线性函数拟合
1、案例背景 在工程应用中经常会遇到一些复杂的非线性系统, 这些系统状态方程复杂, 难以用数学 方法精确建模.
在这种情况下,可以建立 BP 神经网络表达这些非线性系统. 本案例拟合的非线性函数为
2 2
1 2 y x x = + 该函数的图形,如图 3-1 所示. 图3-1 非线性函数图形
2、模型建立 2.1 算法流程 遗传算法优化 BP 神经网络算法流程如图 3-2 所示. 遗传算法优化 BP 神经网络分为 BP 神经网络结构确定、遗传算法优化和 BP 神经网络预 测3个部分.其中,BP 神经网络结构确定部分根据拟合函数输入输出参数个数确定 BP 神经 网络结构,进而确定遗传算法个体长度.遗传算法优化使用遗传算法优化 BP 神经网络的权 值和阈值, 种群中的每个个体都包含了一个网络所有权值和阈值, 个体通过适应度函数计算 个体适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体.BP 神经 网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输 出. -
2 - 图3-2 算法流程 本案例中,由于拟合非线性函数有
2 个输入参数、1 个输出参数,所以设置的 BP 神经 网络结构为 2-5-1,即输入层有
2 个结点,中间层有
5 个结点,输出层有
1 个结点,共有
2 5
5 1
15 * + * = 个权值,5
1 6 + = 个阈值,所以遗传算法个体编码长度为15
6 21 + = .从 非线性函数中随机得到
2000 组输入输出数据, 从中随机选择
1900 组作为训练数据, 用于网 络训练,100 组作为测试数据.把训练数据预测误差绝对值和作为个体适应度,个体适应度 值越小,该个体越优. 2.2 算法实现 遗传算法优化 BP 神经网络是用遗传算法来优化 BP 神经网络的初始权值和阈值, 使优化 后的 BP 神经网络能够更好地预测函数输出. 遗传算法优化 BP 神经网络的要素包括种群初始 化、适应度函数、选择操作、交叉操作和变异操作.
1、种群初始化 个体编码方法为实数编码,每个个体均为一个实数串,由输入层与中间层连接权值、中 间层阈值、 中间层与输出层连接权值以及输出层阈值
4 部分组成. 个体包含了神经网络全部 权值和阈值, 在网络结构已知的情况下, 就可以构成一个结构、 权值、 阈值确定的神经网络.
2、适应度函数 根据个体得到 BP 神经网络的初始权值和阈值, 用训练数据训练 BP 神经网络后预测系统 输出,把预测输出和期望输出之间的误差绝对值之和 E 作为个体适应度值 F ,计算公式为: -
3 - ( )
1 n i i i F k abs y o = ? ? = ? ? ? ? ? ∑ 式中,n 为网络输出结点数;
i y 为BP 神经网络第i 个结点的期望输出;
i o 为第i 个结点 的预测输出;
k 为系数.
3、选择操作 遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本案例选择轮盘赌法,即基于适 应度比例的选择策略,每个个体i 的选择概率 i p 为iikfF=1iiNjjfpf==∑式中, i F 为个体i 的适应度值,由于适应度越小越好,所以在个体选择前对适应度值求 倒数;
k 为系数;
N 为种群个体数目.
4、交叉操作 由于个体采用实数编码,所以交叉操作方法采用实数交叉法,第k个染色体 k a 和第l 个 染色体 l a 在j位的交叉操作方法如下: ( ) ( )