一种模型增量更新的方法及系统

文档序号:25212296发布日期:2021-05-28 14:08阅读:208来源:国知局
一种模型增量更新的方法及系统

本公开属于计算机技术领域,尤其涉及一种模型增量更新的方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

移动安全是安全领域的关键问题之一。平均使用的36种设备中就有一种处于高风险,av-test最新报告,2019年,沉寂长达三年的恶意应用再次呈现出急速增长。monet报告中,97%的移动恶意软件来源于android平台,99%的移动恶意软件存在于没有足够的恶意软件筛选机制的第三方应用商店。

为了对抗上述威胁,一方面,基于机器学习技术的android恶意软件检测被提出来,通过分析恶意软件静态和动态特征来进行恶意应用的检测。然而,攻击者可以经常使用技术更新他们的恶意代码,例如代码混淆方法,以重新包装恶意软件。因此基于学习和内容信息的软件预测器,在检测新的恶意应用或者零日软件时,会出现随着时间推移检测效果变差的问题即概念漂移。另一方面,通过分析恶意应用的恶意网络行为来对android恶意应用检测是一种比较有前途的方法,通过学习恶意应用的网络行为,nids可以识别正常和恶意应用之间的网络痕迹,从而达到检测恶意应用的目的。不幸的是,nids同样存在这种随着时间推移,检测效果衰减的问题。

为了解决概念漂移带来的模型检测效果衰退问题,保持模型的检测效果,不可避免的,不时对模型进行升级或重新训练。

现有大部分工作重点关注增量模型方面的研究,在原有模型基础上,增加新数据进行增量训练,从而避免模型在大量数据训练时带来的巨大的时间消耗。先不论这种方式有效性,单一的从模型方面去解决概念漂移问题,带来的增益是有限的。解决概念漂移问题,模型不可避免的要进行重新训练问题,因此重训练样本规模,样本标记成本,模型历史知识保留情况,老旧数据对新数据分布的影响都是需要考虑的因素。只有综合各个方面,才能有效的解决概念漂移问题带来的模型检测效果的衰减问题。



技术实现要素:

为克服上述现有技术的不足,本公开提供了一种模型增量更新的方法,来应对概念漂移带来的检测模型效果衰退的问题。

为实现上述目的,本公开的一个或多个实施例提供了如下技术方案:

第一方面,公开了一种模型增量更新的方法,包括:

对采集的网络流量进行分流和特征提取,构成数据集,分为训练集及测试集;

针对上述训练集中样本通过时间窗口处理以抑制样本规模无限增长,通过样本循环筛选保留模型历史知识,减少老旧数据对现有模型的负面影响,获得更新模型。利用测试集对更新模型模型测试,直至更新模型模型预测精度下降到设定阈值。

进一步的技术方案,使用归纳保形技术筛选出携带新知识和复杂知识的样本,将此类样本添加到训练集参与模型的重训练,获得更新模型。使用更新模型进行测试,直至模型预测精度下降到设定阈值。

进一步的技术方案,获取网络流量;

对捕获的流量文件进行分流操作,分流按照五元组进行分流;

将分流操作后的文件进行特征提取,提取后的特征将会以需要的格式保存;

对上述格式的特征文件进行解析,相关计算和数字化,并保存到csv文件中。具体的,特征文件的处理方式用户根据实际需求设计。

进一步的技术方案,对数据集使用特征选择器进行特征选择,特征选择器与模型训练器使用同一种分类器,保证选择特征与模型训练器侧重一致,选择特征数量根据需要调整;

优选的,保留大于特征重要程度平均值的特征。设定不同时间窗口的训练集,进行模型训练并进行测试,确定最优时间窗口。

进一步的技术方案,对模型训练器进行训练后,获得训练后的模型,使用得到的模型进行预测,实时预测或离线预测。

进一步的技术方案,模型更新时,包括:

数据合并:将训练集时间窗口末尾的数据与测试集数据进行合并,其中,训练集时间窗口末尾的数据同测试集时间长度一致;

数据选择:对合并数据进行数据选择,使用归纳保形技术将携带新知识和复杂知识的数据进行筛选,筛选后的数据集作为训练集时间窗口头部数据,然后删除时间窗口尾部的数据,数据更新放头部,时间窗口前移;

