1.物联网下基于长短期记忆自编码分类器的入侵检测方法,其特征在于,包括如下步骤:步骤1:对网络流量数据进行预处理,具体步骤为:
步骤1.1,将网络流量数据作为数据集,将数据集的字符特征数据转换成数值,再对该特征数值进行one‑hot编码;
步骤1.2,分别对每个特征数值进行归一化,公式如下:
其中xmin为该特征的最小值,xmax为该特征的最大值;
步骤1.3,分割数据集,对整个数据集以8:2的比例分成训练集和测试集;
步骤1.4,分别取出训练集和测试集中的Label字段,并逐条流量数据进行判断,若Label字段值为‘Benign’,则标注为0,否则标注为1,即正常样本标注为0,异常样本标注为
1;
步骤1.5,将训练数据保存为Train_X,训练标签保存为Train_Y;测试数据保存为Test_X,测试标签保存为Test_Y;
步骤2:设计搭建长短期记忆自编码分类器;
步骤2.1,LSTM‑AutoEncoder‑Classifier由三个分模型组成,分别是LSTM‑Encoder模型、LSTM‑Decoder模型和Encoder‑Classifier模型;
步骤2.2,搭建LSTM‑Encoder模型,该模型由一层输入层、四层隐藏层和一层输出层组成;输入层为60个隐藏神经元的LSTM层,其激活函数是Relu函数,初始化权值满足高斯分布,该层的输出保留时间戳序列;第一层隐藏层为50个隐藏神经元的LSTM层,激活函数是Tanh函数,初始化权值和bias都满足高斯分布,输出时间戳序列;第二层隐藏层为随机丢弃权值概率50%的Dropout层;第三层隐藏层为30个隐藏神经元的LSTM层,激活函数是Tanh函数,初始化权值和bias满足高斯分布,同时权值和bias存在L2约束,输出时间戳序列;第四层隐藏层是随机丢弃权值概率50%的Dropout层;
步骤2.3,搭建LSTM‑Decoder模型,该模型包含一层输入层、三层隐藏层和一层输出层;
输入层为50个隐藏神经元的LSTM层,其激活函数是Relu函数,初始化权值满足高斯分布,输出时间戳序列;第一层隐藏层为60个隐藏神经元的LSTM层,其激活函数是Tanh函数,初始化权值和bias满足高斯分布,输出时间戳序列;第二层隐藏层为随机丢弃权值概率50%的Dropout层;第三层隐藏层是LSTM层且隐藏神经元为原始数据集特征数,激活函数是Tanh函数,初始化权值和bias满足高斯分布,同时权值和bias存在L2约束,输出时间戳序列;输出层是随机丢弃权值概率为50%的Dropout层;
步骤2.4,搭建Encoder‑Classifier模型;该模型是由全连接层和sigmoid函数组成的;
该模型由一层输入层,四层隐藏层和一层输出层组成;输入层是神经元数量为20的全连接层,权值和bias满足正态分布以及He初始化,激活函数是Relu函数;第一层隐藏层为神经单元数量为10的全连接层,权值和bias满足正态分布以及He初始化,激活函数是Relu函数;第二层隐藏层为随机丢弃权值概率60%的Dropout层;第三层隐藏层为神经单元数量为10的全连接层;第四层隐藏层为随机丢弃权值概率为60%的Dropout层;输出层为含有一个神经元的全连接层,激活函数是sigmoid函数;
步骤2.5,搭建LSTM‑AutoEncoder模型;该模型由LSTM‑Encoder模型和LSTM‑Decoder模型组成;模型上部为LSTM‑Encoder模型,下部为LSTM‑Decoder模型;
步骤3:设计搭建门控循环单元自编码分类器GRU‑AutoEncoder‑Classifier;
步骤3.1,将LSTM‑AutoEncoder‑Classifier模型中的LSTM层改成GRU层得到GRU‑AutoEncoder‑Classifier;
步骤4:搭建BGRU和BLSTM模型;
步骤4.1,BGRU模型由两层双向GRU网络层和一层全连接层组成;第一层的GRU层含有60个神经元,激活函数是Relu函数,输出时间戳序列;第二层的GRU层含有10个神经元,激活函数是Relu函数,输出最后一个时间戳;全连接层含有一个神经元且激活函数是sigmoid函数;
步骤4.2,BLSTM模型与BGRU模型区别在于将GRU替换成LSTM;
步骤5:配置模型的优化器、损失函数和迭代次数;
步骤5.1,LSTM‑AutoEncoder和GRU‑AutoEncoder这两个模型的优化器为Adam,损失函数是均方误差(MSE),迭代次数都为30次;MSE的公式如下:其中yi是真实数据, 是预测的数据,m为流量数据数量;
步骤5.2,Encoder‑Classifier模型的优化器为Adam,损失函数是binary_crossentropy函数,迭代次数为10次;
步骤5.3,BGRU和的模型的优化器为Adam,损失函数是binary_crossentropy函数,迭代次数为5次;
步骤6,利用训练数据集对模型进行训练;
步骤6.1,一次训练所抓取的数据样本数量为256;
步骤6.2,每次训练将训练集中的20%数据当作验证集,对训练中的模型进行实时验证;
步骤6.3,训练LSTM‑AutoEncoder‑Classifier,共有两个过程,第一个过程训练LSTM‑AutoEncoder模型,第二个过程训练AutoEncoder‑Classifier模型;
步骤6.4,训练GRU‑AutoEncoder‑Classifier模型和BGRU、BLSTM模型;
步骤6.5,记录各个模型训练的时间;
步骤6.6,保存训练之后的模型;
步骤7,评估模型;
步骤7.1,用训练好的模型对测试集的数据进行预测,记录下各个模型预测的结果;
步骤7.2,根据预测的结果数据和测试集标注的数据进行模型评估,绘制出各个模型在二分类情况下的ROC曲线并计算模型的准确率ACC、误报率FAR和检测率DR,精准率Precision、召回率Recall和F1‑Measure;
TP:分类器识别正确,分类器认为该样本为正样本;
TN:分类器识别正确,分类器认为该样本为负样本;
FP:分类器识别结果错误,分类器认为该样本是正样本;所以实际上该样本是负样本;
FN:分类器识别结果错误,分类器认为该样本是负样本;所以实际上该样本是正样本;
步骤7.3,记录模型的评估指标并进行比较。