基于蜣螂算法优化的广义神经网络(GRNN)预测


文章目录

  • 基于蜣螂算法优化的广义神经网络(GRNN)预测
  • 1.GRNN 神经网络概述
  • 2.GRNN 的网络结构
  • 3.GRNN的理论基础
  • 4.运输系统货运量预测相关背景
  • 5.模型建立
  • 6.蜣螂算法优化GRNN
  • 7.实验结果
  • 8.参考文献
  • 9.Matlab代码



摘要:本文介绍基于蜣螂算法优化的广义神经网络(GRNN)预测,并将其应用于货物量预测

1.GRNN 神经网络概述

广义回归神经网络 CGRNN, Generalized Regression Neural Network)是美国学者 Don­aid F. Specht 在 1991 年提出的,它是径向基神经网络的一种。 GRNN 具有很强的非线性映射能力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问题。 GRNN在逼近 能力和学习速度上较 RBF 网络有更强的优势,网络最后收敛于样本量积聚较多的优化回归 面,并且在样本数据较少时,预测效果也好。此外,网络还可以处理不稳定的数据。因此, GRNN 在信号过程、结构分析、教育产业、能源、食品科学、控制决策系统、药物设计、金融领域、生物工程等各个领域得到了广泛的应用 。

2.GRNN 的网络结构

GRNN 在结构上与 RBF 网络较为相似。它由四层构成,如图1所示,分别为输入层(input layer)、模式层( pattern layer)、求和层 ( summation layer)和输出层( output layer)。对 应网络输入 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法,其输出为 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_02

基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法_03


图1 .GRNN网络结构

(1)输入层

输入层神经元的数目等于学习样本中输入向量的维数,各神经元是简单的分布单元,直接将输入变量传递给模式层。

(2)模式层

模式层神经元数目等于学习样本的数目 η ,各神经元对应不 同的样本,模式层神经元传递函数为:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_04
神经元 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_05 的输出为输入变量与其对应的样本 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_06 之间 Euclid 距离平方的指数平方 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_07 的指数形式 。式中, 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_06 为网络输入变量; 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_09

(3)求和层

求和层中使用两种类型神经元进行求和。

一类的计算公式为基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法_10,它对所有模式层神经元的输出进行算术求和,其模式层与各神经元的连接权值为1 ,传递函数为:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_11
另 一类计算公式为基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法_12,它对所有模式层的神经元进行加权求和,模式层中第 i 个神经元与求和层中第 j 个分子求和神经元之间的连接权值为第 i 个输 出样本基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_13中的第 j 个元素,传递函数为:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_14
(4)输出层

输出层中的神经元数目等于学习样本中输出向量的维数h ,各神经元将求和层的输出相除 , 神经元 j 的输出对应估计结果Y( X) 的第 j 个元素,即:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法_15

3.GRNN的理论基础

广义回归神经网络的理论基础是非线性回归分析 , 非独立变量 Y 相对于独立变量x的回归分析实际上是计算具有最大概率值的 y. 设随机变量x和随机变量 y 的联合概率密度函数 为f(x,y),已知 x 的观测值为 X ,则 y 相对于 X 的回归,也即条件均值为:

KaTeX parse error: \tag works only in display equations

Y即为在输入为 X 的条件下,Y 的预测输出 。

应用 Parzen 非参数估计,可由样本数据集基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_16估算密度函数基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_17
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_18
式中,基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_09基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_13, 为随机变量 x 和 y 的样本观测值;基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_21为样本容量;基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_22为随机变量 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法_23的维数;基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_24为高斯函数的宽度系数,在此称为光滑因子。

基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_25代替 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_25代人式,并交换积分与加和的顺序:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_27
由于基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_28,对两个积分进行计算后可得网络的输出Y(X)为:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_29
估计值基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_30为所有样本观测值基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_13的加权平均,每个观测值基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_传递函数_13的权重因子为相应的样本基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_09基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_06之间 Euclid 距离平方的指数 . 当光滑因子 σ 非常大的时候 ,基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_30近似于所有样本因变量的均值 。 相反,当光滑因子σ 。趋向于0 的时候, 基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_30和训练样本非常接近,当需预测的点被包含在训练样本集中时,公式求出的因变量的预测值会和样本中对应的因变量非常接近, 而一旦碰到样本中未能包含进去的点,有可能预测效果会非常差 , 这种现象说明网络的泛化能力差。当σ取值适中,求预测值基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_30时,所有训练样本的因变量都被考虑了进去,与预测点距离近的样本点对应的因变量被加了更大的权。

