一种基于稀疏BP神经网络的实时交通预测方法及装置与流程

文档序号:20449210发布日期:2020-04-17 22:57阅读:140来源:国知局
一种基于稀疏BP神经网络的实时交通预测方法及装置与流程

本发明涉及实时交通预测领域,特别是涉及一种基于稀疏bp神经网络的实时交通预测方法及装置。



背景技术:

随着私家车数量的快速增长,出门难、行车难、交通秩序混乱等问题日益凸显,为解决城市负载日益加重的问题,交通流量预测应运而生。交通预测为人们提供出行指导、为城市路网建设、道路分流和红绿灯设置提供参考价值、为交通部门提供决策支持。目前大多数神经网络交通预测方法是固定网络结构,而神经网络中的隐层神经元的层次和数量由经验获得,是一种依赖于经验的启发式技术。

中国专利申请号cn106448151a的“一种短时交通流量预测方法”中利用灰色算法和elm神经网络预测出第p+1时间段的交通流量,利用灰色模型和elm神经网络两个子模型的预测值的加权平均对系统误差进行补偿,提高预测精度,但是该方法仍然存在缺陷,例如网络模型是人为构建,不能实现网络的自动构建,网络上下层节点全连接,参数多,计算量大。



技术实现要素:

本发明目的是提供一种基于稀疏bp神经网络的实时交通预测方法及装置,能够在保证正确率的情况下提高预测速度。

根据本发明的第一方面,提供了一种基于稀疏bp神经网络的实时交通预测方法,包括:

根据预设的第一规则生成稀疏神经网络;

利用遗传编程对所述稀疏神经网络进行网络结构优化,得到遗传编程优化后的稀疏神经网络;

利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值,得到网络权值优化后的稀疏神经网络;

将有效交通数据样本导入所述网络权值优化后的稀疏神经网络中进行测试,若测试结果在预期范围内,则保留所述稀疏神经网络;若测试结果不在预期范围内,则重新根据预设的第一规则生成稀疏神经网络。

进一步的,所述有效交通数据样本的具体获取步骤包括:

从预设的数据库中采集实验交通数据样本;

根据预设的第二规则对所述实验交通数据样本进行筛选,获得有效实验交通数据样本;

对所述有效实验交通数据样本进行预处理,获得有效交通数据样本。

进一步的,“根据预设的第一规则生成稀疏神经网络”具体包括:

定义神经网络产生规则,根据所述神经网络产生规则确定输入层节点集合;

初始化参数并按照所述神经网络产生规则生成隐层节点;

判断所述隐层节点是否超过最大深度,若是,则重新生成隐层节点;若否,则根据所述隐层节点生成神经网络。

进一步的,“利用遗传编程对所述稀疏神经网络进行网络结构优化”具体包括:

任意选择两个所述稀疏神经网络并计算随机产生个体的交叉概率、变异概率;

当所述交叉概率大于预设的交叉概率时,对所述两个稀疏神经网络进行交叉;

当所述变异概率大于预设的变异概率时,对所述两个稀疏神经网络进行变异。

进一步的,“利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值”具体包括:

初始化粒子群规模、粒子位置和粒子速度,确定粒子维数;

根据所述稀疏神经网络调整所述粒子速度、粒子位置的数值,保留调整后的权值。

根据本发明的第二方面,提供了一种基于稀疏bp神经网络的实时交通预测装置,包括:

生成模块:根据预设的第一规则生成稀疏神经网络;

第一处理模块:利用遗传编程对所述稀疏神经网络进行网络结构优化,得到遗传编程优化后的稀疏神经网络;

第二处理模块:利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值,得到网络权值优化后的稀疏神经网络;

判断模块:将有效交通数据样本导入所述网络权值优化后的稀疏神经网络中进行测试,若测试结果在预期范围内,则保留所述稀疏神经网络;若测试结果不在预期范围内,则重新根据预设的第一规则生成稀疏神经网络。

进一步的,所述有效交通数据样本的具体获取步骤包括:

从预设的数据库中采集实验交通数据样本;

根据预设的第二规则对所述实验交通数据样本进行筛选,获得有效实验交通数据样本;

对所述有效实验交通数据样本进行预处理,获得有效交通数据样本。

进一步的,“根据预设的第一规则生成稀疏神经网络”具体包括:

定义神经网络产生规则,根据所述神经网络产生规则确定输入层节点集合;

初始化参数并按照所述神经网络产生规则生成隐层节点;

