研究型论文_T-DFNN:一种用于入侵检测系统的增量学习算法(英文论文)

T-DFNN: An Incremental Learning Algorithm for Intrusion Detection Systems

论文摘要

近年来,机器学习已成为构建可靠入侵检测系统(ids)的一种流行算法。然而,大多数模型是静态的,使用包含所有目标入侵的数据集进行训练。如果出现新的入侵,这些训练的模型必须使用新旧数据集重新训练,以准确分类所有的入侵。在现实世界中,新的威胁不断出现。因此,当这些新的入侵出现时,用于入侵防御的机器学习算法应该具有增量学习的能力。

为了解决这个问题,我们提出了T-DFNN。T-DFNN是一种能够在入侵出现时逐步学习新入侵的算法。T-DFNN模型是由多个深度前馈神经网络(DFNN)模型树状结构连接而成。

我们使用CICIDS2017对我们提出的算法进行了检验,CICIDS2017是一个开放的、广泛使用的网络入侵数据集,涵盖了良性流量和最常见的网络入侵。实验结果表明,T-DFNN算法能够渐进地学习新的入侵,降低灾难性遗忘效应。T-DFNN模型在每个再训练过程中的f1评分宏观平均值均在0.85以上。

此外,与其他模型相比,我们提出的T-DFNN模型在几个方面有一定的优势。与使用仅包含最新目标入侵数据集训练的DFNN和Hoeffding树模型相比,我们提出的T-DFNN模型具有更高的f1得分。

此外,与使用包含所有目标入侵的数据集训练的DFNN模型相比,我们提出的T-DFNN模型的训练时间显著缩短。尽管有几个因素会影响训练过程的持续时间,但T-DFNN算法在解决不断变化的网络入侵变种问题上显示出了很好的结果。

论文解决的问题

创新点在于提出了一种动态模型,如果有新的攻击类型产生,该模型可以自动学习并产生较好的分类效果。

1.T-DFNN结构

在这里插入图片描述
注意点:两个判断

1.如果有训练好的模型就直接调用即可。保证了该模型对原来数据集中的攻击类型保留了分类能力。
2.如果有新的训练数据,就在原有的训练模型上进行增量训练。保证了该模型对新攻击类型的分类能力。

2.树的节点结构

节点中包含:一个DFNN模型、键值对集合{<对训练数据的分类结果,孩子节点(可为空)>,<>…}
节点类的定义:
在这里插入图片描述
说明 :
包含2个属性:DFNN模型、键值对映射map
包含5个函数:

(1)该节点的构造函数
(2)DFNN模型的训练函数Train
(3)DFNN模型的分类函数Classify
(4)根据**键(分类得到的label)得到值(孩子节点)**的函数GetLinkedNode
(5)设置键值对的函数SetLinkedNode

3.训练过程

  1. 辅助函数:SelectTrainingData
    在这里插入图片描述
    训练集实例为X,标签为Y。YC为训练集X经过某个节点的DFNN模型分类后的得到的Label列表。L为YC中Label的某一个类型的值。

    该函数的作用:从样本集(X,Y)中选出被DFNN模型分类后的标签为L的样本。(注意该样本可能有标签不为L的样本,因为该节点的DFNN模型可能并不能对X中的每一个实例准确无误的分类)

  2. 训练函数:INCREMENTALTRAINING
    在这里插入图片描述
    函数流程说明:(构造树的过程,返回根节点)

    X:训练集实例、Y:训练集标签、N:树节点

(1)如果该节点为空,则创建一个节点,并训练样本集(X,Y),然后结束,返回N。

(2)如果不为空,则先对X进行一个分类,得到YC作为分类结果
(3)对于YC中的每一个类型L:从(X,Y)中选择被分类为L的样本,组成样本集合(XL,YL)。对于该样本集中标签不是L的样本,调用GetLinkedNode函数得到与L匹配的孩子节点LinkedN。

1)如果LinkedN不为空,则开始递归(重复(2)(3));
2)如果LinkedN为空(表示没有与L匹配的孩子节点),则开始递归,创建一个新的孩子节点(重复(1)),并用SetLinkedNode建立与父节点的链接。

(4)结束,返回N

4.分类过程

  1. 辅助函数:SelectData、UpdateLabel
    在这里插入图片描述
    SelectData函数作用:挑选出X中被DFNN分类为L的样本集合,并用YI作为索引集合。
    在这里插入图片描述
    UpdateLabel函数作用:根据索引来更新上一次被判断为L的样本集合的Label

  2. 分类函数Classification
    在这里插入图片描述
    函数流程说明:首先对测试集X进行分类(用根节点的DFNN),得到YC作为分类好的结果。对于YC中的每一个类型L,得到它对应的孩子节点LinkedN。

    1)如果LinkedN为空,表示不需要在深层分类了,遍历一下一个L。
    2)如果LinkedN不为空,表示需要深层分类,那么就要调用SelectData把X中被判断为L的样本挑选出来,并做好索引标记,记为YI,便于之后按照索引来更新这些样本的Label。然后对挑选出来的样本再进一步分类(用根节点的标签L对应的孩子节点的DFNN)。递归操作。

总结

创新点:提出了一种增量模型

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值