网络异常行为数据分析算法的制作方法

文档序号:33171369发布日期:2023-02-04 02:37阅读:26来源:国知局
网络异常行为数据分析算法的制作方法

1.本发明涉及数据分析技术领域,尤其涉及网络异常行为数据分析算法。


背景技术:

2.随着现代社会互联网技术的高速发展,网络之间的互联与数据交互使得人与信息之间的关系更加密切,网络安全的保障显得尤为重要,随着网络攻击技术发展越来越快,人们收集数据的方式与渠道也越来越多,因此导致从各种来源产生和收集网络异常数据惊人的增长且复杂性也显著增加。
3.现有技术存在以下不足:现有数据分析算法无法从分布式文件系统hdfs中获取数据进行训练,从而导致进行异常数据检测时仅能集中检测网络中的异常数据,计算效率低。


技术实现要素:

4.本发明针对现有技术的不足,提供了网络异常行为数据分析算法。
5.本发明通过以下技术手段实现解决上述技术问题的:网络异常行为数据分析算法,所述分析算法包括以下步骤:
6.s1:模型训练
7.将sparkmodel模型和大数据处理平台spark结合进行深度学习的并行计算;
8.s2:分布式训练
9.sparkmodel模型经过各个worker并行训练得到;
10.s3:分布式检测
11.sparkmodel模型对离线数据进行检测,将异常数据筛选出。
12.在一个优选的实施方式中,步骤s2中,模型训练还包括以下步骤:
13.s2.1:用户定义网络添加层,指定损失函数和优化器,初始化模型架构以及模型参数并创建算法模型;
14.s2.2:将算法模型以及worker数量,配置参数信息封装成sparkmodel模型;
15.s2.3:利用spark的广播机制,将sparkmodel模型中的算法模型分发到各个worker上,模型的结构与模型的参数序列化广播到worker上;
16.s2.4:利用算法模型和数据进行训练,得到新的参数。
17.在一个优选的实施方式中,所述算法模型为keras模型,步骤s2.4中:在worker上包括同步更新参数;
18.s2.4.1:在每个worker训练一遍之后将得到的梯度汇总,求平均值更新参数;
19.s2.4.2:将参数广播到worker上面,接着下一轮的计算,在总的迭代次数结束之后,master保存模型。
20.在一个优选的实施方式中,步骤s2.4中:在worker上还包括异步更新参数;
21.s2.4.3:在一个worker计算好梯度之后便直接利用urllib2库将梯度传递给master;
22.s2.4.4:master调用update_parameters()函数更新参数,并将参数回传给worker,在迭代次数完成之后,master保存模型。
23.在一个优选的实施方式中,步骤s3中,sparkmodel模型对离线数据进行检测,将异常数据筛选出还包括以下步骤:
24.s3.1:根据模型存储的路径,通过load_model()函数将模型加载完毕,再根据保存的配置信息,构建sparkmodel模型;
25.s3.2:将sparkmodel里的model参数和结构序列化,利用spark的广播机制,将模型与配置信息广播到各个worker上;
26.s3.3:spark从分布式文件系统hdfs上读取数据到各个worker,然后每个worker利用model.predict_classes()对分发到的数据进行计算;
27.s3.4:spark通过saveastextfile()将结果保存到hdfs,或通过websocket将结果传递到前端展示。
28.在一个优选的实施方式中,所述sparkmodel模型训练前,通过平均调度延迟的回归方程来计算初始的时间间隔,计算公式为:
[0029][0030]
式中,bi为时间间隔的初值,w1,w2,w3,w分别为批次时间间隔,worker数目,输入速率的参数值和常量,sd,wn,ir代表调度延迟。
[0031]
本发明的有益效果:
[0032]
1、本发明通过spark计算节点可以直接从分布式文件系统hdfs中获取数据来进行分布式的训练,在利用模型进行异常数据检测的时候能够实现分布式检测,提高计算效率。
[0033]
2、本发明通过计算出时间间隔的初值,使得时间间隔初值能够接近理想的时间间隔,从而将系统可以快速调整到理想状态,进一步提高sparkmodel模型训练效率。
附图说明
[0034]
图1为本发明分析算法的工作流程图;
[0035]
图2为本发明sparkmodel模型的建立流程图;
[0036]
图3为本发明sparkmodel模型的分布式检测流程图。
具体实施方式
[0037]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
[0039]
实施例1
[0040]
请参阅图1所示,本实施例所述网络异常行为数据分析算法,所述分析算法包括以
下步骤:
[0041]
将sparkmodel模型和大数据处理平台spark结合进行深度学习的并行计算,对sparkmodel模型做分布式训练和分布式检测,sparkmodel模型经过各个worker并行训练得到,sparkmodel模型对离线数据进行检测,将异常数据筛选出。
[0042]
请参阅图2所示,用户定义网络添加层,指定损失函数和优化器,初始化模型架构以及模型参数,创建算法模型,将算法模型以及worker数量,配置参数信息封装成sparkmodel模型,利用spark的广播机制,将sparkmodel模型中的算法模型分发到各个worker上,模型的结构与模型的参数序列化广播到worker上,利用算法模型和数据进行训练,得到新的参数。
[0043]
算法模型为keras模型,由于keras的特质,用户可以先定义网络,即添加各种各样的层,然后指定好损失函数和优化器,就完成了整个模型的架构以及模型参数的初始化。
[0044]
将keras创建好的模型,以及指定的worker数量,配置参数等等信息封装成一个sparkmodel,这个sparkmodel会在spark上进行模型参数的计算。
[0045]
利用spark的广播机制,首先将sparkmodel中的keras模型model分发到各个worker上,由于model的类型无法直接广播,因此需要将模型分开来,分别将模型的结构与模型的参数序列化,然后广播到worker上,同时,spark利用自身的api可以直接从分布式文件系统hdfs中读取数据,每个worker各获得数据集的一个分区,在worker上,利用keras模型和数据进行一次训练,得到新的参数。
[0046]
在worker上同步或异步更新参数;
[0047]
其中,
[0048]
(1)同步更新:在每个worker训练一遍之后将得到的梯度汇总,求平均值更新参数,然后再将参数广播到worker上面,接着下一轮的计算,在总的迭代次数结束之后,master将模型保存。
[0049]
(2)异步更新:在一个worker计算好梯度之后便直接利用urllib2库将梯度传递给master,master调用update_parameters()函数更新参数,并将参数回传给worker,在迭代次数完成之后,master将模型保存。
[0050]
实施例2
[0051]
请参阅图3所示,通过上述实施例1中构建的sparkmodel模型对分布式文件系统hdfs中的离线数据进行异常检测,主要可以分为以下几个步骤:
[0052]
(1)加载模型,根据模型存储的路径,通过keras的load_model()函数可以将模型加载完毕,再根据保存好的配置信息,构建好一个完整的sparkmodel模型。
[0053]
(2)分发模型,将sparkmodel里的model参数和结构序列化,利用spark的广播机制,将模型与配置信息广播到各个worker上。
[0054]
(3)分布式检测,spark从分布式文件系统hdfs上读取数据到各个worker,然后每个worker便可以利用model.predict_classes()来对自己分发到的数据进行计算预测。
[0055]
(4)将结果保存待用,spark可以利用saveastextfile()直接将结果保存到hdfs,也可以利用websocket直接将结果传递到前端展示,该分析算法训练算法模型时通过spark计算节点可以直接从分布式文件系统hdfs中获取数据来进行分布式的训练,在利用模型进行异常数据检测的时候能够实现分布式检测,提高计算效率。
[0056]
sparkmodel模型训练前,能够估量输入数据的速率,通过平均调度延迟的回归方程来计算初始的时间间隔,若系统能够维持稳定,则在理想状态下,处理时间略小于时间间隔,即p
t
=(1-ρ)b
t
,因此计算公式为:
[0057][0058]
式中,bi为时间间隔的初值,w1,w2,w3,w分别为批次时间间隔,worker数目,输入速率的参数值和常量,sd,wn,ir代表调度延迟,通过计算出时间间隔的初值,使得时间间隔初值能够接近理想的时间间隔,从而将系统可以快速调整到理想状态,进一步提高sparkmodel模型训练效率。
[0059]
sparkmodel是spark中一个可以处理实时流数据的一个组件,它的内部核心仍然是通过sparkcore来处理数据,sparkmodel通过连接如hdfs、kafka、flume等数据源获取到实时数据流后,会按照一定的时间间隔(batchinterval)将数据流分割成一段段较小的批数据,这些小的批量数据会交给sparkcore处理,即对应成为rdd。
[0060]
而在sparkmodel中我们将实时数据流成为dstream,可以得到,dstream是一组按照时间划分的rdd序列,由于本质上sparkmodel还是利用sparkcore来处理数据,因此对于开发人员来说,仍然可以像写批处理代码一样来编写sparkmodel的程序,不需要维护两套代码。
[0061]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
[0062]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
[0063]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0064]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0065]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0066]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0067]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0068]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0069]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0070]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0071]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1