浙江科技学院学报

图1正常状态下的CANID序列及其对应的GASF特征图Fig.1CANIDsequencesinnormalstateandcorrespondingGASFfeaturemap

图2DoS攻击时的CANID序列及其对应的GASF特征图Fig.2CANIDsequencesduringDoSattackandcorrespondingGASFfeaturemap

CNN主要由卷积层、池化层和全连接层组成。卷积层和池化层在一起作为特征提取器,提取图片中的显著特征。全连接层作为分类器,对特征提取器提取到的特征进行解释和分类。

卷积层利用不同大小的卷积核,通过滑动窗口的方式对输入的图像进行卷积操作,通过激活函数提取出图像中的纹理、色彩等重要特征。卷积层越深,提取到的特征越抽象。卷积运算公式为

式(5)中:xlj为位于第l个卷积层的第j个特征图;f为非线性激活函数;n为输入特征图的个数;klij为卷积核的权值矩阵;(·)为点积运算;blj为当前输出特征图对应的偏置值。

图3最大池化和平均池化Fig.3Maxpoolingandaveragepooling

全连接层对经过卷积和池化操作得到的特征图进行解释和分类,其计算公式为

y(x)=f(WX+b)。(6)

图4简化的VGG网络架构Fig.4ReducedVGGnetworkarchitecture

式(6)中:W为权值矩阵;X为输入向量;b为偏置向量;f为激活函数。

激活函数就是神经网络中神经元运行的函数,如果没有激活函数,神经元的输入端到输出端的映射只能是线性映射,激活函数的使用使得神经元具有非线性映射能力,这对神经网络学习、理解复杂的非线性函数具有十分重要的意义。通过使用不同类型的激活函数,模型能够学习到不同的分类和回归方法。

在梯度反向传播过程中,由于使用链式法则进行求导,会产生一系列连乘运算,如果使用饱和激活函数,则在训练深度神经网络时会导致梯度消失或梯度爆炸等问题。为了避免这些问题的发生,本研究使用的算法在所有的隐藏层均使用Relu激活函数修正线性单元。Relu函数计算复杂度低,梯度不会饱和,使用该函数的模型收敛速度快。Relu函数公式为

sigmoid分类器常用于输出层,其取值范围为(0,1),它可以将一个实数映射到(0,1)区间内,可以用来做二分类,其函数公式为:

σ(t)=1/(1+exp(-t))。(8)

式(8)中:t为一个标量。在输出层使用sigmoid函数时,其分类函数如下:

式(9)~(10)中:p为输出的概率值;x为输入向量;θ为权值向量;y为输出的类别。当概率p>0.5时,分类为正样本;当p≤0.5时,分类为负样本。

图5CAN入侵检测模型架构Fig.5ArchitectureofCANintrusiondetectionmodel

表1原始数据集中数据分布Table1Datadistributioninoriginaldataset

表2原始数据集属性及其含义Table2Attributesandimplicationsoforiginaldataset

图6DoS攻击数据集中正常帧ID的时序分布Fig.6IDtimingdistributionfornormalframeinDoSattackdataset

图7fuzzy攻击数据集中正常帧ID的时序分布Fig.7IDtimingdistributionfornormalframeinfuzzyattackdataset

数据的预处理步骤如下:

1)数据集提取。分别从DoS攻击和fuzzy攻击数据集中提取出CANID和flag列作为本试验的数据集,形成DoSID和fuzzyID数据子集。

2)数据类型转换和编码。将两个数据子集中原本由十六进制表示的ID转换为十进制表示,并进行归一化,同时将flag中所有的“R”标签编码为0,所有的“T”标签编码为1。

表3分割后的数据集中数据分布Table3Datadistributioninsegmenteddataset

5)分离训练集和测试集。分别从DoS攻击和fuzzy攻击图片数据集中分离出对应的训练样本和测试样本,测试样本所占的比例为30%。

图8DoS攻击图片数据集中的正常样本和异常样本Fig.8NormalandabnormalsamplesinDoSattackimagedataset

图9fuzzy攻击图片数据集中的正常样本和异常样本Fig.9Normalandabnormalsamplesinfuzzyattackimagedataset

由于入侵检测的目的是尽量多地检测出攻击行为,同时降低误报率。因此本试验采用假阴性率(falsenegativerate,FNR)和错误率(errorrate,ER)对模型的分类性能进行评估。此外,在与其他模型进行对比过程中,也对精准率(precision)、召回率(recall)和F1值(F1-score)进行评价。

