基于强化学习的大流检测方法与流程

文档序号:16308368发布日期:2018-12-19 05:10阅读:378来源:国知局
基于强化学习的大流检测方法与流程

本发明涉及计算机技术领域,具体涉及基于强化学习的大流检测方法。

背景技术

数据中心的规划、运营管理、计费和安全审计都需要细粒度的网络流量测量。netflow和sflow都是基于流的测量方式,他们能提供细粒度的网络流量测量,但是他们需要特定网络设备或特定的功能支持,比如netflow只能在思科的设备上使用。另外一方面,由于实际网络中待测量的流量信息数据巨大,基于流的测量方法通常需要耗费大量网络资源(网络带宽、节点存储和计算等),其可扩展性很差。对netflow来说,网络资源的限制每个包的处理时间,当高速交换机中,每个数据包的处理时间有限。而在sdn(软件定义网络)中,交换机受限的资源是三态内容寻址存tcam资源,每一条tcam资源只能测量一条流。由于资源的不足,netflow会采用一种采样的方式进行测量,这会降低测量的准确性。flowradar提供了一种在交换机资源限制条件下,实时细粒度地测量每一条流的方法,它通过将每条流的计数器进行压缩进而减少包的处理时间和网络负载的占用,它的缺点就是需要对交换机进行更改,无法在现有的网络中进行部署,同时也会增加网络部署代价。

istamp提出一种流量聚合和解耦的方法,通过流量聚合减少tcam资源的使用,通过流量解耦为流量较大的流提供细粒度的测量。由于流量的大小是变化的,因此被解耦的流也是需要经常变化的,这需要算法能实时地找出当前网络中流量较大的流,并进行测量。

上述问题本质上一个多臂赌博机mab(multi-armedbandit)的问题,在这个问题模型中,有许多外表一摸一样的老虎机,每个老虎中奖的概率不同,并且会随着时间的变化而变化。一个赌徒每次摇老虎机都会花费一定的成本,如何最大化收益就是多臂赌博机要求解的问题。当赌徒找到一个中奖概率较高的老虎机时,它可以选择继续摇该老虎机,以获得稳定的收益。但是有可能会存在中奖率更高的老虎机,或者该老虎机的中奖概率会随着时间下降,因此另外一个比较长远的打算是——损失一部分当前奖励,探索其他的老虎机。在贪心的选择当前最优和探索其他可能性之间如何平衡是多臂老虎机要解决的主要问题。

解决mab的算法目前已经有许多,其中较为直接的就是贪心策略,按照一定的概率,比如0.95的概率进行贪心选择当前最优,留下0.05的概率机会去探索其他更优的解。贪心策略的明显缺点就是没有充分利用上下文的信息,比如有可能多个老虎机之前存在相关性。根据这个思想,基于上下文的多臂赌博机算法应运而生。基于上下文的多臂赌博机算法会记录一个d维的特征数组,每次迭代做出选择时,都会更新维特征数组,这个d维特征数组记录的就是上下文相关的数据。算法的目的是收集足够多的信息,以便于发现上下文和奖励之间的相关性,这样每次可以做出最优选择,进而获得最大的收益。常见的基于上下文的多臂赌博机算法有上置信界算法ucb(upperconfidencebound)、神经网络和随机森林。

istamp使用mucb(modifiedupperconfidencebound)来检测大流,但是其没有利用流的相关性,准确度较低。

目前对于网络流量测量的多种算法均存在检测测量准确度较低的问题。



技术实现要素:

本发明所要解决的技术问题是目前对于网络流量测量的多种算法均存在检测测量准确度较低的问题,目的在于提供基于强化学习的大流检测方法,解决上述问题。

本发明通过下述技术方案实现:

基于强化学习的大流检测方法,包括以下步骤:s1:对数据流进行检测得到流检测数据;s2:采用历史样本缓冲池对检测数据模型进行优化;s3:采用优化后的检测数据模型对流检测数据进行大流判断,并对大流进行再次检测;s4:将流检测数据放入历史样本缓冲池,并再次依次执行s2、s3和s4直至检测结束。

进一步的,步骤s3包括以下子步骤:s31:检测数据模型根据当前状态对数据流进行评分;s32:选取k个流进行检测,得到新的流检测数据和新的网络状态;s33:根据新的流检测数据和新的网络状态得到当前检测的奖励值。

进一步的,步骤s32包括以下子步骤:设置概率门限epsilonthreshold;当随机概率小于epsilonthreshold时,随机选取k个流进行检测;当随机概率大于epsilonthreshold时,对流的评分进行倒序排序,并选取得分最高的k个流进行检测。

进一步的,所述epsilonthreshold通过下式得到:

式中steps为检测的次数;εs为概率上限;εe为概率下限;εdelay为速率参数。

进一步的,步骤s33包括以下子步骤:将检测到的网络流量比例占所有网络流量的比例作为奖励值reward;reward通过下式得到:

式中,action为当前应该检测流的集合;last为上一次检测到流的大小的集合;measure为当前检测到流的大小的集合。

进一步的,步骤s4包括以下子步骤:放入历史样本缓冲池的流检测数据包括:当前网络的状态state;根据当前网络状态state做出的决策aciton;做出决策后的转移到的状态next_state;每一条流的奖励值reward。

进一步的,步骤s2还包括以下子步骤:根据当前网络状态state和出决策后的转移到的状态next_state得到检测值和模型值的误差;根据检测值和模型值的误差对模型进行优化。

进一步的,所述模型采用神经网络模型。