使用新的训练集,重新训练模型,当携带复杂知识的数据占据新增数据一定比例或模型精确度降低到设定阈值,重新进行特征选择和模型训练。

关于训练集时间窗口末尾,用户可根据实际需要设置时间长度,本公开技术方案为一个月。

第二方面,公开了一种模型增量更新的系统,包括:

数据采集并处理模块,对采集的网络流量进行分流和特征提取,构成数据集,分为训练集及测试集;

模型更新模块,针对上述训练集中样本通过时间窗口处理以抑制样本规模无限增长,通过样本循环筛选保留模型历史知识,减少老旧数据对现有模型的负面影响,获得更新模型,利用测试集对更新模型模型测试,直至更新模型模型预测精度下降到设定阈值。

关于具体筛选方式在见详细的实例中解释。

以上一个或多个技术方案存在以下有益效果:

本公开实施例子提出了一种带有新知识和复杂知识的数据筛选方式,大幅度减少人工标记样本数量,减少训练数据规模,一定程度可以减少非平衡对模型性能的影响。

本公开实施例子通过时间窗口和数据循环选择的方法,抵抗老旧冲突数据对模型性能的影响,限制训练数据集的无限增长,理想状态下,当模型学习到全部知识,模型将会收敛,不再新增任何数据。

本公开实施例子提出的方案不仅仅适用于lightgbm,同样适用于任何带有概率预测的模型,是一种通用的解决概念漂移方案。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本公开实施例子的整体流程图;

图2为本公开实施例子基于时间窗口和数据循环选择方法的训练集更新流程图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

实施例一

参见附图1所示,本实施例公开了一种模型增量更新的方法,包括:

步骤(1):对采集的网络流量进行分流和特征提取;

步骤(2):对提取的特征进行特征选择;

步骤(3):模型训练;

步骤(4):模型测试;

步骤(5):模型更新,重复步骤4-5,如果模型预测精度下降到设定阈值,重复步骤2-5;

具体实施例子中,步骤(1)步骤为:

步骤(1-1):使用tshark命令获取网络流量,详细指令如下:

tshark-bduration:<抓一个包持续时间>-i<网络接口>'tcp'-w<pcap路径>;

这流量捕获可根据具体情况进行命令编写。

步骤(1-2):使用pcapsplitter工具对捕获的pcap流量文件进行分流操作,pcapsplitter分流按照五元组(源地址、目的地址、源端口、目的端口、协议)进行分流,详细指令如下:

pcapsplitter-m'connection'-i'tcp||udp'-f<pcap路径>-o<分流目录>;

步骤(1-3):使用joy工具将分流操作后的pcap文件进行特征提取,提取后的特征将会以json格式保存。特征提取指令为:

joybidir=1dist=1entropy=1tls=1ssh=1http=1ppi=1output=<pcap路径>;

这里特征提取可根据具体情况进行命令编写。

步骤(1-4):对json格式的特征文件进行解析,相关计算和数字化,并保存到csv文件中。这里特征提取,计算,数字化根据需求进行改动。

具体实施例子中,步骤(2)步骤为:

步骤(2-1):使用sklearn.feature_selection包中selectfrommodel对数据集进行特征选择,选择特征数量可以根据需要调整,默认保留大于特征重要程度平均值的特征。

不同的训练器对于特征有着不同的侧重,为了让选择的特征更加符合训练器,特征选择器与模型训练器使用同一种模型。这里选择性能强大,训练快速的ligntgbm作为类选择器进行特征选择,同样,lightgbm也作为模型训练器进行模型的训练。

具体实施例子中,步骤(3)的步骤为:

步骤(3-1):为了控制训练集数据规模,我们使用固定时间窗口将数据限定在某一时间段中。沿时间轴分布的数据并非数据量越大越好,老旧数据分布与新数据分布不同,将会造成特征相近,标签不同的问题,这种不符合现有数据分布的老旧数据我们称为冲突数据。使用时间窗口方法还可以减少老旧冲突数据对模型的负面影响。

步骤(3-2):根据步骤(3-1)得到的时间窗口确定数据集,使用lightgbm作为模型训练器,进行模型训练,python中可以使用pip安装lightgbm包。

