一种基于Spark深度随机森林的网络入侵检测模型

本文涉及的产品
云防火墙,500元 1000GB
简介: 一种基于Spark深度随机森林的网络入侵检测模型

学习目标

一种基于Spark深度随机森林的网络入侵检测模型

学习内容

(1)提出了一种随机森林的深度级联结构,将每一层并行化以提高准确性和可扩展性,以适应检测任务中的海量数据。可以对各种类型的攻击进行分类。

(2)引入滑动窗口将高维特征分割成小尺寸特征向量进行训练,可以减少每次计算的计算量,保持原始信息的完整性。

(3)与Spark中经典的并行随机森林相比,该方法通过效率排序和分区完整性检查优化了对内存中加载的RDD的替换,可以提高集群任务的执行效率。


目前存在的不足

模型通常具有良好的性能,但它有太多复杂的超参数需要调整。在大多数情况下,似乎很难以较低的复杂性获得良好的性能。


为了解决这个问题

提出的模型在随机森林中引入了滑动窗口和深度结构,以增强决策树的多样性,从而提高集成学习的泛化能力和网络入侵检测的准确性,同时参数也少得多。同时,我们的方法优化了Spark集群上RDD的数据缓存替换,减少了检测任务的执行时间。


65144077b39e4f3bba4db6410a0aff41.png


第一阶段使用滑动窗口将原始特征分割成许多小块,然后训练随机森林生成连接的类向量作为表示。

该向量将用于在第二阶段训练多级级联并行随机森林。

最后通过最后一层级联后的投票策略确定原始数据的分类。同时,将该模型部署在Spark环境中,通过效率排序和分区完整性检查,优化RDD的缓存替换策略。


特征分片

模型的第一阶段通过使用滑动窗口将特征分割成许多相同大小的特征向量。每个特征向量的数据维数小于原始特征,减少了随机森林中每次计算的计算量。假设一个长度为n的线性特征向量,一个特征切片的窗口长度为m,每滑动1个单位长度,就会产生n  -  m  + 1m维的特征向量。假设有一个检测任务,包含c个类别,经过特征处理,得到一个长度为线性的特征向量n将生成一个长度为c ( n  −  m  + 1) 的新特征向量。例如,有一个包含40个特征的入侵样本数据,攻击分为DOS(拒绝服务)、R2L(远程到本地)、U2R(用户到root)、PROBE(监视和探测)四种类型的攻击. 并且切片窗口大小设置为 10。那么,总共将有 31 个特征向量,每个特征向量都是 10 维的。


cb442421a6b64472a66794b23c005a20.png


原始特征将被这部分降维的滑动窗口分割成许多相同大小的特征向量。


之后,将每个特征向量依次放入单层随机森林,然后生成类概率向量。


7155af16b7c443c38d095582ea36c42e.png


左边的矩形代表输入特征向量的一个实例,黄色叶子是每个独立决策树的概率分布。


特征向量的熵将由节点分裂前的基尼指数计算。基尼指数是用于计算以下等式中定义的熵的模型。

Gini(t)=1k=1K[p(Ckt)]2


其中t是目标分裂节点,表示节点t属于类C_t的概率。p(C_k|t)


类概率来源于最终落在叶子节点上的一组值,然后对森林中所有决策树的预测进行平均,得到输出类向量。之前的 31 个特征向量将转换为 31 个类向量,每个类向量都是 4 维的。最后,如图2所示,所有类向量将连接起来形成一个重新表示的特征向量,作为与原始数据特征对应的增强表示。并且新特征将作为输入在下一阶段训练级联随机森林。


深度并行随机森林Deep Parallel Random Forest(DPRF)

027de47b8a9f451f912f6a425cec53db.png


DPRF 的架构,即层数,是根据计算出的性能增益自动确定的,如果改进低于阈值,则终止训练过程。


并行随机森林(PRF)通过级联堆叠形成深层森林结构。级联结构中的每个新层将表示的特征向量和前一层的类向量连接起来作为输入。级联PRF的每一层都会统计所有决策树对输入样本的预测结果,生成不同类分布的概率,作为类向量。随后,类概率向量将与特征分割形成的变换特征连接起来训练下一层。


投票策略

对于实际的异常值检测任务,可以简化为异常分类任务,通过投票策略识别异常值。级联PRF中最后一层的预测是统计最后一层所有决策树的输出类,然后根据概率分布采用投票策略进行决策的最终结果。多数投票用于可靠性要求高的异常检测任务。如果一个样本获得超过一半的选票,则将其预测为异常值,否则将其拒绝。

