智慧交通是未来交通系统发展的方向,智能公交调度是智慧交通系统的重要组成部分[1].建立智能公交调度系统须要在公交运营状态偏离计划时能迅速给出调整方案,动态调整公交运营时刻表,而这就要求对公交未来的运营状况(如车程时间、客流情况等)有精确高效的预判,因此精确高效的公交车程时间预测方法是实现动态调整时刻表的基础,预测方法的精度和速度直接关系到智能调度能否实现[2].目前国内外学者对于公交车程时间的预测问题进行了很多研究,而采用数据挖掘、机器学习等的人工智能领域相关技术是当下最常使用的方法.文献[3]设计研究了一个数据聚类和遗传规划相结合的方法来建模和预测动态行程时间的期望、下限和上限.文献[4]在GPS数据的基础上,利用人工神经网络建立了一个公交车辆行程时间预测模型,用于建立预测模型的数据包括每个站点的上下车客流量及每个站点附近的住宅密度.文献[5]采用机器学习的方法,对公交线路上每一段行程都设计了特定的预测模型,来提升对车程时间的预测精度.文献[6]建立了考虑公交运行环境的深度神经网络预测方法(CFDP-DNN),并通过实验验证了所设计的预测方法能够实现实时精确的站点间公交行程时间预测.由于上述研究往往只聚焦于对某一条公交线路进行预测研究,而智慧交通调度系统的发展趋势是区域模式调度,在区域模式调度的应用场景中往往包含城市区域内的数条运营状态不同的公交线路,因此针对某一条线路建立的预测模型不具有泛用性,难以对区域内的其他线路同时进行有效的预测;同时,同一个区域内不同的公交线路往往存在重合路段,这些线路的公交车在行驶过程中互相影响,且存在一些相似的运营状态,即不同公交线路共享着部分相同的信息.若只对某一条线路车程时间进行研究,则会丢失这些共享信息,降低所建立的预测模型的精度和效率.另外,公交车的发车间隔通常设置在5~10 min,某些低峰时段发车间隔会达到20~30 min,因此现实中每天所能统计到的某一条线路的公交车运营时间数据量非常有限[7].目前在图像识别等领域应用较多的深度学习等方法需要大量数据作为模型训练的支持,才能获得较好的预测效果[8],因此常用的机器学习预测方法应用于公交线路难以取得较好的效果.为解决公交系统中单条线路车程时间预测研究的弊端,本研究采用多任务学习的方法,对公交系统中多条线路车程时间的同时预测进行研究.近年来,多任务学习方法作为一种能够有效解决单任务学习问题弊端的方法被提出,研究者在文本分类[9]、内容推送[10]和图像识别[11]等领域对多任务学习方法进行了广泛的应用研究,并取得了较好的效果.多任务学习是利用多个完全相关或者部分相关学习任务中所包含的有用信息,来帮助为每个任务学习得到更为准确的学习器[12].多任务学习属于迁移学习的一个具体形式,利用迁移学习的思想,将从一个子任务中所学习到的知识迁移到另外一个子任务中,作为训练样本的补充来提升每个任务的学习效果,从而为每一个子任务提供额外的训练信息,以提高所有任务的学习效果[13].多线路公交车程时间预测问题可视作一个多任务学习问题,其中每一条公交线路的车程时间预测问题可视作一个子学习任务.这些子任务均属于公交车程时间预测问题,在模型训练过程中具有相似性,因此将多条线路公交车程时间预测问题集成起来,视作一个多任务学习问题,可以增加每个子任务有效的学习样本信息,提升预测模型的预测精度和训练效率.1 多线路公交车程时间预测问题描述公交车程时间预测是通过公交线路中不同车程班次的日期、天气和发车时间等数据,对该车次完成从起点到终点的整个单程所需时间进行预测.一个完整的公交单程时间如图1所示.公交车程时间预测的准确对于制定合理高效的发车时刻表起着关键性的作用.在智慧交通系统中,须要同时对区域内运营的多条公交线路进行时刻表的制定.如图2所示,图中不同颜色的线条代表不同的线路,这些线路往往互相有重合部分、在运营过程中会互相影响,分别对这些线路进行研究规划难以得到整体的较优方案.规划整体的运营时刻表须要同时对区域内所有公交线路的车程时间进行预测,而现有的对于每条线路单独建模研究的方法效率较低,因此研究一个高效精确的整体预测模型,对于建立智慧交通系统及实现智慧交通中的公交动态调度具有重要意义.10.13245/j.hust.221111.F001图1公交单程时间示意图10.13245/j.hust.221111.F002图2区域模式公交线路示意图多线路公交车程时间预测问题,即在公交车程时间预测问题的基础上找到一种预测方法,能够实现同时对区域内所有公交线路的车程时间进行高效精确的预测.研究目的是根据公交车程时间预测问题的特点,设计一种多线路公交车程时间预测模型,该模型通过一次数据训练过程,即可实现对区域内不同公交线路、不同发车时间车次的车程时间的有效预测.2 多线路公交车程时间预测问题建模在多线路公交车程时间预测问题中,每一条公交线路的车程时间预测问题可以视作一个子学习任务,其集成预测问题可视作一个多任务学习问题.本研究基于多任务学习方法,对多线路公交车程时间预测问题进行建模.2.1 基于多任务学习的多线路公交车程时间预测模型架构如图3和图4所示,多任务学习模型与常用的深度学习神经网络模型最大的不同在于,多任务学习模型中所有的子任务共享隐藏层参数[14].在多任务学习模型的训练过程中,所有的数据被作为一个整体参与训练.不同子学习任务通过同一个隐藏层实现对互相之间共同信息(特征值、模型参数等)的共享,再通过各自的子任务特征层实现不同子任务的特定需求[15].所有的子任务在训练过程中同时进行训练.本研究采用如图3所示的多任务学习模型架构,将每条公交线路的车程时间预测任务视作一个子学习任务,挖掘多个线路公交车程时间预测任务之间有价值的共享信息,建立基于多任务学习的多线路公交车程时间预测模型,实现同时对多个公交线路的车程时间进行有效预测.10.13245/j.hust.221111.F003图3多任务学习模型结构图10.13245/j.hust.221111.F004图4单任务神经网络模型结构图2.2 基于多任务学习的多线路公交车程时间预测模型目标函数若将多线路公交车程时间预测问题视作一个多任务学习问题,则对于每条线路的车程时间预测问题都可视作一个子学习任务.对于一般的多任务学习问题模型,假设有p个不同的子学习任务,对于每个子任务对应着一个训练数据集Dp,有Dp={(xp1,yp1),(xp2,yp2),⋯,(xpn,ypn)},(1)式中:xpi为第i个输入变量;ypi为对应的输出量.多任务学习的目的是通过p个训练数据的集合{D1,D2,...,Dp},找到一个合适的特征参数矩阵wT来拟合p个如下所示的函数,即fp(xpi)=wpTxpi≈ypi.(2)训练预测模型的目的是最小化所有子任务预测得到的车程时间与实际结果差距.本研究的多线路公交车程时间预测模型的训练过程目标函数可表示为minz=∑n=1Nαm∑m=1M[(xn⋅WshareT)⋅Wspe,mT-ym,n]2,(3)式中:N为训练数据集中所有的公交班次数据的数目;M为预测模型中的子任务个数;αm为不同子任务在训练过程中的权重系数;xn为第n条训练数据的输入;WshareT为预测模型的共享层参数矩阵;Wspe,mT为第m个子任务的特定任务层参数矩阵;ym,n为第n条训练数据对应于第m个子任务的输出.3 实验及分析本研究以湖北省X市2路、7路、10路、11路和16路五条公交线路的车程时间数据集为例进行实验分析,以验证本研究基于多任务学习的多线路公交车程时间预测模型的有效性.这五条线路互相存在重合路段,运营时段各不相同,其中:2路公交的运营时间为每天5︰50—21︰30;7路为6︰10—19︰30;10路为5︰58—20︰18;11路为5︰50—19︰00;16路为6︰00—20︰14.本实验的实现语言为Python 3.8,处理器型号为Intel Core i5,主频为3.00 GHz,内存为16 GiB,操作系统为Windows10.3.1 数据预处理本研究所用训练数据为2019年7月份X市2路、7路、10路、11路和16路公交线路每天所有车辆班次的运营数据集合,其中:2路公交的数据集含有4 211条数据;7路公交的数据集含有1 810条数据;10路公交的数据集含有2 734条数据;11路公交的数据集含有1 763条数据;16路公交的数据集含有2 610条数据.数据集的内容包括每个班次的记录日期、所属公交线路,以及每个班次的起点站发车时间、终点站到站时间.为了提升模型的训练效果,本研究将每条班次数据当天的星期数据、节假日数据、温度数据和天气数据添加作为训练集数据的特征数据[16].由于星期数据和是否为节假日等数据不是数值型数据,在训练前须要按照表1将其转换为可以直接作为模型输入的数值型数据.日期型文字数据按时间顺序转换成递增的数值数据,而天气型文字数据是按天气的恶劣程度转换成递减的数值数据.10.13245/j.hust.221111.T001表1文字型数据对应数值转换表数据类型数值星期星期一1.5星期二3.5星期三5.5星期四7.5星期五9.5星期六11.5星期日13.5法定节假日标志是节假日5.0不是节假日10.0天气种类晴9.5多云7.5阴5.5小雨3.5暴雨1.5如2.2节所述,本实验的多线路公交车程时间预测模型的训练数据集可视作集合{D1,D2,D3,D4,D5},其中子任务Dp可表示为Dp={(xm1,ym1),(xm2,ym2),…,(xmn,ymn)}.在训练数据(xmn,ymn)中,输入数据为向量xmn=(x1,x2,x3,x4,x5,x6,x7),其中:x1为日期数据;x2为星期数据;x3为节假日标志数据;x4为温度数据;x5为天气数据;x6为发车时间数据;x7为线路标志数据即该条数据的线路代号;ymn为输出数据,表示该车次的车程时间.3.2 实验模型结构设置多线路公交车程时间预测模型采用如图3所示结构进行建模,其中:共享层的层数为3,每层神经元个数为128;每一个子任务特征层的层数为2,每层神经元个数为128.为了比较多任务学习模型与单任务模型的性能,将所研究的五条公交线路数据融合成一个数据集,建立神经网络学习模型进行预测实验.同时以每条线路各自的数据集为基础,对每条公交线路的车程时间预测问题分别建立独立的神经网络模型,从而与所建立的多任务学习模型进行预测性能对比.所建立单任务模型的网络结构如图4所示,其中,中间隐层的层数为3,每层神经元个数为128.在训练过程中,模型的各项参数设置如表2所示.10.13245/j.hust.221111.T002表2预测模型参数设置主要参数参数设置值Batch size32Dropout rate0.1Decay steps8Decay rate0.96Initial learning rate0.01Epoch1503.3 训练权重系数实验在预测模型训练过程的目标函数式(3)中,存在不同子任务在训练过程中的权重占比系数αm.为了使训练得到的预测模型对所有公交线路的车程时间都具有较好的预测效果,须要对于模型训练的损失函数设置合适的系数αm.本研究设计了一种简单的比例方法来有效地确定不同任务的权重系数.该方法由一个基准实验和四个对比实验的组成,按权重系数向量S1~S5顺序编号.在该方法中,基准组S1中的权重系数被设定为相等,即不同的子任务的比例为1︰1.在对比实验中,根据基准实验中的训练损失函数值,将模型中的不同子任务划分为2或3个部分.在实验S2中,损失值大于平均值的任务的权重系数设置为1,其他任务的权重系数设置为0.8.对比实验S2和S3之间的区别在于,损失值较大的任务设置为0.8,其他任务设置为1.类似地,在S4中,损失价值远大于平均数的任务设为1.2,损失值接近平均值的设置为1,其他设置为0.8.S5中的权重系数按照与S4相反的规则设置.不同权重系数组的模型训练损失值如表3所示,表中:t1表示子任务“2号线公交车程时间预测”;t2表示子任务“7号线公交车程时间预测”;t3表示子任务“10号线公交车程时间预测”;t4表示子任务“11号线公交车程时间预测”;t5表示子任务“16号线公交车程时间预测”;权重系数向量Sx中的元素按顺序分别表示子任务t1~t5的权重系数值.10.13245/j.hust.221111.T003表3训练权重系数实验结果权重系数向量损失函数值t1t2t3t4t5总计S1=(1,1,1,1,1)2066012825962961 981S2=(0.8,1.0,0.8,1.0,1.0)2115952965773151 892S3=(1.0,0.8,1.0,0.8,0.8)2045882935913091 687S4=(0.8,1.2,1.0,1.2,1.0)2075922975953082 195S5=(1.2,0.8,1.0,0.8,1.0)2055992925793001 780从表3的实验结果可以发现:S3具有最小的加权损失函数值,并且S3中的大部分子任务损失值接近最小值.因此选择S3中的权重系数组合作为预测实验参数,即预测实验过程中模型训练的权重系数选定为α1=1.0,α2=0.8,α3=1.0,α4=0.8,α5=0.8.3.4 预测实验结果分析多任务学习模型和基于不同训练数据集的单任务神经网络预测模型的性能对比实验结果如表4所示,实验结果包含各个模型的训练耗时,以及对各条公交线路车程时间测试数据的预测误差率,表中:DF为使用多条线路数据融合而成的数据集训练预测模型;D2为使用2号线数据集训练预测模型;D7为使用7号线数据集训练预测模型;D10为使用10号线数据集训练预测模型;D11为使用11号线数据集训练预测模型;D16为使用16号线数据集训练预测模型;T2为2号线测试数据的预测实验;T7为7号线测试数据的预测实验;T10为10号线测试数据的预测实验;T11为11号线测试数据的预测实验;T16为16号线测试数据的预测实验.10.13245/j.hust.221111.T004表4模型预测实验结果模型种类训练耗时/s预测误差率/%T2T7T10T11T16单任务预测模型DF57.315.240.339.739.241.3D219.411.825.539.626.839.2D710.140.710.342.533.841.6D1013.633.133.65.736.710.6D119.741.936.741.29.839.8D1613.233.135.413.434.25.7基于多任务学习的多线路预测模型39.611.68.13.77.34.8从表4可以看出:a.通过融合数据集训练得到的单任务预测模型对于五条线路的车程时间预测效果都较差,这是由于将数据直接融合训练单任务预测模型会造成不同来源的数据在训练过程中互相干扰,导致预测模型性能变差;b.对于单条线路独立建模的单任务预测模型,其在预测自身线路的车程时间时效果较好,但在预测其他线路时效果明显较差,因此只适用于自身线路的预测;c.本研究提出的基于多任务学习架构建立的多条公交线路集成预测模型,不仅能够同时对五条线路的车程时间进行预测,总耗时最少,而且效果最优,其对于每条线路的预测性能均优于该线路的单任务预测模型得到的最优结果.在实现对所有线路车程时间同时预测功能的同时,采用多任务学习方法建立集成预测模型所消耗的资源远小于对所有线路单独建模所消耗的资源,表明采用多任务学习方法建立预测模型能使总体的建模效率更高.同时,所建立的集成预测模型对于每条线路的预测性能均优于对该线路单独建模的模型预测性能,这表明多任务学习方法能够起到增加每个子任务的有效学习样本、提升每个子任务的预测性能的作用,并且子任务的数据集数量越少,性能提升越显著.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读