本发明与现有技术相比,具有如下的优点和有益效果:

本发明将网络的链路状态和流的历史测量信息作为状态,将流的测量大小作为奖励值,采用基于强化学习的大流检测方法对网络中的大流进行检测,能充分提取流的相关性等特征,能提高大流检测的准确度。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明方法步骤示意图;

图2为本发明系统结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例

如图1和图2所示,本发明基于强化学习的大流检测方法,包括以下步骤:s1:对数据流进行检测得到流检测数据;s2:采用历史样本缓冲池对检测数据模型进行优化;s3:采用优化后的检测数据模型对流检测数据进行大流判断,并对大流进行再次检测;s4:将流检测数据放入历史样本缓冲池,并再次依次执行s2、s3和s4直至检测结束。

步骤s3包括以下子步骤:s31:检测数据模型根据当前状态对数据流进行评分;s32:选取k个流进行检测,得到新的流检测数据和新的网络状态;s33:根据新的流检测数据和新的网络状态得到当前检测的奖励值。

强化学习的理论基础时马尔科夫决策过程,在马尔科夫决策过程中,在不同的状态st下,做出不同的行动at,会得到不同的奖励r(st,at)。在不同的状态st下,做出不同的行动at,环境会动态的按照概率p(st+1|st,at)改变到一个新的状态st+1。而强化学习的目标就是学习出一个策略πθ(st,at),即在当前的状态st下,应该做出什么行动at,其中的θ就是我们的策略参数,强化学习目标就是不断优化策略参数θ。行动at不仅会直接影响当前的收益,由于下一个状态也是收到该行动的影响,因此该行动还会对未来的收益产生影响,这被称为延迟收益。

步骤s32包括以下子步骤:设置概率门限epsilonthreshold;当随机概率小于epsilonthreshold时,随机选取k个流进行检测;当随机概率大于epsilonthreshold时,对流的评分进行倒序排序,并选取得分最高的k个流进行检测。

所述epsilonthreshold通过下式得到:

式中steps为检测的次数;εs为概率上限;εe为概率下限;εdelay为速率参数。

一开始对所有的流进行一次测量,得到当前所有流的大小。在算法运行的初期,我们应该更多的探索,以收集信息,而在算法后期,可以减少探索的概率,以获得很高的收益。为此,我们设定一个概率门限epsilonthreshold,当低于epsilonthreshold时,我们随机选取k个要观测的流。如果高于epsilonthreshold,那么我们根据算法对每条流的评分进行倒序排序,选取其中得分最高的k个流进行观测。概率门限的公式为:

随着算法的运行,门限值逐渐从εs降低到εe,典型的取值为εs=0.95,εe=0.05,算法刚开始运行时,会有很大的概率随机选择进行探索,在算法后期,算法会以很大概率选择当前的最优策略,但是仍然会留下很小的概率进行探索。在这个阶段我们得到了当前应该测量流的集合action。通过调节εdelay的值可以调节降低速率。

步骤s33包括以下子步骤:将检测到的网络流量比例占所有网络流量的比例作为奖励值reward;reward通过下式得到:

式中,action为当前应该检测流的集合;last为上一次检测到流的大小的集合;measure为当前检测到流的大小的集合。

步骤s4包括以下子步骤:放入历史样本缓冲池的流检测数据包括:当前网络的状态state;根据当前网络状态state做出的决策aciton;做出决策后的转移到的状态next_state;每一条流的奖励值reward。

保留了每一条流上一次测量时的大小,如果重新测量了该流,就用新值替代更新,如果没有就保留上一次的值。将测量到的网络流量比例占所有网络流量的比例作为选取结果的好坏,使用当前测量到的流量之和除以对每一条流的估计值之和,可以得到当前策略的一个估计得分reward。计算公式为:

选取过去k个测量周期内的每条流的大小。将之前k个周期内的所有测量值都保存了下来,模型可以提取出更多的上下文信息。通过调整k的大小,我们可以提取不同时间尺度的特征。将当前策略下的测量情况保存下来,将(state,aciton,next_state,reward)保存到一个历史样本缓冲池,state是当前网络的状态,具体为过去k个测量周期内每条流的大小;aciton是根据当前状态state做出的决策,保存选取哪些流量进行测量;next_state是做出决策后的转移到的状态,即更细之后的流量测量数据;reward是对每一条流的奖励值估计,如果该条流被测量就为流量占总流量的大小,否则为0。

步骤s2还包括以下子步骤:根据当前网络状态state和出决策后的转移到的状态next_state得到检测值和模型值的误差;根据检测值和模型值的误差对模型进行优化。

使用历史样本缓冲池里面的数据对模型进行优化。模型根据state得到state_values,根据next_state得到next_state_values。实际环境对state得到的奖励值是reward。target=next_state_values*γ+(1-γ)*reward中的γ是一个0到1的数,用于控制潜在汇报的衰减。理想情况下,state_values和target的差值应该很小。将losss(state_values,target)得到的误差对模型进行优化。

所述模型采用神经网络模型。

使用到的模型是一个神经网络,输入为过去k个周期的测量值组成的状态action,输出为对应每条流的估计奖励值reward,是softmax归一化之后的值,softmax归一化的公式为损失评价函数我们采用smoothl1loss,如下所示:

将网络的链路状态和流的历史测量信息作为状态,将流的测量大小作为奖励值,每次的策略为选取k个最大的流进行测量;采用基于强化学习的大流检测方法对网络中的大流进行检测,能充分提取流的相关性等特征,能提高大流检测的准确度。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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