4.运输系统货运量预测相关背景

运输系统作为社会经济系统中的一个子系统,在受外界因素影响和作用的同时 , 对外部经济系统也具有一定的反作用,使得运输需求同时受到来自运输系统内外两方面因素的影响。 作为运输基础设施建设投资决策的基础,运输需求预测在国家和区域经济发展规划中,具有十分重要的作用,其中,由于货物运输和地方经济及企业发展的紧密联系,货运需求预测成为货 运需求和经济发展关系研究中的一个重要问题 。因此,作为反映货物运输需求的一项重要指标,货运量预测研究和分析具有较强的实际和理论意义 .

在此情况下,国内一些学者将神经网络引入到货运量预测中来。GRNN 在逼近能力、分类能力和学习速度方面具有较强优势 , 网络最后收敛于样本量积聚最多的优化回归面,并且在数据缺乏时效果也较好。网络可以处理不稳定的数据 , 因此本案例采用 GRNN 建立了货运量预测模型 , 并利用历史统计数据对货运量进行预测 。

5.模型建立

根据货运量影响因素的分析,分别取国内生产总值( GDP)、工业总产值、铁路运输线路长度、复线里程比重、公路运输线路长度、等级公路比重、铁路货车数量和民用载货汽车数量 8 项 指标因素作为网络输入,以货运总量、铁路货运量和公路货运量 3 项指标因素作为网络输出 , 构建 GRNN。本案例中 data. mat 中共有 p, t 两组数据 ,又各含 13 组数据,代表了 1996-2008 年的货 运量和与其相关的各个变量值。将 p、t 的前 12 组数据作为网络的训练数据,最后 1 组数据作 为网络的预测数据,建立 GRNN 神经网络对货运量进行预测。

6.蜣螂算法优化GRNN

蜣螂算法的具体原理参考博客:javascript:void(0)。

网络训练时,采用交叉验证的方式,优化参数主要是GRNN的光滑因子基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_算法优化_38参数。是适应度函数设计为:
基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_39
适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为,最佳训练集以及对应的光滑因子。

7.实验结果

蜣螂算法的参数设置如下:

%% 蜣螂算法
pop = 20;%种群数量
Max_iteration = 20;%最大迭代次数
lb = 0.1;%下边界
ub = 2;%上边界
dim = 1;%维度
fobj = @(spread) fun(spread,p_train,t_train,indices);

经过蜣螂算法优化的结果:

基于蜣螂算法优化的广义神经网络(GRNN)预测-附代码_神经网络_40

最佳光滑因子值为0.55434
此时最佳输入值为

desired_input =

   -1.0000   -0.9578   -0.7570   -0.4706   -0.2682   -0.0351    0.3968    0.8793    1.0000
   -0.9552   -1.0000   -0.1293   -0.0073    0.2069    0.3416    0.6186    0.9372    1.0000
   -1.0000   -1.0000   -0.4969   -0.4969    0.1950    0.3333    0.6478    1.0000    1.0000
   -1.0000   -1.0000   -0.0769    0.5385    0.2308    0.3846    0.6923    1.0000    1.0000
   -1.0000   -0.9749   -0.8934   -0.7555   -0.5737   -0.3103    0.2602    0.7367    1.0000
   -1.0000   -0.7391   -0.7391   -0.3043   -0.1304   -0.0435    0.3043    0.8261    1.0000
   -1.0000   -0.9945   -0.9852   -0.9852   -0.5220   -0.2781    0.2302    0.7240    1.0000
   -1.0000   -0.7677   -0.6639   -0.7291   -0.5720   -0.4229    0.0881    0.6368    1.0000

此时最佳输出值为

desired_output =

   -1.0000   -0.9931   -0.9770   -0.7068   -0.4453   -0.2420    0.2887    0.7795    1.0000
   -1.0000   -0.9401   -0.8046   -0.5911   -0.3532   -0.1924    0.2360    0.7311    1.0000
   -1.0000   -0.9512   -0.7602   -0.5070   -0.2167   -0.0244    0.2688    0.8349    1.0000

GRNN神经网络三项流量预测的误差为13822.9498      4639.68944      15978.9808

未经过蜣螂的结果为:

GRNN神经网络三项流量预测的误差为28106.967 15245.9913 21653.0687(数据来源于《MATLAB神经网络43个案例分析》)

从结果来看,蜣螂优化后取得的结果明显更优,误差大大减少。

8.参考文献

书籍《MATLAB神经网络43个案例分析》

9.Matlab代码