判断所述隐层节点是否超过最大深度,若是,则重新生成隐层节点;若否,则根据所述隐层节点生成神经网络。

进一步的,“利用遗传编程对所述稀疏神经网络进行网络结构优化”具体包括:

任意选择两个所述稀疏神经网络并计算随机产生个体的交叉概率、变异概率;

当所述交叉概率大于预设的交叉概率时,对所述两个稀疏神经网络进行交叉;

当所述变异概率大于预设的变异概率时,对所述两个稀疏神经网络进行变异。

适应度好且不进行交叉和变异的个体直接复制到下一代优化。

进一步的,“利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值”具体包括:

初始化粒子群规模、粒子位置和粒子速度,确定粒子维数;

根据所述稀疏神经网络调整所述粒子速度、粒子位置的数值,保留调整后的权值。

本发明的有益效果为:1.与现有技术相比,本申请结合了bp神经网络、遗传编程和pso优化算法,利用遗传算法可以弥补神经网络收敛速度慢和容易陷入局部最优解的不足的特点,使得构建出的稀疏神经网络结构在保证正确率的情况下还能提高预测速度。2.本申请构建出的符合目标需求的稀疏神经网络结构,减少了节点间的连接,避免过多的计算量带来的预测速度慢的问题,提高预测的快速性和实时性。

附图说明

图1是根据本发明一实施例的一种基于稀疏bp神经网络的实时交通预测方法的流程图;

图2是根据本发明一实施例的一种基于稀疏bp神经网络的实时交通预测装置的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了根据本发明一实施例的一种基于稀疏bp神经网络的实时交通预测方法的流程,包括:

s11、根据预设的第一规则生成稀疏神经网络。

本方法的执行主体可以是云端服务器。

在本说明书实施例中,稀疏神经网络的定义指的是神经网络中上层节点与下层节点为非全连接状态的网络。云端服务器首先会根据预设的第一规则来批量生成稀疏神经网络,同时定义种群规模size,生成size个稀疏网络,之后云端服务器会对批量生成的网络集合进行评估,分别计算其适应值函数,选择适应值低的网络。

bp神经网络模型的激活函数,激活函数采用sigmoid函数:

其中,适应值函数为:

其中,指第i个时间段模型预测的车流量,指第i个时间段的实际车流量。

s12、利用遗传编程对所述稀疏神经网络进行网络结构优化,得到遗传编程优化后的稀疏神经网络。

在本说明书实施例中,遗传编程是一种特殊的利用进化算法的机器学习技术,它开始于一群由随机生成的千百万个计算机程序组成的"人群",然后根据一个程序完成给定的任务的能力来确定某个程序的适合度,应用达尔文的自然选择(适者生存)确定胜出的程序,计算机程序间也模拟两性组合,变异,基因复制,基因删除等代代进化,直到达到预先确定的某个终止条件为止。遗传编程的基本思想也是借鉴了自然界生物进化理论和遗传的原理,是一种自动随机产生搜索程序的方法。由于该算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强,并且对非线性复杂问题显示出很强的求解能力,因而被成功地应用于许多不同的领域。在本申请中,云端服务器会利用遗传编程来优化稀疏神经网络,目的是为了使神经网络能够自动化,避免了过于依赖人的经验的问题。

s13、利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值,得到网络权值优化后的稀疏神经网络。

在本说明书实施例中,pso即粒子群优化算法,是一种基于种群的随机优化技术。使用粒子群算法对稀疏bp神经网络的权值进行优化,通过计算适应值函数对粒子速度和位置的调整使得网络的权值不断更新优化,使网络总误差小于设定值或者达到迭代次数时,结束训练。在每一次迭代中保留每个个体的最优解,对比每个粒子的最优解得到全局最优解,经过多次迭代,都只保留最优的解,直到训练结束,得到最优权值。

s14、将有效交通数据样本导入所述网络权值优化后的稀疏神经网络中进行测试,若测试结果在预期范围内,则保留所述稀疏神经网络;若测试结果不在预期范围内,则重新根据预设的第一规则生成稀疏神经网络。

在本说明书实施例中,云端服务器会获取有效交通数据样本对最终优化、训练完毕的神经网络进行测试,当导入有效交通数据样本后神经网络对其处理所得到的实时交通流量预测数据在预期的范围内,即可保留该稀疏神经网络用于交通流量预测,当得到的结果不在预期范围内时,云端服务器会从第一步骤开始重新生成、筛选新的稀疏神经网络直到得到预期值。

