基于深度迁移学习的物联网入侵检测框架(二) 深度学习模型设计和验证

基于深度迁移学习的物联网入侵检测框架(二) 深度学习模型设计和验证

时间:2021-05-28 作者:安帝科技

编者按

上一篇,安帝科技论述了要实现基于深度迁移学习的物联网入侵检测框架的数据收集、特征抽取、特征预处理、模型训练及测试\分类的思路和过程。今天,安帝科技继续和大家一起探讨基于深度迁移学习的物联网入侵检测框架的学习模型、优化和实验验证。

深度学习模型设计

使用前馈神经网络(FNN)模型。在这项工作中采用FNN的原因是因为它们被认为是人工神经网络的第一种也是最简单的类型。将多分类FNN模型表示为mFNN,将用于二分类的FNN模型表示为bFNN,并分别详细说明这两种模型和迁移学习的概念。mFNN:mFNN模型使用三个数组作为输入,其中两个是嵌入层的输入。端口嵌入层的输入维数为65537(所有正式和非官方端口的0和65535至65536之间的NaN值均已编码),输出维数为16,而HTTP请求方法嵌入层的输入维数93(具有92种正式请求方法,并且为无值编码的字符串)输出维为4。两个嵌入层的权重都将通过模型训练来学习。全局平均池层应用于端口嵌入层,以计算源端口和目标端口的平均值。然后,将返回的向量与HTTP请求方法嵌入层和输入数组连接在一起。然后与全连接层连接。迁移学习:采用迁移学习的概念,通过在mFNN模型中嵌入层来提取高维分类特征的编码,并将该编码应用于bFNN模型中相同的高维分类特征。将特征编码/表示从mFNN模型迁移到bFNN模型是可行的,因为bFNN模型是在mFNN模型使用的数据子集上训练的,所以保证了编码的通用性。更重要的是,bFNN模型不需要通过添加嵌入层来对高维分类特征进行编码,这将增加训练时间并导致失去特征表示的通用性。具体而言,提取mFNN模型的两个嵌入层的权重并将其存储在两个数组中,以用作bFNN模型中的端口和HTTP请求方法的编码。bFNN:bFNN模型使用mFNN模型中两个嵌入层的权重(存储为两个数组)对源/目标端口和HTTP请求方法(即src.port,dst.port和http.request.method)的进行编码。然后,将已编码的列与其他特征列合并,并作为模型的输入。bFNN模型具有三个具有512个神经元的全连接层,并且在前两个全连接层(即输入层和隐藏层)中使用ReLU函数,在最后一个全连接层(即输出层)中使用2个神经元和一个Softmax函数。bFNN模型使用与mFNN模型相同的超参数(即隐藏的全连接层的数量和隐藏的全连接层中的神经元的数量)。

深度学习模型调整

在这次研究中使用了不同超参数和三种正则化技术对mFNN模型进行了调整,旨在将模型的泛化应用于不同的分类问题。FNN模型由三个全连接层组成,前两个全连接层中具有512个神经元,默认的Adamoptimiser学习率(即0.001)作为基线模型。使用512个神经元作为起点有两个原因:(1)提取的数据集已足够(具有9163751条记录),因此过拟合问题就不会发生(当神经网络具有处理能力但训练数据中包含的有限信息量不足以训练隐藏层中的所有神经元时,就会出现问题);(2)本次论证的深度神经网络是在GPU上训练的,可以以较高效率运行。正则化:实验测试尝试了三种常用的正则化技术,分别是L1,L2和Dropout。结果表明分类精度没有改善。已证明,进行正则化可以有效避免过度拟合的风险。由于用于训练模型的数据集很大,因此过拟合问题并不是一个大问题。超参数调整:实验测试探索了神经网络的不同架构。具体来说,添加/减少了隐藏层(从2到4),减少了神经元的数量(128或256个神经元),增加了神经元的数量(1024个神经元;不包括最后一个全连接层),并添加了dropout率为0.1的dropout层(不包括最后一个全连接层)。结果表明,基线神经网络模型具有最佳性能。在基线模型的变体上,分类准确性不会提高。这可能是由于模型复杂度低/高引起的。如果模型复杂度太低,则该模型可能无法捕获类的变化;如果模型复杂度太高,则该模型可能会在类上产生过度拟合问题,并且需要更多时间进行训练。因此,在具有太低/太高的复杂度的模型下,分类性能可能会变差。然后,对Adam优化器的不同学习率(即0.01、0.001、0.0001和0.00001)进行了实验,并选择了0.0001作为获得最高准确性的最优学习率。

实验验证

对于本次研究所有的实验,使用了带有一个TeslaV100GPU和93GRAM的高性能计算(HPC)集群。使用了TensorFlow库和Keras。将提取的数据集划分如下:64%用于训练,16%用于验证(在调整模型超参数时提供对训练数据的模型拟合的无偏评估),以及20%以分层方式进行的测试。由于训练数据中的类别不平衡,在训练期间对各类别应用了权重,以针对代表性不足的类别(即数据包数量少)获得更高的权重值。通过将类别中的数据包总数除以训练数据中的数据包总数,然后将商值取反来计算每个类别的权重。具体的实验结果如下:


图1 多分类模型测试结果

多类分类:首先在多分类模型测试结果中展示mFNN模型在训练集和验证集性能。采用了early stoing技术,让训练和验证过程在第15次迭代结束,进行了5次迭代以减少验证集loss减低过拟合问题。训练损失从第1次迭代的0.0426下降到第2次迭代的0.0139,然后稳定下降直到第15次迭代,而第1次迭代的验证损失为0.0093,然后在0.009到0.005之间波动。训练精度一开始就从0.9923提高到0.9969,然后稳步提高直到第15次迭代,而验证集准确性在0.996和0.998之间略有变化


图2 二分类模型测试结果

二进制分类:图2表明了二进制分类的评估指标(使用accuracy、recall,precision和F1score作为评价指标)。显见其中所有值均高于0.9999。bFNN模型可实现高accuracy、recall,precision和F1score(即99.99%),而只有少数数据包被错误分类。关于每个攻击子类别的分类所运行的时间,bFNN模型在5-10分钟内完成了训练和验证任务。

结论

深度学习技术已显示出它们能够针对各种研究领域准确的模式识别的能力。在物联网场景应用中,此类技术可用于检测网络入侵尝试。本次研究提出了一种针对物联网的网络入侵检测系统架构,该设计基于包括定制前馈神经网络的深度学习模型。通过将流量包头字段视为通用参数,并采用嵌入编码和迁移学习的概念对从数据集获取的数据的高维分类特征进行降维编码。已经在包含实际网络流量的数据集上测试了用于二进制和多类分类的模型的有效性。获得的结果表明了所提出技术的有效性。特别地,发现二分类器的性能接近99.99%,而对于多分类器,则达到了约99.79%的检测精度。这个结果对于新场景下的入侵检测是有意义的,因此有必要据此对物联网网络入侵检测系统设计进行进一步的研究。