云计算百科
云计算领域专业知识百科平台

【交通流量预测】基于GA优化BP神经网络

研究课题:

基于GA优化BP神经网络的短时交通流量预测

关键词:

交通流量;遗传算法GA; BP神经网络; Matlab

改进方向:

最佳隐含层节点 + 遗传算法优化初始权值和阈值

课题说明:

城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关,并且交通流量具有24小时内准周期的特性。首先采集4 天的交通流量数据,每隔15 分钟记录一次该段时间内的交通流量,一共记录384个时间点的数据。用3天共288 个交通流量的数据训练小波神经网络, 最后用训练好的小波神经网络预测第4 天的交通流量。仿真拟采用前4个时间节点的交通流量预测第5个时间节点;即可以理解为第1-4节点预测第5个节点,第2-5节点预测第6个节点,依次类推构建训练数据和测试数据。一天96个时间节点,按照上述逻辑可以组合92组数据;那么3天288个时间节点可以组合276组5维数据(这里需要注意的是,只能当天数据组合模型数据,故3天可以得到92*3=276组数据)。测试数据为第4天的96个节点,可以组合92组5维测试数据。

关于数据:为什么288个交通流量数据,最后训练数据input=276*4;output=276*1 ?

因为一天总共96组时间节点的交通流量;因为前4个节点预测第5个节点,故第1、2、3、4作为第一组 训练输入,第5天作为第一组输出;第2、3、4、5作为第二组训练输入,第6天作为第二组输出…. 最后,第92、93、94、95作为第92组输入,第96个节点作为第92组输出。所以一天96个节点最后只能有92组4维输入和1为输出。所以测试数据input_test和output_test是92*4和92*1。

算法流程:

  • 数据重新构造:按照课题说明中的需求重新构造数据,构造后的数据包含276组训练数据和92组测试数据
  • 网络创建: 数据采集后,利用Matlab自带的神经网络工具箱中的函数newff()可以构建一个BP神经网络。调用格式具体细节见下面
  • 确定最佳隐含层节点数:通过迭代寻优的方式,确定最佳隐含层节点数
  • 网络训练:网络创建完毕后,若需要,还可以对神经网络的参数进行设置和修改,将训练集276组数据据输入网络,便可以对网络进行训练
  • BP神经网络仿真:网络通过训练后,将测试数据集的92组测试数据输入到网络里,便可以得到对应的输出
  • 创建染色体和种群:初始化遗传算法的参数,构建染色体和种群, 定义适应度函数
  • 算法迭代:通过种群迭代,求解最优染色体,解析出染色体中包含的神经网络初始权值和阈值
  • 构建GA-BP神经网络与仿真:把解析出来的最佳初始权值和阈值赋值给BP神经网络,并将测试数据集代入到神经网络中,得到对应的输出。
  • 结果分析:通过对网络仿真结果的分析,可以得到误差值、绝对误差值之和、误差百分比
  • BP神经网络调用格式:

    net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

    • P:输入数据矩阵; T:输出数据矩阵; S:隐含层节点数
    • TF:节点传递函数;  BTF:训练函数;  BLF:网络学习函数
    • PF:性能分析函数;  IPF:输入处理函数;  OPF:输出处理函数; DDF:验证数据划分函数

    不同的数值优化方式采用不同的训练函数

    • Fletcher – Reeves 共轭梯度法: traincgf
    • Polak – Ribiere 共轭梯度法: traincgp
    • Powell-Beale 共轭梯度法: traincgb
    • 量化共轭梯度法: trainscg
    • 拟牛顿算法: trainbfg
    • 一步正割的BP训练法: trainoss
    • Levenberg – Marquardt 训练方法: trainlm

    只需要替换newff函数后面的变量来测试不同的数值优化方法对于BP神经网络的影响

    待改进方向:

    • GA算法进一步优化,比如动态GA、GASA算法等等

    特殊说明:

    • 神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值

    Matlab仿真结果:

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【交通流量预测】基于GA优化BP神经网络
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!