作为优选实施例,所述有效交通数据样本的具体获取步骤包括:

从预设的数据库中采集实验交通数据样本;根据预设的第二规则对所述实验交通数据样本进行筛选,获得有效实验交通数据样本;对所述有效实验交通数据样本进行预处理,获得有效交通数据样本。

在本说明书实施例中,实验交通数据样本可以是从系统外部获取实验所需数据,本实施例中采用美国加利福尼亚州的开放接入交通数据库pems,数据采样以五分钟的时间间隔进行。在获取到实验交通数据样本后,云端服务器会对其进行数据清洗,数据清洗是指去掉无效的或者错误的数据,提取出有特征值的数据,在本实施例中我们需要从中获取时间、时间对应的车流量、车道、设备状态等有效数据。设备可能会出现故障,导致接收到的数据为无效数据,对于这些无效数据、空数据,需要将它们剔除,不作为模型训练的数据,根据预设的第二规则即筛选掉包含空值的记录,当车流量为空时,将其作为非法数据;异常状态下搜集的记录,当observed是“0”时,即认为设备异常,此时搜集的数据为异常数据,应当剔除。

在这之后,为了消除样本不同属性具有不同量级的影响,需要将样本数据进行预处理,将其归一化,即将样本的属性缩放到(0,1)之间,归一化的公式为:

时间:每五分钟一条记录;

车流:五分钟里通过车道的车辆数;

车道:1车道;

设备状态:100为正常,0为异常。

,其中,是第i个数据归一化的结果,是第i个原始数据,是数据集中最小的数,是数据集中最大的数。

作为优选实施例,“根据预设的第一规则生成稀疏神经网络”具体包括:

定义神经网络产生规则,根据所述神经网络产生规则确定输入层节点集合;初始化参数并按照所述神经网络产生规则生成隐层节点;判断所述隐层节点是否超过最大深度,若是,则重新生成隐层节点;若否,则根据所述隐层节点生成神经网络。

在本说明书实施例中,云端服务器会定义网络生成规则集合p,定义一个output,输入节点集合t作为当前时间段的前六个时间段的实际流量,其中,隐层节点的层次在不多于输入节点的范围内随机选择,隐层节点的连结方式根据规则p决定。

网络生成规则集合p具体如下:

output→exp表示output节点连接exp节点;

exp→op1op2op3表示exp下可以连接op1op2op3三个子节点;

exp→op1op1表示exp下可以连接两个op1子节点;

exp→op1op2表示exp下可以连接op1op2两个子节点;

op1→var1|var2|var3表示在节点op1下可以连接1个var子节点,var1或var2或var3;

op2→var1var2|var2var3|var1var3|var1var1|var2var2|var3var3表示在节点op2下可以连接2个var子节点;

op3→varvar2var2var3|var2var2var1|var3var3var2表示在节点op3下可以连接3个var子节点;

var1→+1表示在节点var1下可以连接1个输入节点,具体节点随机连接;

var2→+2表示在节点var2下可以连接2个输入节点,具体节点随机连接;

var3→+3表示在节点var3下可以连接3个输入节点,具体节点随机连接。

根据规则产生出来的节点无具体意义,为神经网络隐层,只有output层是最后的输出结果以及集合t为输入层有实际意义。

在这之后,云端服务器会根据输入层节点t、上述步骤产生的隐层节点和随机产生的权值矩阵w生成bp神经网络,其中,云端服务器会预先规定种群规模size、网络最大深度maxdepth、变异概率pb=0.01、交叉概率pj=0.6。如果生成的网络超过规定的最大深度,将再次重新生成一个新的网络来替换掉这个网络。

作为优选实施例,“利用遗传编程对所述稀疏神经网络进行网络结构优化”具体包括:

任意选择两个所述稀疏神经网络并计算随机产生个体的交叉概率、变异概率;当所述交叉概率大于预设的交叉概率时,对所述两个稀疏神经网络进行交叉;当所述变异概率大于预设的变异概率时,对所述两个稀疏神经网络进行变异。

在本说明书实施例中,云端服务器首先会任意选择两个神经网络,随机产生个体的交叉概率为pj,如果大于初始定义的交叉概率,将这两个神经网络进行交叉;随机产生个体的变异概率为pb,如果其大于初始定义的变异概率,将这两个神经网络进行变异。

变异方法中,在父辈个体生成后代的过程里,可以使用四种不同的变异算子:

a.更换一个叶节点。随机选择神经网络中的一个叶节点,用另一个叶节点替换它。