本研究使用目前主流的深度框架tensorflow实现模型的构建,试验硬件环境如下:处理器为Inter(R)Core(TM)i7-9750H,处理器主频为2.60GHz,内存为8.00GB,显卡为NVIDIAGeForceGTX16504GB,操作系统为Windows10。软件环境为python3.6.5,tensorflow2.2.0,pyts0.11.0。此外,本研究设计的模型在训练集上共迭代100次,批次大小设为64,优化器为自适应矩估计,损失函数为交叉熵。

表4CNN入侵检测模型的性能评估结果Table4PerformanceevaluationresultsforCNNintrusiondetectionmodel%

图10模型在DoS攻击和fuzzy攻击图片数据集上的训练及验证曲线Fig.10TrainingandvalidationcurveofproposedmodelonimagedatasetforDoSattackandfuzzyattack

表5模型在DoS攻击数据集上的准确度对比结果Table5AccuracycomparisonofeachmodelonDoSattackdataset%

表6模型在fuzzy攻击数据集上的准确度对比结果Table6Accuracycomparisonofeachmodelonfuzzyattackdataset%

本研究分析了汽车CAN总线网络中存在的安全威胁,以及针对这些威胁提出的防御方法。通过对针对汽车攻击的数据集——HCRL数据集的研究,进一步分析了CANID的周期特征,将CANID序列利用GASF转换为图片,并设计简化的VGG网络模型对图片进行分类,进而检测出含有攻击帧的序列。试验结果表明,本研究提出的特征提取与转换及卷积神经网络模型对汽车的DoS攻击和fuzzy攻击具有较好的检测性能,能够有效降低误报率,提高检测精度,且与Song等[10]使用的模型相比,本研究提出的模型结构更加简单,参数更少。在接下来的研究中,我们将考虑重新设计数据集,使得连续两个样本之间有重叠的部分,以增加训练样本的数量,同时设计更优的网络架构,进一步提高模型的检测性能。

THE END
1.python中数据二分类数据集mob64ca12f028ff的技术博客在机器学习领域,数据二分类问题是最常见的任务之一。数据二分类涉及将输入数据分为两个类别,例如,判断电子邮件是“垃圾邮件”还是“正常邮件”。在 Python 中,我们可以使用一些流行的库来处理这样的二分类数据集。本文将介绍如何构建和处理二分类数据集,并提供代码示例。 https://blog.51cto.com/u_16213430/12160653
2.机器学习实战二分类(MNIST数据集)二分类数据集机器学习实战--二分类(MNIST数据集) importmatplotlib.pyplotasplt%matplotlib inlinefromsklearn.datasetsimportfetch_mldata mnist=fetch_mldata('MNIST original') 1 2 3 4 Scikit-Learn加载数据集通常具有类似于字典的结构,包括: DESCR:描述数据集 data:包含一个数组,每个实例为一行,每个特征为一列https://blog.csdn.net/qq_45603718/article/details/117235656
3.数据集UCI 机器学习数据集合中的经典二分类数据集,包括 Iris、Hert Dieses、German Credit 等经典二分类问题测试数据集。 数据集详情 原始数据名称:UCI经典二分类数据集 数据介绍:UCI 机器学习数据集合中的经典二分类数据集,包括 Iris、Hert Dieses、German Credit 等经典二分类问题测试数据集。 http://dataju.cn/Dataju/web/datasetInstanceDetail/438
4.什么是数据集的分类?简介:【7月更文挑战第10天】什么是数据集的分类? 什么是数据集的分类? 数据集的分类主要指根据数据的性质、来源或用途将数据集进行不同类别的划分。 在机器学习和数据分析中,数据集通常被分为训练集、验证集和测试集三个部分,以评估模型对新数据的泛化能力并避免模型过拟合[^1^][^2^]。这些划分方法有各自的https://developer.aliyun.com/article/1564190
5.关于机器学习的一些记录(二)1、二分类(Binary Classification)是什么? 二分类是机器学习中最基本的分类问题之一,它将数据集中的样本(数据点)划分为两个互斥的类别(通常是“正类”和“负类”)。 二分类任务的目标是预测一个样本属于两个类别中的哪一个。 2、二分类应用场景有哪些? https://www.jianshu.com/p/4b2ece849b4a
6.二分类数据集该数据是一个平衡的图片二分类数据集,正负类图片各250张,一个50 0 张图,是个不错的做图片分类的数据集。 上传者:qq_44630529时间:2020-08-23 医学数据集-乳腺癌数据集-二分类数据集-med开源数据集提取2.zip 依据开源数据集整理和标注的数据,可以直接使用,希望对你有帮助。 https://www.iteye.com/resource/qq_37879432-10203809