image.png


其中hi代表决策树i,T代表森林中决策树的数量。N是概率向量的维数。c j是集合 { c 1 , c 2 , c 3 …c N } 中的类标签之一。基本学习器h i将做出属于类别标签集合 { c 1 , c 2 , c 3 …c N } 的预测,以及h i在样本x上的概率分布是一个N维向量,其中是h i在类标签c j上的概率输出。


Spark 上的并行化

高复用缓存

首先,Spark 的缓存机制为每个 worker 分配一个缓存管理器来管理 RDD 并计算缓存大小。RDD 数据大小需要不大于剩余内存的存储空间。否则,将实施更换。

image.png

RDD 分区之间的计算成本是另一个非常重要的因素


计算每个RDD的权重

RDD的执行时间可以用RDD大小占Spark集群环境内存大小的百分比来表示。

RDD的执行效率可以量化为RDD的权重值与执行时间的比值,用ε ( R i )来表示每个RDD的执行效率,定义如下:

ϵ(Ri)=T(Ri)W(Ri)


分层替换

分层替换是并行优化的第二步。它在替换之前对 RDD 目标进行分类,优先考虑不完整的 RDD。如图5所示,我们设计了 IntegrityCheck 函数来验证 RDD,该函数将检查分区并在标志记录分区状态的集合中标记完整性。如果 RDD 的分区不完整,将被标记为 FALSE 并被替换;否则,它将被标记为 TRUE。然后根据 Map cacheList (rdd i , ε )替换效率较低的 RDD


88a9e32117144a5badaf1a4923bbc7f6.png


模型评估

将 FS-DPRF 与并行随机森林 (PRF)、DSSVM 和 A-DNN 进行比较。


c40866d64b5747e48f098bf3ddf6fd0e.png


d4780b320f1d443db9fb76366a63a10e.png


FS-DPRF在不同节点规模下的平均执行时间。


当节点数从 1 增加到 25 时,每个数据集的加速比都呈规律性增长,并且随着节点数从 25 增加到 50 时趋于减慢。结果表明该模型具有良好的加速性能在不同体积和维度的数据集中。但是,它并没有像上面的定义那样呈现完美的线性增长,可以理解为随着集群规模的增加,通信开销和任务调度成本会变大

f1dee86260cc4302aed7a6c3c7b6e915.png


fda36b9563454358ad680ae33188c36b.png



局限性

该研究的局限性在于模型会消耗大量内存,因此要获得训练有素的入侵检测模型需要强大的计算设备。虽然本文提出的模型在 Spark 分布式环境下通过 CPU 训练取得了不错的效果,但遗憾的是,目前的结构自然不适用于 GPU。这使得模型暂时无法像深度神经网络一样在 GPU 上得到更好的加速。


参考论文

Zhenpeng Liu, Nan Su, Yiwen Qin, Jiahuan Lu, Xiaofei Li, “A Deep Random Forest Model on Spark for Network Intrusion Detection”, Mobile Information systems, vol. 2020, Article ID 6633252, 16 pages, 2020. https://doi.org/10.1155/2020/6633252

S. V. Siva reddy and S. Saravanan, “Performance Evaluation of Classification Algorithms in the Design of Apache Spark based Intrusion Detection System,” 2020 5th International Conference on Communication and Electronics Systems (ICCES), 2020, pp. 443-447, doi: 10.1109/ICCES48766.2020.9138066.

M. Haggag, M. M. Tantawy and M. M. S. El-Soudani, “Implementing a Deep Learning Model for Intrusion Detection on Apache Spark Platform,” in IEEE Access, vol. 8, pp. 163660-163672, 2020, doi: 10.1109/ACCESS.2020.3019931.


–end–


相关文章
|
9天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
27 2
|
9天前
|
运维 网络协议 算法
7 层 OSI 参考模型:详解网络通信的层次结构
7 层 OSI 参考模型:详解网络通信的层次结构
30 1
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
72 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
20天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
21天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
25天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
72 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
39 0
|
1月前
|
存储 分布式计算 负载均衡
|
7天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第40天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和建议,以保护个人和组织的信息安全。
29 6
|
1天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,并提供一些实用的技巧和建议,帮助读者更好地保护自己的网络安全和信息安全。