b.更换所有叶节点

c.生长。在神经网络的隐层上随机选择一个叶节点,用一个新生成的子网替换。

d.剪枝。随机选择一个分叶子节点,用一个叶子节点代替它。

交叉方法中,随机选择两个网络作为父代,然后随机选择它们的隐层上的非叶子节点,交换它们的子网络。

本实施例中使用进化编程中的锦标赛选择方法进行父辈个体的选择。成对的比较产生了u个父辈个体和u个子代个体组成的联合体。对于每个个体,从所有的父辈和后代个体中随机并均匀选择q个竞争者,在每次比较中,如果该个体的适应值不小于竞争者的适应值,则该个体胜出,即被选择。从父辈和后代个体中选择u个胜出的个体作为下一代。这个选择过程每一代都进行,直至合乎要求的网络结构被找到。其中,适应度好且不进行交叉和变异的个体直接复制到下一代优化。

作为优选实施例,“利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值”具体包括:

初始化粒子群规模、粒子位置和粒子速度,确定粒子维数;根据所述稀疏神经网络调整所述粒子速度、粒子位置的数值,保留调整后的权值。

在本说明书实施例中,位置:x[i][j]=rand(xmin,xmax),速度:v[i][j]=rand(vmin,vmax),维数:d=np1+p1p2+p2q,其中xmin和xmax是粒子的最小位置和最大位置;vmin和vmax是粒子的最小速度和最大速度;维数d为bp神经网络中权值的总个数,n、p、q分别是输入层节点数、隐层节点数(允许多层)、输出层节点数。

粒子群算法速度和位置调整公式为:v[i]=w*v[i]+c1*rand()*(pbest[i]-x[i])+c2*rand()*(gbest[]-x[i]);x[i]=x[i]+v[i],

其中,v[]对应每个粒子的速度,w是惯性权重,pbest是每个粒子的个体最优解,gbest是当前全局最优解,c1,c2是学习因子,rand()是(0,1)间的随机数。

粒子群算法的适应值函数为:

其中,n是样本个数,i是第i个样本,x是预测值。

每一次迭代得到最优权值,判断是否达到群体结构最大迭代次数,若是,训练结束;若否,返回第二处理模块进入下一次的网络结构优化。

图2示出了根据本发明一实施例的一种基于稀疏bp神经网络的实时交通预测装置的结构,包括:

生成模块21:根据预设的第一规则生成稀疏神经网络;

第一处理模块22:利用遗传编程对所述稀疏神经网络进行网络结构优化,得到遗传编程优化后的稀疏神经网络;

第二处理模块23:利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值,得到网络权值优化后的稀疏神经网络;

判断模块24:将有效交通数据样本导入所述网络权值优化后的稀疏神经网络中进行测试,若测试结果在预期范围内,则保留所述稀疏神经网络;若测试结果不在预期范围内,则重新根据预设的第一规则生成稀疏神经网络。

作为优选实施例,所述有效交通数据样本的具体获取步骤包括:

从预设的数据库中采集实验交通数据样本;根据预设的第二规则对所述实验交通数据样本进行筛选,获得有效实验交通数据样本;对所述有效实验交通数据样本进行预处理,获得有效交通数据样本。

作为优选实施例,“根据预设的第一规则生成稀疏神经网络”具体包括:

定义神经网络产生规则,根据所述神经网络产生规则确定输入层节点集合;初始化参数并按照所述神经网络产生规则生成隐层节点;判断所述隐层节点是否超过最大深度,若是,则重新生成隐层节点;若否,则根据所述隐层节点生成神经网络。

作为优选实施例,“利用遗传编程对所述稀疏神经网络进行网络结构优化”具体包括:

任意选择两个所述稀疏神经网络并计算随机产生个体的交叉概率、变异概率;当所述交叉概率大于预设的交叉概率时,对所述两个稀疏神经网络进行交叉;当所述变异概率大于预设的变异概率时,对所述两个稀疏神经网络进行变异。

作为优选实施例,“利用pso优化所述遗传编程优化后的稀疏神经网络的网络权值”具体包括:

初始化粒子群规模、粒子位置和粒子速度,确定粒子维数;根据所述稀疏神经网络调整所述粒子速度、粒子位置的数值,保留调整后的权值。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其他实施例中所包括的某些特征而不是其他特征,但是不同的实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求的保护的实施例的任意之一都可以以任意的组合方式来使用。

本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制,尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1