改进的BP算法对移动用户行为预测的研究
2018-07-25陈春玲
陈春玲,陈 红,余 瀚
(南京邮电大学 计算机学院,江苏 南京 210003)
0 引 言
随着互联网的飞速发展,移动终端和智能手机的普及使得用户能够更加快速方便地获取信息,同时人们对移动网络服务的质量要求也越来越高。传统模式只是通过简单的局部数据来对移动用户的行为进行建模分析,其准确度和可信度较差,导致开发出的移动应用只能满足少数用户的行为习惯,而无法根据不同的移动用户的行为习惯来实现个性化的服务[1]。因此,寻求一种优质的网络预测模型具有重要的研究意义。
BP(back propagation)神经网络作为一种单向传播的多层前向网络,其主要目的是反复修正权值和阈值,使得误差函数达到最小值。由于BP神经网络具有独特的非线性映射能力和很强的自适应能力,通常被作为建模的有效工具,因此,文中采用BP神经网络模型对移动用户行为进行预测分析。但该模型也有收敛速度慢、预测精度不高、易陷入局部极值等缺点[2]。针对这些问题,提出了很多改进方法。例如,文献[3]通过采用遗传算法优化BP神经网络的权值和阈值,并通过“试错法”确定神经元数,该算法能达到预设目标的次数更多,实现全局最优,但是稳定性不高。文献[4]采用改进的PSO(particle swarm optimization)算法优化BP神经网络预测模型,在该算法中粒子群采用改进自适应惯性权重和改进自适应加速因子来优化BP神经网络模型初始时的权值和阈值,改进算法明显提高了模型的收敛速度,但是后期陷入局部极值的问题仍未得到解决。文献[5]基于改进粒子群算法和BP神经网络算法构建了网络舆情预测模型,该模型在预测性能上有一定的优越性,但在效率上处于劣势。
在此基础上,文中采用基于改进的PSO算法和GA(genetic algorithm)算法的BP神经网络模型对移动用户行为进行预测,并通过实验对算法性能进行验证。
1 预测模型相关理论
1.1 BP神经网络算法
BP神经网络(back propagation neural network)[6]是一种具有三层或三层以上的通过权值连接的网络,包含输入层、隐含层和输出层。隐含层又有单层和多层之分,上下层之间的节点通过权值相互连接,而同一层之间的节点无连接。隐含层与输出层中的各节点均有一个权值和阈值[7]。训练的过程是通过误差信号调节网络的连接权值和阈值,这个调节过程是反复进行的,直到训练次数达到最大值或者误差达到要求的精度,则训练结束,即找到全局最优解[8]。
1.2 BP神经网络预测模型设计
文中采用多隐层BP神经网络进行设计[9]。BP神经网络结构对移动用户行为进行预测的实质是利用移动用户的行为参数(通话行为和网络行为)构成的样本数据作为输入值,通过隐含层不断地学习、判断、更新,从输出层得到移动用户当前的操作行为的预测结果,并及时做出决策。步骤如下:
(1)采集用户真实行为数据作为样本数据,将样本数据分为两部分,一部分作为训练数据,一部分作为测试数据;
(2)数据预处理;
(3)构建BP神经网络的隐层数,迭代次数,目标函数;
(4)使用训练数据训练BP神经网络模型;
(5)用测试数据测试训练后网络模型;
(6)分析预测数据与期望数据之间的误差。
BP网络预测模型见图1。
图1 BP网络预测模型
2 改进的PSO-GA-BP算法
2.1 改进的PSO算法
粒子群算法(particle swarm: optimization,PSO)[10]是一种智能优化算法,通过模拟鸟类的觅食过程实现寻优。作为一种高效并行优化算法,可用于解决大量非线性、不可微的复杂优化命题,且具有实现简单、容易理解、收敛速度较快等优点[11]。同其他群体智能优化算法一样,PSO算法容易产生早收敛、全局收敛性能差的问题[12]。原因是在粒子寻优过程中,速度更新公式会对寻优结果产生直接的影响,速度较大可以增加算法的全局搜索能力,速度较小可以增加算法的局部搜索能力,如何平衡PSO算法全局和局部搜索能力是PSO算法改进的核心。为进一步提高PSO算法的全局搜索能力,避免陷入局部最优解,同时又不错过全局最优解,文中提出对惯性权重进行非线递减的优化公式。改进后的算法减弱了粒子优化早期和后期变化不稳定的问题,防止搜索过程中引起强烈振荡,从而提高了PSO算法的性能。
(1)
其中,ωmax和ωmin分别为最大和最小权重;λ为控制因子,控制惯性权重和加速因子同时变化引起的振荡;t为当前迭代次数;s为最大迭代次数。
2.2 遗传算法
遗传算法(genetic algorithm,GA)[13]是通过模拟自然界中生物进化规则而实现的一种搜索算法,具有操作简便、非线性、全局寻优以及并行性好等优点[14]。文中引入遗传算法的交叉、变异操作来增加优化后期粒子的多样性,从而扩大粒子搜索空间,防止陷入局部最优解。
交叉操作是产生新个体的重要操作,在二进制编码过程中,使用单点交叉法[15],从两个双亲子串中随机选择一点k作为交叉点,通过复制交叉点产生两个新的后代,每个后代的第k位从它的某个双亲的第k位复制得来,交叉点在第k位进行交叉操作的方法为:
(2)
变异操作是维持种群的多样性和提高算法局部寻优能力的重要手段。依据变异概率将个体编码串中的某些基因值用其他基因值来替换,从而形成一个新的个体。对于变异方式,文中采用单点变异[16]。
交叉概率pc和变异概率pm对遗传算法的优化性能起着重要的作用。为了避免种群发散和陷入局部极值,概率采用自适应变化[17]的遗传概率,在保证种群多样性的情况下不破坏适应度值高的种群。当种群在进化过程中由于陷入局部搜索空间而不能跳出时,可通过增加pm来摆脱这种情况,当种群在解空间比较分散时,pc和pm可适当减小。
(3)
(4)
文中利用PSO算法收敛较快和GA算法全局搜索能力较强两方面的优势来弥补BP神经网络预测模型的不足。本质上是将BP神经网络的训练误差作为PSO算法和GA算法的待优化目标函数,通过不断地评价粒子的适应度值来更新并寻找最优粒子所在的位置,直到达到预设的最大迭代次数或最小误差,最后将得到的最优值作为BP神经网络的较优初始连接权值和阈值,从而提高该预测模型的收敛速度和准确性。
2.3 基于改进的PSO-GA-BP算法的步骤
(1)确定BP网络拓扑结构,初始化PSO维度、速度、位置、惯性权重、学习因子、最大迭代次数等参数。
(2)根据适应度函数计算每个粒子的适应度值,将粒子当前所处的位置当作自身最优位置pib,将初始种群中粒子最优位置当作全局最优位置pgb。适应度函数为:
f(Xi)=E(Xi)-1
(5)
其中,E(Xi)见式8
(3)按以下公式更新每个粒子的速度和位置。
(6)
(7)
其中,r1,r2为0~1之间的随机数;c1,c2为学习因子;n为粒子数;d为解空间维度。
(4)更新粒子群算法的惯性权重ω(同式1),随着算法迭代次数的非线性变化结果为:
其中,最大权重ωmax=0.9;最小权重ωmin=0.1;λ为控制因子,控制惯性权重和加速因子同时变化引起的振荡,为了保证在整个搜索过程中输出误差平稳递减,λ通常取3。
(5)再次计算粒子适应度值,根据交叉、变异规则选择适当的粒子进行交叉、变异操作,更新种群。
(6)重复步骤2~5,采用改进的PSO算法和GA算法的交叉、变异操作优化BP神经网络的权值和阈值,直至达到预设的目标,则停止搜索,将优化后的权值和阈值作为BP神经网络训练的初始权值和阈值。
(7)进行BP神经网络训练,通过公式计算误差,直至达到预设的最大训练次数或者满足最小误差,训练结束。
(8)
(9)
(8)将优化后的BP神经网络用于对移动用户的行为预测。
3 实 验
3.1 实验条件
数据来源:徐州移动分公司2017年第一季度鼓楼区4G移动用户数据。
数据处理:对数据进行提炼、转换,获取该区域1 000名4G用户的行为特征,主要分为两类,即通话行为和网络行为。通话行为分为:通话时长、通话次数、短呼次数、长呼次数、漫游(主叫或被叫)呼叫次数、周末或工作日呼叫次数、短信收发条数等。网络行为分为:视频聊天时长、网上购物次数、网页浏览频率等,所有的行为属性为数值性属性。
参数设置:BP神经网络采用多隐层网络结构,隐含层传递函数设置为“logsig”,输出层函数选用purelin,迭代数取100,训练目标1.0e-005。遗传参数设置为:种群规模40,进化代数100,交叉概率0.7,变异概率0.01。粒子群算法参数设为:种群规模40,进化代数100,加速因子c1=c2=2,粒子最大速度vmax=0.5,惯性权重取值区间[0.2,0.9]。
(10)
(11)
(12)
(13)
3.2 实验结果
在Matlab2011a环境下,使用Matlab语言编程,构建三种预测模型,即:BP神经网络预测模型(BP)、基于标准PSO算法的BP神经网络预测模型(PSO-BP)和基于改进的PSO算法和GA算法的BP神经网络预测模型(IPSO-GA-BP)。通过这三种模型分别对移动用户行为进行预测。
采用Matlab进行实验仿真,对徐州移动分公司提供的测试数据进行预处理,得到符合模型要求的数据类型,然后输入到基于Matlab实现的BP神经网络移动用户行为分析模型中,最后得出输出的移动用户操作行为和实际移动用户操作行为的结果。图2~4是将测试数据分别输入到BP、PSO-BP和IPSO-GA-BP得到的预测结果。图5是三种网络预测模型的输出与实际用户行为值的误差对比图。表1是三种模型的误差指标比对。
图2 BP网络模型预测输出
图3 PSO-BP网络模型预测输出
图4 IPSO-GA-BP网络模型预测输出
图5 三种网络模型预测误差
算法MSEEMSEerr BP0.000 117 5330.010 841 2790.000 127PSO-BP1.49E-050.003 860 0520.000 016IPSO-GA-BP0.000 0030.001 732 0510.000 003
3.3 实验分析
通过仿真结果,对比图2~4可知,基于BP神经网络算法的网络预测模型输出拟合度最差,其次是PSO-BP网络预测模型。从图4可明显看出,基于IPSO-GA-BP算法的网络预测模型的预测结果更接近目标值,原因是IPSO-GA-BP算法融合了IPSO算法和GA算法的优势,弥补了BP神经网络算法易陷入局部极值、收敛速度慢、寻优精度低的缺陷。从图5和表1可知,IPSO-GA-BP算法比BP算法和PSO-BP算法更稳定、可靠。因此,文中提出的IPSO-GA-BP算法的网络预测模型在预测移动用户行为的准确性和可靠性方面具有较高的应用价值。
4 结束语
采用BP神经网络模型对移动用户行为进行预测,针对BP神经网络算法存在易陷入局部最优解、寻优精度低、收敛速度慢的问题,提出一种基于改进的PSO算法和GA算法的BP神经网络混合算法,即IPSO-GA-BP算法。该算法在BP神经网络算法的基础上融合了PSO算法和GA算法的优势,仿真结果表明,算法在对移动用户行为预测的精确度和稳定性上均有所提高。