摘" 要: 针对麻雀搜索算法(SSA)跟随者接近种群内个体最佳位置时收敛速度过快而导致易陷入局部最优的问题,文中提出一种基于动态自适应的改进型麻雀搜索算法(ASSA)。首先,在搜索寻优过程中,对发现者位置和跟随者位置进行动态更新,为保证算法在迭代后期的收敛速度,警戒者的个数采用线性递减的方式;其次,为防止算法陷入局部最优而导致的迭代中断,通过高斯随机分布形成新的发现者;最后,为验证改进算法的有效性,利用4种典型的函数进行测试,测试结果与SSA进行对比。结果表明:ASSA能够有效解决SSA易陷入局部最优的问题,并在收敛速度等性能上得到了有效提升。在此基础上,将ASSA算法应用到车联网驾驶行为识别中,通过优化BP神经网络,使得网络具有更高的识别准确率和性能。
关键词: 麻雀搜索算法; 动态自适应; BP神经网络; 驾驶行为识别; 车联网; 高斯随机分布
中图分类号: TN911⁃34; TP2" " " " " " " " " " " 文献标识码: A" " " " " " " " " " " 文章编号: 1004⁃373X(2024)23⁃0147⁃07
Dynamic adaptive sparrow search algorithm and its application
in driving behavior recognition in IoV
TU Youbin1, KAN Xinyu2, WANG Yan1, DENG Zhixiang2
(1. China Information Technology Designing amp; Consulting Institute Co., Ltd., Nanjing 210019, China;
2. College of Information Science and Engineering, Hohai University, Changzhou 213251, China)
Abstract: In view of the local optimum caused by the fact that the sparrow search algorithm (SSA) converges too fast when the follower approaches the optimal individual position in the population, this paper proposes an altered sparrow search algorithm (ASSA) based on dynamic adaptation. The positions of the discoverers and the followers are updated dynamically in the process of search and optimizing. Meanwhile, the number of watchmen is decreasing linearly in order to ensure the convergence speed of the algorithm in the later iteration. New producers are generated by Gaussian random distribution, so as to prevent the iteration interruption caused by the fact that the algorithm will fall into local optimum. Four typical functions are used to test the performance of the proposed algorithm to verify its validity. The test results are compared with SSA. The results show that the ASSA can effectively avoid the fact that the SSA is prone to falling into local optimum, and the convergence speed of the ASSA is satisfactory in comparison with that of the SSA. On this basis, the ASSA algorithm is applied to the driving behavior identification in the Internet of Vehicle (IoV). By optimizing the BP neural network, the ASSA algorithm makes the network have higher recognition accuracy and superior performance.
Keywords: SSA; dynamic adaption; BP neural network; driving behavior recognition; IoV; Gaussian random distribution
0" 引" 言
随着科学和工程问题的深入研究,对算法的性能优化要求越来越严格,传统的优化算法难以满足需求。因此,人们通过生物的群集行为,提出了许多群体智能优化问题,其中包括通过粒子追随找到最优解和整个群的最优解来完成的粒子群优化(Particle Swarm Optimization, PSO)算法;基于改进收敛因子策略和引入动态权重策略以及两种策略混合改进的灰狼优化(Grey Wolf Optimization, GWO)算法;基于模拟蚂蚁寻径行为的蚁群优化(Ant Colony Optimization, ACO)算法;基于麻雀种群中的觅食行为和反捕食行为提出的麻雀搜索算法(Sparrow Search Algorithm, SSA)等[1⁃5]。
SSA算法相较于其他群体智能优化算法具有鲁棒性强、收敛速度快、易操作等优点,但是SSA算法与其他群体优化算法类似,在跟随者接近种群内个体最佳位置时,由于其收敛速度过快,会导致种群多样性降低,算法容易陷入局部最优。为了进一步提高SSA的优化性能,本文提出了一种基于动态自适应的改进型麻雀搜索算法(Altered Sparrow Search Algorithm, ASSA),通过设置一定的选择概率同时依赖遍历性随机数来接近最优位置,这不仅保证了全局的收敛性,而且能够保证遍历搜索最优位置的可靠性,不会导致种群多样性的缺失,从而有效解决算法易陷入局部最优的问题。
本文对标准麻雀搜索算法进行改进,并系统地验证优化后的算法性能,使用改进型麻雀搜索算法优化标准BP神经网络模型,并将其应用在车联网驾驶行为识别检测上,对识别效果进行全面的对比,验证了此算法的可行性和有效性。
1" 自适应麻雀搜索算法
1.1" 麻雀搜索算法
麻雀搜索算法是2020年提出的基于麻雀种群搜寻食物区域同时躲避猎食者行为的群智能优化算法[5],具有较好的全局搜索和局部开发能力。
在SSA算法运行过程中,进行每一次迭代时,发现者的位置更新如式(1)所示:
[xt+1ij=xtij⋅exp-iα⋅itermax," " "R2lt;STxtij+Q⋅L," " "R2≥ST] (1)
式中:[t]代表当前迭代数;[j=1,2,…,d];itermax代表初始化时设置的最大迭代次数;[xtij]代表麻雀种群中第[t]次迭代时第[i]个个体的第[j]维位置;[α]∈(0,1]代表随机数;[R2]([R2]∈[0,1])和ST(ST∈[0.5,1])代表警戒值与安全值;[Q]为服从标准正态分布的随机数;[L]代表[1×d]的矩阵,矩阵中各元素均为1。在式(1)中,若[R2]lt;ST,表明当前觅食区域附近无危险,发现者能够对食物资源进行广泛搜寻;[R2]≥ST意味着觅食区域有危险,需要立刻前往安全区域进行觅食。
在每次迭代过程中,跟随者的位置更新描述公式如下:
[xt+1ij=Q⋅expxtwj-xtiji2," " " "igt;n 2xtij+xtij-xt+1pj⋅A+⋅L," " " "otherwise] (2)
式中:[xt+1pj]为第[t]+1次迭代时发现者的最优位置;[xtwj]为第[t]次迭代时的全局最差位置;[A]为[1×d]矩阵并且满足[A+=AT(AAT)-1],矩阵里各元素采用1或者-1随机进行赋值。如果[igt;n2],说明适应度值低的第[i]个跟随者没有获取到食物资源,必须飞向别的区域搜寻食物,获取个体所需的能量。
跟随者依据式(1)和式(2)更新自身位置,在麻雀群搜索食物时,若跟随者察觉到发现者搜寻到更优的食物资源,则会与其进行竞争,一旦战胜,立刻吞并发现者占有的食物,否则只能继续执行式(2)。
在模型构建过程中,警戒者的数量占种群的10%~20%,其位置是随机产生的。根据式(3),在每次迭代的过程中,警戒者位置更新的数学表达式如下:
[xt+1ij=xtij+β⋅xtij-xtbj," " " figt;fgxtij+K⋅xtij-xtwj(fi-fw)+ε," " " fi=fg] (3)
式中:[xtbj]表示第[t]次迭代时麻雀种群中的最优位置;[β]表示均值为0、方差为1的正态分布,是控制麻雀个体位置移动的随机数变量;[ fi]、[ fg]、[ fw]分别表示当前麻雀个体的适应度值、全局最优及最差适应度值,[figt;fg]意味着位于种群的边缘,易被猎食者捕食,[fi=fg]意味着种群内的警戒者察觉到了猎食者的存在,需要立即向安全位置移动;[ε]为常数,避免分母为零;[K]∈[-1,1]为随机数,既可以体现种群的迁移方位,同样也是控制麻雀个体位置移动的参数变量。
1.2" 基于动态自适应的改进型麻雀搜索算法
在发现者个体的位置更新公式中,当[R2lt; ]ST时,麻雀个体收敛于当前最优解的方式是直接跳跃到当前最优解附近,当麻雀搜索算法中的跟随者接近种群内个体的最佳位置时,虽然可以快速收敛,但由于收敛速度过快,会导致种群多样性降低,算法容易陷入局部最优。通过设置一定的选择概率,同时依赖遍历性随机数来接近最优位置,这不仅保证了全局的收敛性,而且能够确保遍历搜索最优位置的可靠性,不会导致种群多样性的缺失,能够有效解决算法易陷入局部最优的问题。具体更新规则如下。
1) 发现者位置更新公式修改为:
[xt+1ij=xtij+randn(0,1)," "概率为Psxtij-randn(0,1)," "概率为1-Ps," R2lt;STxtij+Q⋅L," " " " " " " R2≥ST] (4)
式中[Ps]为选择概率。当[R2lt;ST]时,表示附近没有天敌,发现者执行广泛的搜索,在搜索寻优过程中,对发现者位置进行动态更新,规则是:以概率[Ps]采用[xtij+randn(0,1)]进行位置更新,其他采用[xtij-randn(0,1)]进行位置更新;[R2]≥ST时,更新规则和原式相同,randn(0,1)表示均值为0、方差为1的高斯随机分布。
[Ps]的计算公式为:
[Ps=-exp1-titermax20+θ] (5)
式中[θ]为调整参数,设置为0.05。
2) 跟随者位置更新公式更改为:
[xt+1ij=Q⋅expxtwj-xtiji2," " "igt;n2xtij+xtkj-xtij×F×randn(0,1)," " otherwise] (6)
式中:[xtkj]代表发现者位置;[F]∈[0,1]代表跟随者跟随发现者寻找食物的概率。其他情况下跟随者以一定概率向发现者靠近,随机数[randn(0,1)]保证了全局的收敛性和种群的多样性。
3) 警戒者可用于提升SSA算法的全局搜索能力,但若警戒者的个数始终处于恒定状态,会在一定程度上减缓算法后期的收敛速度,所以对于警戒者个数的更迭,选择线性递减的方式。警戒者个数随迭代次数增加而线性递减的公式如下:
[Num=int1-titermax×Numi+1] (7)
式中:Num表示当前警戒者数量;[t]表示当前迭代次数;itermax表示最大迭代次数;[Numi]表示初始化时设置的警戒者数量。
4) 针对SSA算法因为陷入局部最优而导致出现的迭代中断现象,借助高斯随机分布的方式形成新的发现者个体,新的发现者个体位置定义见式(8)。
[xt+1i=Gaussian(xti,σ)] (8)
[σ=cosπ×t2itermax×xti-x*t(t)] (9)
式中[x*t]代表发现者群体中的任意一只麻雀。随着算法运行过程中迭代次数的上升,改进算法能够使算法整体和局部的搜索性能达到均衡。
1.3" SSA算法和ASSA算法性能对比测试
为了进一步体现标准麻雀算法以及改进型麻雀算法的有效性,采用以下4种常见的测试函数对算法性能进行测试。测试函数类型及定义如表1所示。
与目前常见的群智能优化算法相比,SSA具备收敛速度快的优势。在此基础上,还需要进一步比较SSA算法和ASSA算法的性能,评估改进后的麻雀搜索算法的优化效果。在进行SSA和ASSA模拟实验测试之前,必须对SSA和ASSA的各个参数进行设置,以确保自变量完全相同。其中:[n]为麻雀种群总量的数目,取值设为100;PD为发现者占种群总量的比例,取值为40%;SD为警戒者占种群总量的比例,取值为20%;[R2]为预警值,取0.6;迭代次数iter设定为100次;两种算法运行次数[C]=10次。
为了更加直观清晰地对比SSA算法和ASSA算法的优化过程及收敛速度,选取表1中4个函数进行对比分析。如图1所示,[f1(x)]、[f2(x)]为单峰测试函数,[f3(x)]、[f4(x)]为多峰测试函数,对每组测试函数运行10次,取平均值。
如表2所示是SSA算法和ASSA算法的测试对比情况,对4个标准测试函数独立测试10次得到最优值、平均值、最差值并取其平均值作为结果。
由上述实验展示的相关测试函数的结果,在相同的测试函数条件下ASSA算法无论是在收敛速度、达到目标值的迭代次数,还是优化过后的平均值、最小值、最大值等各个方面都要优于SSA算法,表明ASSA算法相比SSA算法在性能上得到了有效的提升。
2" 基于ASSA算法的车联网驾驶行为识别
2.1" 车联网驾驶行为识别流程
历史数据表明,近90%的碰撞事故是由驾驶员的错误驾驶行为引起的。车辆的智能化网联化是缓解交通事故、提高公路交通安全性能,保障人身安全及财产的有效技术和手段。对驾驶行为进行分析与预测是智能交通的研究热点内容之一[6]。车联网通过现代信息技术采集并融合车辆、路基和驾驶员等信息,通过物联网实现信息的互联互通,驾驶行为分析也是车联网领域的重要研究内容之一,主要方法包括机器学习、深度学习、人工神经网络[7]、基于注意力机制的识别方法[8]等。
车联网的重要工作是异常驾驶行为识别、驾驶行为预测和危险行为预警。车联网利用智能终端(如智能手机、车载OBD终端、行车记录仪等)携带的MEMS惯性传感器采集表征环境感知、车辆运行动态与驾驶行为的各种传感器数据[9],通过神经网络的训练,得到各类较为精准的驾驶行为模型,与感知数据关键特征匹配后确定其驾驶行为类别,然后进行驾驶行为预测和危险行为预警。车联网驾驶行为识别流程如图2所示。
车联网驾驶行为检测识别流程主要包括如下步骤:
1) 通过数据感知采集车辆行驶数据,并进行归一化和去噪;
2) 通过端点检测算法检测出驾驶行为的起止点,构建数据的特征向量;
3) 设计并改进分类识别算法,构建数据集对神经网络模型进行训练和测试,确定待识别驾驶行为的类别。
相对于传统模式识别算法,神经网络算法自动学习特征权重,有效挖掘数据的时空特性,具有准确度高、并行分布处理能力强、分布存储及学习能力强、对噪声有较强的鲁棒性和容错能力、能充分逼近复杂的非线性关系等优点。
2.2" ASSA⁃BP神经网络算法模型
由于BP神经网络初始的权值和阈值是随机选取的,易陷入局部极小值,导致训练模型的误差较大,分类识别效果不佳。SSA算法用于改进SVM性能,从而提高检测精度[10⁃13]。
本文将ASSA算法用于优化BP神经网络。首先,利用ASSA算法将BP神经网络中的权值和阈值映射为种群内麻雀个体位置的适应度值,并对ASSA模型中种群个体适应度值进行寻优;再将ASSA算法输出的最优适应度值映射为其训练模型的权值和阈值;然后进行训练,并计算和评估同BP神经网络产生的误差间的关系;最后,将BP神经网络产生的误差评价指标反馈给麻雀种群,利用适应度函数进行相应的适应度计算,搜索适应度值更优的麻雀个体。
ASSA⁃BP算法具体步骤如下。
步骤1:建立BP神经网络,确定神经网络拓扑结构。
步骤2:随机生成初始的权值和阈值并输入到BP神经网络中。
步骤3:使用训练样本和测试样本分别对BP神经网络进行训练和测试。
步骤4:如果达到训练精度,测试误差,并转至ASSA算法进行种群初始化;如果不满足训练精度且没有达到最大迭代次数,返回至步骤2;如果不满足训练精度但达到迭代次数,同样跳转至ASSA算法模块。
步骤5:将权值和阈值映射为麻雀种群内个体的适应度值,并根据适应度函数评估个体。
步骤6:采用动态自适应改进的方法,依据式(4)、式(6)、式(3)分别更新发现者、跟随者、警戒者的适应度值,利用最优解代替原有解。
步骤7:采用高斯随机游走策略,依据式(8)、式(9)生成新的发现者个体,引导种群跳出局部最小化,同时利用式(7)对警戒者数量进行调整。
步骤8:选择最优的适应度解,并判定是否满足结束条件,若不满足,则重新返回步骤2进行训练迭代直到满足设定的结束条件;若满足,则将最优的适应度值映射为BP神经网络最终的权值和阈值进行模型训练及分类识别。
采用ASSA算法来优化BP神经网络之前,需要对参数进行如下设置。
1) 设置ASSA算法的最大迭代次数itermax、警戒阈值[R2]、安全值ST。
2) 设置ASSA算法的参数,参数包括解决方案的数量([Nz])、麻雀种群的个体总数([Na])、发现者的数量([Nb])、跟随者的数量([Nc])以及解的维度[D]。
[Na=2Nz=Nb+NcNb=Nc] (10)
[D]维解向量包括神经网络的权值和阈值,解的维数满足式(11)。
[D=Ninput×Nhidden+Nhidden×Noutput+Nhidden] (11)
式中:[Ninput]、[Nhidden]、[Noutput]分别表示输入层、隐含层、输出层节点数。
3) 跟随者在现有发现者适应度值的基础上寻找新的更优适应度值,当跟随者进行位置更新时,计算该位置的适应度值,适应度值的计算如式(12)所示:
[fitness=argminw, b (MSE)] (12)
4) 警戒者检查跟随者的更新位置和报警值,判断是否需要重新初始化,寻优并实时更新适应度值。种群中麻雀个体重新初始化的定义如式(13)所示:
[Xi=Xmin+randn(0,1)(Xmax-Xmin)] (13)
式中:[Xi]、[Xmax]、[Xmin]分别表示个体重新初始化后的适应度值、种群个体最佳适应度值、种群个体最差适应度值。
全部迭代完成后,得到全局最优解,并将ASSA算法得到的输出值作为BP神经网络的初始权值和阈值,使用这些初始参数来训练BP神经网络。
2.3" 仿真结果分析
本文在Matlab软件环境下对数据进行识别和分类仿真。通过数据采集、去噪、归一化、端点检测等流程后共获取了3 250组实验数据。在实验中随机选取2 500组数据作为训练样本集,其余750组数据作为测试样本集。如表3所示,给六种不同的车辆驾驶行为添加样本标签,采用均方误差函数来计算BP神经网络训练过程中的误差值,其数学表达式如式(14)所示:
[MSE=1nmi=1mj=1n(x*ij-xij)2] (14)
式中:[m]是训练数据的个数;[n]是输出层节点个数;[x*ij]、[xij]分别是网络模型的目标输出值和实际输出值。
SSA⁃BP神经网络以及ASSA⁃BP神经网络的最大迭代次数itermax设置为5 000,目标均方误差值设置为0.001。SSA⁃BP神经网络及ASSA⁃BP神经网络模型进行训练时的均方误差(Mean Squared Error, MSE)曲线如图3所示。
通过图3a)能够发现,在使用SSA⁃BP神经网络训练时,当网络训练迭代次数为84次时,其均方误差达到0.000 951 1,达到设置的训练精度0.001,并且迭代次数下降非常明显,此时训练(Train)的最佳均方误差与目标均方误差曲线基本重合。通过图3b)可知,当使用ASSA⁃BP神经网络进行训练时,均方误差收敛速度更快,仅经过20次迭代,其训练(Train)的最小均方误差就已经达到了设定的目标均方误差精度0.001。
ASSA⁃BP的最优适应度和收敛速度都比SSA⁃BP有所提高,由此可以验证本文使用ASSA算法优化BP神经网络参数的有效性。
表4、图4是两种网络结构的分类识别准确率、精确率、召回率、[F1]值、假阳性率的对比。相比于标准BP神经网络,SSA⁃BP神经网络具有更快的收敛速度,对车辆驾驶行为的识别率达到了92.6%;而ASSA⁃BP神经网络使用更少的迭代次数便达到预先设定的训练精度,并且对异常驾驶行为的识别率可达到95%。从表4、图4b)中能够看出,本文主要研究的基于ASSA算法优化的BP神经网络结构在准确率、召回率、[F1]值以及假阳性率各方面要远好于标准BP神经网络。
3" 结" 论
本文基于动态自适应的方法对标准的麻雀搜索算法进行改进,系统验证了改进后的SSA算法具备更快的收敛速度和更好的寻优能力。采用4种常见的测试函数对ASSA进行测试,比较SSA算法和ASSA算法的性能,实验结果表明,在相同的测试函数条件下,ASSA算法相比于SSA算法在性能上得到了有效的提升。
基于改进后的SSA算法构建ASSA⁃BP神经网络模型,在车联网驾驶行为识别的BP神经网络训练过程中具有更好的学习效率和泛化能力。最后对SSA⁃BP和ASSA⁃BP两种网络模型的驾驶行为识别准确率和性能进行对比,结果表明,经过ASSA算法优化之后的BP神经网络模型对车联网驾驶行为拥有更高的识别准确率和更好的性能。
参考文献
[1] 郭振洲,刘然,拱长青,等.基于灰狼算法的改进研究[J].计算机应用研究,2017,34(12):3603⁃3606.
[2] 吕鑫,慕晓冬,张钧,等.混沌麻雀搜索优化算法[J].北京航空航天大学学报,2021,47(8):1712⁃1720.
[3] 严浩洲,刘旺盛,蔡振亮,等.改进麻雀搜索算法及其应用研究[J].东莞理工学院学报,2022,29(5):60⁃68.
[4] 张永,陈锋.一种改进的鲸鱼优化算法[J].计算机工程,2018,44(3):208⁃213.
[5] XUE J K, SHEN B. A novel swarm intelligence optimization approach: Sparrow search algorithm [J]. Systems science amp; control engineering, 2020, 8(1): 22⁃34.
[6] ANG L M, SENG K P, IJEMARU G K. Deployment of IoV for smart cities: Applications, architecture, and challenges [J]. IEEE access, 2018, 7: 6473⁃6492.
[7] 黄江涛,王鑫,乔少杰.面向车联网的自适应危险驾驶行为分析与预测框架[J].无线电工程,2023,53(6):1311⁃1320.
[8] WAND L L, YAO W J, CHEN C. Driving behavior recognition algorithm combining attention mechanism and lightweight network [J]. Entropy, 2022, 24(7): 984.
[9] LIU G Y, SHU C, LIANG Z W. A modified sparrow search algorithm with application in 3D route planning for UAV [J]. Sensors, 2021, 21(4): 1224⁃1235.
[10] 王海峰,行鸿彦,陈梦,等.基于SSA⁃SVM的海杂波背景下小信号检测方法[J].电子测量与仪器学报,2022,36(4):24⁃31.
[11] 谢国民,蔺晓雨.基于改进SSA优化MDS⁃SVM的变压器故障诊断方法[J].控制与决策,2023,38(2):459⁃467.
[12] 李英顺,张国莹,张杨,等.基于SSA算法优化SVM的发动机润滑油信息状态评估[J].润滑与密封,2023,48(2):129⁃134.
[13] 申志,李元.基于KPCA和SSA优化SVM的非线性过程故障检测[J].计算机与现代化,2023(6):15⁃20.
作者简介:涂友斌(1981—),男,江苏南通人,硕士研究生,高级工程师,研究方向为通信网络优化及智能算法。
阚欣宇(1999—),男,安徽合肥人,硕士研究生,主要研究方向为智能信号处理。
王" 岩(1983—),男,江苏泰州人,硕士研究生,高级工程师,研究方向为通信网络优化及智能算法。
邓志祥(1980—),男,江苏南通人,博士研究生,副教授,主要研究方向为物联网技术、人工智能。