具体实施例子中,步骤(4)的步骤为:

步骤(4-1):模型预测,使用步骤(3)得到的模型进行预测,可实时,可离线。

具体实施例子中,步骤(5)的步骤为:

步骤(5-1):数据筛选,数据筛选的目的是将含有新知识和复杂知识的样本选择出来。以累计一个月的测试数据作为需要筛选的数据,步骤(4-1)可以得到一个样本在不同类别上的预测概率值,对于每一个样本我们有如下计算:

其中n为测试集样本数量,i代表样本类别,j代表单个样本编号,代表样本xj属于类别yj的概率值,h(x|h)为0-1函数,当x<h时,取0,否则取1。通过上述公式,我们可以计算出每个样本在统计上的p-value值,即p(yi|xj)。

设置置信水平ε=0.2,对于二分类问题,如果p(yi|xj)均落在拒绝域,则认为该样本既不符合正类样本集数据分布,也不符合负类样本集数据分布,对于这种样本,认为该样本携带有新的知识。同样对于p(yi|xj)均落在接受域,认为该样本既符合正类样本集数据分布,也符合负类样本集数据分布,对于这种样本,认为该样本携带有复杂知识,这种知识现有的特征无法进行类别区分。

具体的筛选时,归纳保形技术可以将每一个样本预测与统计学上的置信度相关联,通过设置置信水平,从而判定样本所述类别。我们将那些不属于任何类别的样本定义为携带新知识的样本,那些属于多个类别的样本定义为携带复杂知识的样本。

需要说明的是:python可安装nonconformist包来使用更多的归纳保形方法。

归纳保形的解释:inductiveconformal归纳保形(共形预测),保形预测可以将每一个样本预测与统计学上的置信度相关联。

使用该技术,可以计算出测试样本属于某一类别的p-value值,通过设置置信水平α,就可以确定该样本所属的类别。

步骤(5-2):数据重复选择,将训练集时间末尾的一个月的数据(同测试集时间长度一致)与测试集数据进行合并,使用步骤(5-1)的方法对合并数据进行数据选择,保留携带新知识和复杂知识的数据,然后筛选后的数据集作为训练集时间头部一个月数据,然后删除尾部一个月的数据。

步骤(5-3):使用新的训练集,重新训练模型。当复杂知识数据占据新增数据一定比例或模型精确度降低到设定阈值,重新进行特征选择和模型训练。

基于时间窗口和数据循环选择方法的训练集更新,ic:归纳保形,如图2所示,展示了模型预测完毕,训练集更新过程。其中每一个圆圈代表一个月的数据,7圆圈为预测完毕的测试集,图2中,时间窗口为圆圈1-6,6个月的数据作为训练集,当圆圈7预测完毕,合并圆圈1和圆圈7,通过归纳保形技术选择含有具备新知识和复杂知识的数据,得到的数据集作为圆圈7,放在训练集时间窗口头部,然后开始预测序号8。

实施例二

本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。

实施例三

本实施例的目的是提供一种计算机可读存储介质。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行上述方法中的步骤。

实施例四

本实施例的目的是提供了一种模型增量更新的系统,包括:

数据采集并处理模块,对采集的网络流量进行分流和特征提取,构成数据集,分为训练集及测试集;

模型更新模块,针对上述训练集中样本通过时间窗口处理以抑制样本规模无限增长,通过样本循环筛选保留模型历史知识,减少老旧数据对现有模型的负面影响,获得更新模型,利用测试集对更新模型模型测试,直至更新模型模型预测精度下降到设定阈值。

本公开技术方案使用归纳保形的思想筛选出测试数据集中携带新知识或复杂知识的数据,用于训练数据集和模型的迭代更新;使用时间窗口限制训练数据集的规模;使用数据循环选择的方法来抑制老旧冲突数据对训练模型的负面影响和训练数据集的无限增长。当携带复杂知识的数据占据新增数据一定比例或模型精确度降低到设定阈值,重新进行特征选择,数据集构建和模型训练。

以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本公开中的任一方法。

本领域技术人员应该明白,上述本公开的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本公开不限制于任何特定的硬件和软件的结合。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

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