一种基于神经网络的带宽预测方法与流程

文档序号:21360426发布日期:2020-07-04 04:33阅读:669来源:国知局
一种基于神经网络的带宽预测方法与流程

本发明涉及网络通信技术领域,特别涉及网络状况预测方法,具体涉及一种基于神经网络的带宽预测方法。



背景技术:

随着互联网的逐渐普及,网络通信技术不断提高,用户对于优质网络的需求日益提高,许多日常互联网应用依赖于带宽的稳定性。为了提高用户的实际体验,需要获知用户实时的可用带宽。例如用户观看视频时,若可用带宽小于每秒视频帧的大小,会造成视频卡顿,降低用户体验。开发者在开发直播视频软件时考虑到带宽的波动性,会加入视频码率及分辨率调整策略,在用户网络不佳时,降低带宽需求,达到流畅播放视频的目的。

目前主流的测量网络带宽的方法包括单包算法等,测量得到的带宽是当前时刻或当前时刻之前一段时间内的用户带宽。但是网络中的带宽是时刻变化的,直接测量得到的带宽无法反映未来一段时间的网络状态,且目前主流的测量网络带宽的方法耗费时间较长,计算复杂,不支持高并发,因此无法满足低测量间隔的需求。

由于带宽随时间不断变化,带宽测量间隔时间长。在实际应用中,历史带宽测量值可能与当前时刻的带宽测量值相差较大,指导意义较小。基于神经网络的带宽预测方法相比于使用直接测得的带宽数据,整体上能够提高准确性,但如何使用神经网络进行带宽预测,如何提升预测效果,都是需要解决的技术问题。



技术实现要素:

为了克服现有带宽测量间隔时间长、测量得到的带宽无法反映未来的带宽变化趋势的技术缺陷,本发明提供一种基于神经网络的带宽预测方法。

本发明采用的技术方案如下:

一种基于神经网络的带宽预测方法,具体步骤为:

步骤1,建立神经网络模型并进行训练,神经网络模型的输入为历史时刻的带宽变化特征,输出为未来时刻的带宽预测值,采用mse损失作为损失函数,并使用自适应矩估计优化器对神经网络模型进行优化;

步骤2,记录用户的实时带宽数据,并按照时间排序;将实时带宽数据按照设定的采样间隔进行采样;

步骤3,提取带宽的时序特征:其中,o表示滤波之前的带宽数据,m表示滤波之后的带宽数据;

步骤4,将带宽的时序特征输入训练好的神经网络模型,计算未来时刻的带宽量化因子:其中,n表示带宽数据的次序;

步骤5,将计算得到的带宽量化因子转换为预测的未来时刻带宽:

进一步地,所述步骤1中的神经网络模型采用mse损失函数,并使用自适应矩估计优化器对训练过程进行优化。

本发明在测得用户带宽的基础上,将带宽的变化特征作为输入,通过神经网络计算,预测出未来一段时间内的带宽。相比现有技术,本发明采用神经网络预测带宽的方法,减少了预测带宽与实际带宽的误差,弥补了现有带宽测量耗时长导致的预测带宽不够准确的缺陷。根据本发明方法输出的预测带宽,可以达到指导互联网应用调整网络策略的目的。

附图说明

图1为本发明方法的流程图;

图2为本发明实施例中四层神经网络结构图。

具体实施方式

下面结合实例对本发明作进一步的详细说明,有必要指出的是,以下的实例只用于对本发明做进一步的说明,不能理解为对本发明保护范围的限制,所属领域技术人员根据上述发明内容,对本发明做出一些非本质的改进和调整进行具体实施,应仍属于本发明的保护范围。

图1显示了本发明基于神经网络的带宽预测方法的流程图。具体的步骤如下:

步骤1,建立一个四层的神经网络模型,网络结构如图2所示。

第一层网络作用于输入的数据,利用lstm层(long-short-memory)提取输入的时间序列的特征,并存储一部分长期和短期的特征进网络里,这一层输入时间序列的长度为5,输入特征数量为1,隐层结点数为12,遗忘门阈值为0.5,激活函数为leaky_relu(0.3)。

第二层为隐层结点数为64的全连接层,用于将低维的数据特征映射到高维空间域中。

第三层为dropout概率为0.5的dropout层,用于随机失活隐层神经元,防止神经网络过拟合。

第四层为隐层结点数为1的全连接层,用于将高阶特征转换为预测的未来网络带宽。

上述神经网络的训练采用有监督学习的方式,步长为0.001。其中,训练时以30组数据为一批,送入模型进行训练。自适应矩估计优化器的初始学习率为0.001,每隔100批数据,学习率变为之前的0.98,学习率最小不超过0.00001。自适应矩估计优化器的参数采用tensorflow框架中的默认值,即β1系数为0.9,β2系数为0.999,ε系数为1e-8。神经网络的输入为经过特定处理之后得到的历史网络状态特征,标签为经过特定处理之后得到的带宽因子,得到历史网络状态特征和标签需要以下步骤:

步骤11,将3分钟采样频率的数据进行核为3的中值滤波,得到滤波之后的数据记为(m0,m1,m2,m3,m4…mn)。滤波之前的带宽数据记为(o0,o1,o2,o3,o4…on)。计算每个对应点的相对差值i=0……n,n表示带宽数据的次序。

步骤12,遍历采样点,取最近5个采样点的相对差值(σt,σt-1,σt-2,σt-3,σt-4)作为时间为t时神经网络的输入it。

步骤13,取下一个采样点的带宽量化因子作为时间为t时神经网络的输出lt,

验证训练成果采用交叉验证的方式,即将输入与标签的集合分为两部分,分别是用于神经网络训练的训练集以及用于神经网络效果测试的测试集。当神经网络模型在测试集上的表现达到需求时,训练结束并保存神经网络模型。

步骤2,将测量得到的带宽记录按照时间进行排序,按照5分钟间隔采样,输出采样之后的数据。

步骤3,将步骤2得到的采样之后的数据进行核为3的中值滤波,得到滤波之后的数据记为(m0,m1,m2,m3,m4…mn)。滤波之前的带宽数据记为(o0,o1,o2,o3,o4…on)。计算每个对应点的相对差值即历史带宽数据的特征,将该特征作为步骤3的输出。

步骤4,取最近5个采样点的相对差值(σn,σn-1,σn-2,σn-3,σn-4)作为步骤1神经网络的输入。经过神经网络运算之后,得到并输出未来时刻带宽的量化因子p,p的数学意义为

步骤5,由步骤4得到的带宽的量化因子p,根据公式计算得到下一时刻的带宽预测值,

需要说明的是:步骤1中,神经网络可以为任何形式的神经网络,并不局限于本实施例中给出的四层神经网络。步骤2中,采样间隔可以为任意采样间隔,包括1分钟、2分钟、3分钟、15分钟等,但理论上采样间隔越小,预测得到的未来时刻带宽数据越准确,越具有指导意义。步骤3中提取的带宽特征可以替换为任何形式的,通过数学运算可以得到的时序特征,包括平滑、滤波等处理之后的单个或一系列数字,例如,带宽数据的一阶差分、二阶差分、平滑值等数据特征及它们的组合。步骤4中采样点的个数根据实际效果可以任意更改,量化因子代表的含义应随神经网络训练时的标签的含义做出相应的改变,例如,以一阶差分值为训练标签时,即li=oi+1-oi,则实际应用时,输出的量化因子的含义也应该是p=oi+1-oi,其中oi+1是下一时刻的带宽值,oi是当前时刻的带宽值,li是当前时刻的训练标签,p为当前时刻神经网络的输出,即当前时刻计算得到的带宽量化因子。步骤5中量化因子到预测带宽的转换公式应与量化因子的含义一致。

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