该研究提出了一种结合卷积神经网络(CNN)与Transformer的混合深度学习模型,用于检测物联网(IoT)环境中的攻击行为。通过使用CIC-IoT-2023数据集,该模型实现了较高的性能指标:准确率达到99.97%,损失值为0.0123,表明其在实时攻击检测中具有良好的有效性。
研究文章
该研究提出了一种结合卷积神经网络(CNN)与Transformer的混合深度学习模型,用于检测物联网(IoT)环境中的攻击行为。通过使用CIC-IoT-2023数据集,该模型实现了较高的性能指标:准确率达到99.97%,损失值为0.0123,表明其在实时攻击检测中具有良好的有效性。
物联网(IoT)设备的快速发展增强了连接性和可访问性。然而,这些环境日益增长的互联互通也带来了新的威胁层级,需要强大的异常检测机制。本研究提出了一种基于深度学习的新型安全方法,以缓解与物联网网络相关的特定威胁。该方法采用深度神经网络,高效监控网络活动模式,并实时检测通信中的潜在漏洞。本研究提出了一种用于物联网网络中攻击检测与分类的混合CNN-Transformer模型。为构建和测试该方法,我们分析了CIC-IoT-2023数据集,该数据集包含分布在7个不同类别中的33种不同类型的物联网威胁。实验结果表明,所提出的模型表现优异,精确率达到99.96%,召回率达到99.96%,F1分数达到99.96%,准确率达到99.97%,损失值为0.0123。此外,本文还从计算时间和资源消耗角度对所提模型进行了分析,结果表明该模型在攻击检测与分类方面具有高效性,在保持高准确率的同时显著降低了计算复杂度。
物联网技术近年来取得了显著进展,我们已经进入了一个高度互联的数字世界。目前许多不同行业正在使用物联网(IoT)设备,包括医疗保健、农业活动、交通运输、航空航天以及生产制造1。知名专家预测,到2025年,物联网(IoT)及其相关应用将对全球经济产生重大影响,年影响规模介于3.9万亿美元至11.1万亿美元之间2。然而,这种无缝连接也带来了新的安全挑战。随着物联网设备的发展,它们越来越容易受到网络攻击,因此必须防止对这些设备的未授权访问和攻击行为。在设备种类繁多的环境中,某些设备比其他设备更容易受到攻击3。这些设备不仅会影响物联网系统的安全性,还可能影响系统中的传输通道,甚至导致传输网络部分或完全失效。机器学习(ML)和深度学习(DL)是人工智能(AI)的两个分支,已在多个领域显著提升了技术水平,例如医疗系统4、计算机视觉5、无线通信6以及网络安全7。这些进步得益于相关技术的持续发展。在物联网领域,通常采用基于深度学习和机器学习的入侵检测系统4,5。
所建议的入侵检测系统通过扫描网络流量中的异常数据流并处理数据包(包括最近捕获的良性信息)来识别新型攻击。该系统采用两种入侵检测方法:基于特征的检测和基于异常的检测。其中,基于特征的检测方法依赖于对网络内部数据包流量的持续监控,并将检测到的数值与已知攻击的特征值进行比对,以识别网络中的安全漏洞。基于异常的检测方法则通过记录用户行为参数,并识别与正常用户行为参数存在偏离的行为来发现攻击。为提升攻击检测能力,本研究提出了一种结合 Transformer 与卷积神经网络(CNN)的深度学习模型。该模型首先利用 CNN 组件将原始数据映射到多个子空间,生成多空间特征子集,从而实现更全面的非线性特征表示。随后,通过 Transformer 组件进一步确定特征间的关联关系,并提取更深层次的特征,如细节特征。最终,通过 softmax 函数建立特征与标签之间的关联关系。该方法通过融合 CNN 与 Transformer 模型的优势,在攻击检测方面表现出卓越的性能。
以下是本研究的主要目标:(i)构建一个用于在物联网(IoT)环境下检测异常的先进框架。该框架能够提升对被黑客攻击或遭入侵的异构物联网设备所产生的恶意信息的检测能力。(ii)本研究展示了一种从数据集中有效提取与基于物联网的异常检测相关特征的方法。当应用于这些设备时,该技术可使攻击检测更加高效。(iii)为识别攻击,本文提出了一种结合Transformer与卷积神经网络(CNN)的自适应模型。该模型旨在检测源自网络的对物联网环境的入侵行为。(iv)采用多类别分类技术,利用CIC-IoT23安全数据集对所提出的模型进行测试与验证。通过多类别分类技术,评估成功区分了由物联网僵尸网络发起的七类攻击与正常无害流量。(v)通过多个特征指标,将所提出的方法与现有方法进行比较。该对比研究表明,所提出的方法在识别物联网(IoT)攻击方面表现更优且更为成功。
所提出的混合CNN-Transformer模型在泛化能力和鲁棒性方面优于传统的基于特征和基于异常的入侵检测方法2,5,因为它结合了空间特征提取与时间注意力机制。与传统的机器学习/深度学习方法相比,该模型在更少依赖人工特征工程的情况下实现了更高的准确率和召回率6,8。早期的混合模型9,10无法实时适应环境变化。本研究提出的方法通过采用轻量级架构和优化策略解决了这一问题。
物联网领域的快速发展及其相关的安全问题已促使入侵检测研究显著增加。本文综述重点关注关键的研究工作及其贡献,旨在深入理解当前被认为是先进水平的解决方案。
Nandanwar 和 Katarya 提出了一种采用自适应 CNN-GRU 架构的混合模型。11 旨在检测和分类工业物联网(IIoT)环境中的僵尸网络攻击。
Jony 等人12提出了一种基于 LSTM 的模型,利用 CIC-IoT2023 数据集实现了 98.59% 的 F1 分数和 98.75% 的准确率,能够有效预测网络攻击模式。该研究8提出了一种机器学习集成策略,作为检测和清除物联网网络中虚假数据的二分类方法。该模型采用梯度提升机集成方法来识别异常并缓解零日攻击,模型准确率达到 98.27%,精确率和召回率分别为 96.40% 和 95.70%,适用于关键的物联网应用。de Caldas Filho 等人13开发了一种混合型入侵检测系统(IDS),结合了基于网络和基于主机的 IDS。这种集成的入侵响应系统(IRS)能够主动检测并阻止零日威胁。作者还采用去中心化的联邦学习系统,利用深度学习识别异常。该基于联邦学习与深度学习的检测方法在去中心化的物联网架构中实现了 89.753% 的检测准确率。Wang 等人14提出了一种名为 ThreatInsight 的威胁检测工具,减少了对系统审计日志的依赖。ThreatInsight 采用基于事实和语义推理的方法识别并归因攻击者。该技术通过生成分析报告,提升了网络安全防护系统中的早期检测能力,并提供实时分析功能。
Chai 等人15提出了一种利用动态卷积来自适应提取特征和类别特征的恶意软件检测方法。作者基于双样本分析,提出了一种动态激活函数,利用样本相关性来降低无关特征的影响。该方法采用基于度量的技术计算查询样本与原型之间的距离,以实现有效的恶意软件识别。实验结果表明,该方法相较于现有的少样本恶意软件检测算法具有显著提升。Shah 等人16提出了一种由人工智能驱动的系统模型,旨在通过二分类检测恶意用户,并结合区块链技术实现安全的数据存储,从而增强物联网安全性。该模型通过实施深度学习算法对区块链智能合约的潜在漏洞进行分类,最终构建了一个综合性的安全框架,并通过多种性能指标进行了评估。
Luo 等人17提出了一种面向物联网(IoT)应用的新型系统 EDL-WADS,该系统包含四个模块:用于 URL 请求表示的特征学习模块、包含三种模型以处理多样化 URL 请求表示的深度学习模块、通过集成分类器整合模型结果的决策模块,以及用于实时更新的微调模块。在多个数据集上的测试表明,EDL-WADS 的准确率达到 99.47%,真实阳性率为 99.29%,精确度为 99.70%,假阳性率为 0.0033,优于基线模型。其局限性包括系统仅专注于 SQL 注入和跨站脚本攻击检测,以及卷积神经网络(CNN)模型表现不佳。
Tian 等人18提出了一种基于分布式深度学习的方法,通过分析 URL 来检测网络攻击。该系统部署在边缘设备上,旨在识别网络威胁。研究中采用了两个并行的深度模型进行实验,并使用多种数据集将该系统与现有系统进行了比较。该系统在网页攻击检测方面表现出较强的竞争力,准确率达到 99.410%,真阳性率(TPR)为 98.91%,正常请求的检测率为 99.55%。
Chai 等人19提出了 MalFSCIL,这是一种新颖的框架,采用解耦训练方法,结合变分自编码器以减少灾难性遗忘,并利用基于类原型的动态边界划分技术实现精确的决策边界界定。该方法在开源和企业数据集上的恶意软件检测与分类任务中优于其他现有方法。表19,7,20,21,22,23,24,25,26,27,28,29,30,31,32对现有研究工作进行了简要综述。
表1:基于机器学习/深度学习的物联网攻击检测现有研究文献。该表格对现有研究工作进行了简要综述。请点击此处下载该表格。
所提出的CNN-Transformer模型通过直接解决以往方法中攻击识别范围狭窄和特征学习能力有限的问题,为物联网网络提供了全面的安全保障。将卷积编码与自注意力机制相结合,消除了仅使用CNN10,13或仅使用Transformer33方法时检测边界较低的缺陷。此外,我们对每一层CNN编码结构所做的特定改进,提高了领域迁移的有效性,同时减少了训练时间和计算开销。这些改进使得在实际运行的物联网环境中能够实现实时安全分析。该模型在保护物联网生态系统免受新型且更复杂威胁方面迈出了重要一步。
访问受限。请登录或开始试用以查看此内容。
本部分讨论物联网(IoT)环境中与攻击检测系统相关的研究材料与方法。为了在 CIC-IoT-2023 数据集上复现实验,本协议概述了具体的操作步骤。随后的材料表列出了所使用的所有硬件和软件。该流程使用 Python(pandas、scikit-learn 和 TensorFlow Keras)实现,在 Google Colab 上运行,并利用 PySpark 进行大文件的预处理。文中已提供对数据预处理步骤的详细说明。
数据集
本研究所使用的 CIC-IoT-2023 数据集由加拿大新不伦瑞克大学网络安全研究所(Canadian Institute for Cybersecurity)发布。“CIC IoT 数据集 2023”(UNB CIC 数据集页面)以及相关数据集论文34 是该数据集的官方页面和文献。该数据集可通过 CIC 官方网站下载,面向公众开放。本研究未使用原始的 PCAP 文件,而是采用了预提取特征后的 CSV 格式文件(即流/特征文件)。原始数据集的生成实验中使用了 Wireshark/mergecap 和 CICFlowMeter 工具;而本研究直接使用已提取特征的 CSV 文件。该数据集来源于真实的物联网设备,包含了针对 105 种不同物联网设备的 33 种已知攻击记录。与以往的物联网数据集不同,CIC-IoT-2023 涵盖了更为多样的攻击类型。各类标签中与良性流量相关联的数据量如 图 1 所示。该数据集共包含 46 个属性和 1 个标签。相较于具有 84 个特征的 CSE-CIC-IDS 2018 数据集,CIC-IoT-2023 减少了 37 个特征,共计 46 个特征。

图 1:CICIoT2023 数据集中攻击类型的数量。 本文描述了 CICIot2023 数据集中不同类型攻击及良性记录的数量名称。这些不同类型的攻击大致可分为 7 个攻击类别,因此在多分类任务中总共包含 8 个类别(含良性类别)。请点击此处查看该图的放大版本。
数据预处理
数据集在未经过充分预处理的情况下不应直接用于深度学习算法。预处理的目的是为算法提供更高质量的数据,从而提升模型的效率。在完成标签编码、特征缩放和特征选择等步骤后,预处理流程的输出被称为“最终数据”,并将作为卷积神经网络(CNN)和Transformer组件的输入。以下步骤在Google Colab中使用Python实现。本研究使用的软件版本包括:Python 3.8.10、pandas 1.3.4、NumPy 1.21.4、scikit-learn 1.0.2、matplotlib 3.4.3,以及TensorFlow/Keras 2.6.0。所有实验运行均将随机种子设为42。
数据采集
此步骤包括清理从现实世界环境中获取的数据,因为这些数据通常包含大量错误和不一致之处。例如,当数据集中包含文本值时,在未将其首先转换为数值形式之前,无法将其用于深度学习训练。在处理数据集时,首先需要移除空白值,并删除不含数据的单元格。为避免对模型产生不利影响,已将含有缺失数据的行予以剔除。
使用 pd.read_csv('ciciot2023_features_part.csv') 加载 CIC-IoT-2023 数据集。本研究使用 Google Colab 进行模型训练,并使用 PySpark 进行初始数据清洗。为检测缺失值,采用以下方法:df.shape、df.info()、df.isnull().sum() 以及用于检测重复值的 df.duplicated().sum()。通过 df.drop_duplicates(inplace=True) 删除重复数据。使用公式 df[col] = pd.to_numeric(df[col], errors='coerce') 验证数值型列的数据类型。若出现新的 NaN 值,则重新应用缺失值处理方法。此外,通过 df.drop(columns=low_variance_cols, inplace=True) 删除恒定或几乎恒定的特征列。
标签编码
下一步是将文本标签转换为数值表示形式,以便模型能够理解这些标签。对于二分类任务,存在两种不同类型的标签。共有 46,686,579 条记录,其中 45,588,384 条被标记为恶意攻击。良性标签包含 1,098,195 条记录,被设为 0。在多分类任务中,共有七种不同类型的攻击。总共包含八个标签,其中包括良性流量。图 2 展示了这些标签中每个类别的数量。本研究中使用的多分类映射为:0 表示良性(Benign),1 表示拒绝服务攻击(DoS),2 表示分布式拒绝服务攻击(DDoS),3 表示侦察攻击(recon),4 表示基于网页的攻击(web-based attack),5 表示欺骗攻击(spoofing),6 表示暴力破解攻击(bruteForce),7 表示 Mirai 攻击(mirai attack)。

图 2:包含良性流量的各类攻击所占百分比。 多分类任务中共有七种不同类型的攻击,总计八个标签,包括良性流量。该图展示了这些标签中每个类别的数量。请点击此处查看该图的放大版本。
特征缩放
特征缩放是一种常见的方法,用于提升深度学习模型的整体性能。本研究中采用最小-最大缩放器(Min Max Scaler)和标准缩放器(Standard Scaler)技术实现特征缩放。研究未在测试过程中使用这些缩放器;相反,仅在训练集上应用缩放器,以防止数据泄露。标准缩放器方法可将数据归一化为均值为零、标准差为一的分布。实现此目的的一种方法是将原始数值除以其标准差。为此,需从 sklearn.preprocessing 导入 StandardScaler 并调用 StandardScaler() 函数。最小-最大缩放器通过将数据缩放到一个特定范围(通常在 0 到 1 之间)来实现数据归一化。本研究使用 scikit-learn 中的 MinMaxScaler() 函数实现该方法。
如公式(1)所示,归一化公式为:
(1)
其中,X 代表原始点值,Xnormalized 代表其转换后的形式,Xmin 表示变量的最小值,而 Xmax 表示数据集中该变量的最大值。
特征选择
将大型数据集中的所有特征都纳入训练并不总是有益的。数据集中的特征之间可能存在相关性,且未必能提升模型效果。此外,过多的特征会增加训练成本。为了识别并剔除不必要的特征,我们计算其相关性矩阵,并从数据集中排除具有强相关性的特征。相关性计算采用皮尔逊相关系数,该系数用于量化两个特征之间的线性关系。其值介于 -1 和 +1 之间,通过将两个变量的协方差除以其标准差的乘积得到。此步骤为可选操作,在本流程中结合递归特征消除(Recursive Feature Elimination, RFE)与决策树分类器进行特征选择。递归特征消除通过反复训练分类器模型并剔除最不重要的特征,从而逐步找出最具相关性的特征。代码实现中使用了 sklearn.feature_selection 模块中的 RFE 方法,并以决策树分类器作为估计器。在完成递归特征消除后,如表 2所示,每个七类攻击类别均筛选出 30 个特征。一个特征可能属于多个攻击类别。在完成图 3所示流程后,即进行数据集中攻击类别的选取。尽管现代卷积神经网络(CNN)擅长从原始数据中学习分层表示,但使用 RFE 预先选择少量高质量特征仍具有显著优势。首先,结合决策树分类器的 RFE 能快速剔除可能在早期训练周期中延缓收敛的噪声或冗余数据。其次,使 CNN 聚焦于更小但真正有价值的信号集合,有助于减少过拟合,这在良性与恶意模式高度偏斜的物联网(IoT)流量数据集中尤为重要。决策树的递归消除方法对特征进行排序,有助于提升模型可解释性,并在深度训练前识别领域特定的偏差。最后,在此精简后的特征集上初始化 CNN-Transformer 模型,可实现更快的收敛速度并降低 GPU 内存消耗,证明 RFE 能有效加速并稳定端到端的特征学习过程。
表2:数据集“CIC-IoT-2023”的选定特征。本研究使用RFE方法从46个特征中为七类攻击中的每一类选取了30个特征。该表格描述了所选的30个特征。请点击此处下载该表格。

图3:所提出混合模型的工作流程。 图中概述了整个流程的完成过程。其中包括对数据集中包含的攻击类别进行选择的过程。请点击此处查看该图的放大版本。
按照以下步骤将数据集划分为80%的训练集和20%的测试集:train_test_split (X_train, y_train, test_size=0.20, random_state=42)。进一步使用train_test_split(X_train, y_train, test_size=0.20, random_state=42)对80%的训练集进行划分。所有模型选择和超参数调优均基于这些精确的划分结果进行。当存在类别不平衡问题时,采用合成少数类过采样技术(SMOTE)。仅在数据划分和标准化后的训练集上应用SMOTE。SMOTE的效果将在结果部分展示。在递归特征消除(RFE)之后,研究使用为每个样本选定的相同30个特征,平行地构建CNN和Transformer分支。处理这30个特征的更多细节在所提出的方法部分中说明。
提出的方案
借助深度学习模型,将构建一种针对物联网系统的高效安全框架,以更准确地检测攻击。本文提出一种结合卷积神经网络(CNN)与Transformer模型的混合安全策略。该方法包括使用较大数据集的权重训练CNN架构,然后利用较小的目标数据集对模型参数进行微调。该模型的主要目标是提升物联网中入侵检测的效率。
本研究使用了 PySpark,这是一个 Google Colab 平台,允许用户在 Apache Spark 上运行 Python 程序。通过使用 Scikit-learn 和 Keras 软件包,开发了深度学习算法。用于训练和测试模型的配置如下:操作系统:Mac OS v12.6;- M2 Apple Silicon;- 13.3 英寸显示屏;- 8 核 CPU;- 8 核 GPU;- 32 GB 内存;- 256 GB 固态硬盘。
加拿大网络安全研究所(CIC)创建了一个全面的物联网威胁数据集,以推动在实际物联网环境中的安全分析应用34。在一个包含105台联网设备的物联网系统中,共发生了33次攻击。该数据集总共包含46,179,314个事件,攻击被分为七类:DDoS、侦察(Recon)、拒绝服务(DoS)、基于Web的攻击、欺骗(spoofing)、暴力破解(brute force),以及Mirai攻击。训练集包含37,349,263个样本,测试集包含8,830,051个样本,数据集共有46个特征。在每个样本中,恶意物联网设备会对其他物联网设备发起攻击。共有67台物联网设备以及连接到5个集线器的38台Zigbee和Z-Wave设备受到攻击影响。可通过搭建由联网传感器、摄像头、微控制器和智能家居设备组成的网络,执行多种类型的攻击并记录由此产生的流量。使用Wireshark以PCAP格式捕获网络流量,以便进一步分析。由于每次实验会存储两路数据流,因此使用mergecap工具合并PCAP文件。该数据集汇集了多种物联网设备的数据,包括音频播放器、视频录像机、集线器、电源插座、家庭自动化系统、照明设备、传感器以及下一代(NextGen)设备。
本部分介绍了研究中采用的详细研究方法,包含多个连续阶段。此外,该部分还依次定义了所提出的算法,并提供了研究流程的详细流程图。
CNN
CNN 算法采用人工神经网络,属于一种深度学习方法。图4 展示了 CNN 所使用的底层算法:全连接层、池化、展平和卷积均为其组成部分。卷积层是 CNN 不可或缺的部分,接收的细胞数据由卷积层进行处理。
在公式(2)中,输出体积(Vo)由 P(步幅)、Vi(输入体积)、S(卷积层神经元核大小)和 M(零填充)决定。
(2)
随后,在卷积过程中使用滤波器提取输入值的特征。该层生成特征图。通过池化减小输入数据的尺寸,可简化训练过程并减少需要计算的参数数量。池化层可选择采用给定范围内的最大值或数值的平均值。所采用的技术包括两层卷积和两级池化。特征提取过程由此开始。所获得的特征数据被提供用于后续计算。卷积神经网络(CNN)算法具有一维、二维或三维形式。本模型采用的是一维卷积神经网络。分类区域中的层被称为展平层和全连接层。在卷积阶段之后,数据必须被展平,以便用于全连接阶段。该过程在展平层中进行。在全连接层中,采用人工神经网络的传统结构。为了将CNN应用于非图像数据,必须对输入维度进行转换。因此,CNN可以使用一维卷积层来处理一维数据35。

图 4:卷积神经网络(CNN)基本算法。 本图描述了卷积神经网络(CNN)模型的基本工作原理及其组成部分。请点击此处查看该图的放大版本。
Transformer 学习
此外,为了开展进一步的实验,我们采用了 Transformer 建模框架。由于 Transformer 具有自注意力机制,该模型能够同时处理序列中的所有数据点。这使得模型的训练时间更短,并且在推理和训练过程中能更高效地利用计算资源。Transformer 主要由一系列堆叠的编码器和解码器构成。编码过程涉及将一种语言转换为另一种表示形式,而解码过程则是基于先前的输出来预测另一种语言的可能性。由于编码器主要负责特征提取,因此所提出的模型仅使用编码器组件。Transformer 编码器包括输入/位置嵌入、前馈神经网络、层归一化、多头自注意力机制以及残差网络。
为了准备供变换器处理的输入数据,使用嵌入层将分类特征转换为密集的向量表示。位置嵌入用于表示特征在序列上的连接方式,而输入嵌入则用于表示不同输入在公共空间中的关联关系。在变换器处理分类特征之前,本研究使用输入嵌入将其转换为密集向量。
注意力机制的扩展形式——多头自注意力机制,是变换器架构的基础。本研究采用基于缩放点积的多头自注意力机制。
(3)
其中分别表示查询矩阵(Q)、键矩阵(K)、值矩阵(V)以及键矩阵的维度(dk)。多头缩放点积注意力机制与缩放点积注意力机制的不同之处在于,它允许模型关注被映射到不同子空间的多种特征数据,从而产生不同的注意力值。当每个注意力头独立计算注意力权重时,可降低过拟合的风险。其具体公式如下:
(4)
(5)
其中 h 表示注意力头的数量,dv 和 dmodel 分别表示 v 和模型的维度。此外,

接下来,使用层归一化来稳定训练过程。为了防止梯度爆炸,层归一化将每一层的输出限制在一定范围内。这可以提高模型的收敛性和训练速度。与批归一化考虑批次数据不同,层归一化不依赖于批次数据。
CNN-Transformer 提出的模型
本研究提出一种用于检测物联网(IoT)网络中入侵行为的混合型 CNN-Transformer 技术,该方法结合了两种架构各自的独特优势。图5展示了所提出的 CNN-Transformer 混合技术的主要组成部分。在完成所有预处理步骤(包括数据清洗、归一化、标签编码和特征选择)后,数据集中的每个样本均表示为一个30维的特征向量,称为最终数据(Final Data)。相同的最终数据被复制并并行输入到混合模型的两个分支中,随后同时送入 CNN 和 Transformer 模块。CNN 与 Transformer 之间彼此独立,互不依赖,可同时处理相同的输入数据。两个分支(CNN 和 Transformer)展平后的输出结果被拼接,形成一个融合的特征向量,并传递至全连接层进行分类。CNN 模块将输入形状转换为 (num_features, 1),以便在特征维度上执行卷积操作,从而识别局部空间模式;与此同时,Transformer 分支将相同的输入转换为序列格式,并将其映射到更高维的嵌入空间,随后进行位置编码。这使得 Transformer 能够在特征空间中实现自注意力机制,捕捉全局上下文关系。该模型利用 Transformer 独特的结构进行特征提取,而 Sigmoid 函数与全连接层则实现特征与标签之间的映射关系。CNN-Transformer 模型的结构如图5所示。最终构建出一个八分类系统,用于攻击类型分类,具体类别包括:DDoS、Recon(侦察)、DoS、Benign(正常)、基于Web的攻击、欺骗(Spoofing)、暴力破解(Brute Force)和 Mirai。所提出的 CNN-Transformer 模型的评估流程如图5所示。

图 5:所提出模型的架构。 该图展示了所提出的 CNN-Transformer 模型的输入形状及评估流程。请点击此处查看此图的放大版本。
卷积神经网络(CNN)层由两个一维卷积神经网络(CNN)组成,分别具有64和128个单位的滤波器,卷积核大小为3,包含两个最大池化层、一个展平步骤、三个全连接层(分别具有256、128和64个单位)以及三个dropout层。
输入数据通过第一层的一维卷积层进行处理,该层包含 ReLU 激活函数、64 个滤波器、3×3 卷积核以及 1×1 步长。紧随其后的是一个 MaxPooling1D 层,池化大小为 2。该层通过降低输出区域的空间维度,使模型更具灵活性并减少计算成本。第三层是另一个一维卷积层,包含 128 个滤波器、大小为 3 的卷积核、步长为 1,并采用 ReLU 激活函数。该层通过使用更多滤波器来提取输入特征,其作用与第一个最大池化层类似。第一个卷积层的输出随后通过该技术进行处理。接着,在第二个卷积层之后添加了一个最大池化层,其池化大小同样为 2。该层再次用于对特征图进行下采样。第五层为展平层,它将前一层的输出转换为一维向量。
获得的特征子集在成为Transformer输入之前的最后一步被嵌入为输入。此外,采用多头注意力机制——一个包含八个头的一维向量,每个头的键维度为32——用于评估各个头的重要性。多头注意力层是Transformer的主要组成部分,该层使模型能够以自适应的方式从不同特征的嵌入表示中进行学习。多头注意力层由多个自注意力头构成,这些自注意力头也被称为“缩放点积注意力”。在应用层归一化(epsilon设为1e-6)之后,其目标是消除不同特征之间的尺度差异,并确保输出的稳定性。通过将每一层的输出保持在预设范围内,层归一化降低了梯度爆炸的可能性。在Transformer输出之后是一个展平层,该层将其简化为单个向量,以便与卷积神经网络(CNN)进行融合。
下一步是使用拼接层将 CNN 和 Transformer 的展平输出进行合并。展平层之后是激活函数“relu”、L2 正则化以及一个包含 256 个单元的全连接层。随后是一个丢弃率为 0.5 的 dropout 层,以帮助避免过拟合。接下来是一个使用 L2 正则化和“relu”激活函数的 128 单元全连接层。附加的 dropout 层的丢弃率为 0.3。后续层由 ReLU 激活函数、L2 正则化和一个 64 单元的全连接层组成。下一层为丢弃率为 0.2 的 dropout 层,随机消除内部 20% 的单元。最后一个全连接层使用 softmax 激活函数,为输出类别生成概率分布。该层的单元数量与输出类别的数量完全相同。
该建议模型可表示为以下数值形式:
设 X 为 CNN 的输入数据,其中 X
R(n×1),经重塑后,n 分别表示所选特征的数量。X 被映射到一个形状为 R(n × d_model) 的高维嵌入空间,以供 Transformer 模块使用。在进入自注意力机制之前,会先进行位置编码。
以下是 Conv1D 层中运算的表达式,该层使用 64 个滤波器,卷积核大小为 3:
(6)
其中,Yi,j 表示第 ith 个滤波器在位置 j 的输出,k 是大小为 3 的卷积核,b1
R64 是每个滤波器的偏置项,Wk 表示滤波器权重,ReLU 为激活函数。接下来,应用池化大小为 2 的最大池化(MaxPooling)层,得到输出 Z1,j。
(7)
模型的第三层包含一个额外的ID卷积层,其卷积核大小为3,滤波器数量为128;该层的表达式为:
(8)
其中 k 是大小为 3 的卷积核,b2
R128 是每个滤波器的偏置项,ReLU 为激活函数。随后应用另一个最大池化层,该层从第二个卷积层接收输入,池化大小为 2。输出 Z2,j 由以下公式给出:
(9)
第五层是一个展平层,表示为:
(10)
接下来是变换器层,其中包括嵌入层、多头注意力层和层归一化
(11)
E 是输入类别标签 c 的嵌入向量,We 是包含所有类别嵌入向量的权重矩阵。该过程将 c 中的每个整数映射为一个包含 32 个实数值分量的稠密向量。接下来是多头注意力层,其公式如方程(3)、(4)和(5)所示。
关键矩阵的大小为 dk =32,维度为 h=8。dv 和 dmodel 分别表示 v 和模型各自的维度。此外,
对于输出 x = MultiHead(Q,K,V),层归一化提供:
(12)
其中 y 是归一化输出,γ 和 β 是可学习参数,µ 和 σ2 分别表示 x 的均值和方差。接下来是用于变换器的展平层,定义为

在所有层的最后,最终的表达式显示为








其中 Z1
R256,Z2
R128,Z3
R64,以及 Y
R8。该混合模型还计算多分类任务中的损失函数,其表达式为

其中:
Yc 表示类别 c 的真实标签(one-hot 编码),
Y'c 表示类别 c 的预测概率
该算法的详细说明见表 3。
表3:提出的CNN-Transformer算法。表3中逐步解释了所提出的算法。请点击此处下载该表格。
访问受限。请登录或开始试用以查看此内容。
本部分介绍了评估参数以及测试结果。
性能评估指标
可使用若干定义明确的评估标准来评价模型的有效性。准确率、召回率、精确率、F1 分数、ROC、混淆矩阵及其他统计指标如表4所示。这些指标可为模型的整体性能提供深入分析。
表4:性能评估指标。本研究中使用的准确率、召回率、精确率、F1分数、ROC、混淆矩阵及其他统计指标如表所示。请点击此处下载该表格。
利用最新创建的 CICIoT2023 数据集,本实验测试了 CNN-Transformer 模型检测攻击的能力。数据集的 80% 用于训练,20% 保留用于测试。为了评估模型在新数据上的性能并确定其超参数的最优值,我们再次按照 80:20 的比例...
访问受限。请登录或开始试用以查看此内容。
在CICIoT2023数据集上对CNN-Transformer模型进行了测试,其中80%用于训练,20%用于测试。该模型达到了99.97%的准确率、99.96%的F1分数、99.97%的召回率、99.96%的精确率以及0.0123的损失值,验证了其在物联网入侵检测中的有效性。基于CNN的方法与已有研究13的发现类似,在检测网络流量特征中的小尺度空间模式方面表现出色;然而,它们在建模长距离依赖关系时通常存在局限性。基于Transformer的模型33在提取全局上下文关联方面更具优势,但单独使用时可能计算成本较高。通过结合两种结构的优势,我们的模型在提升检测性能的同时保持了较高的计算效率。ROC曲线展示了召回率与准确率之间的关系,并使用真阴性率(TNR)和假阳性率(FPR)等指标对模型在每一类上的性能进行了评估。模型的时间复杂度通过可训练参数数量进行评估,该数量直接关联模型的计算成本。深度学习模型对RAM和CPU的使用随输入规模、模型复杂度和训练步数的增加而上升。一旦训练开始,模型的内存需求保持稳定,使其适用于更大规模的部署。CPU使用情况受到监...
访问受限。请登录或开始试用以查看此内容。
作者声明无利益冲突。
我想向我的导师西玛博士致以特别的感谢,感谢她在本研究中传授给我她的知识与专业技能。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Apple M2(8核CPU) | Apple | N/A | (操作系统)提供深度学习框架和工具运行的环境。 |
| CICIoT2023 数据集 | UNB | https://www.unb.ca/cic/datasets/iot2023.html | 公开可用的物联网数据集 |
| Keras 2.6.0 | Keras | https://keras.io/ | 运行在 TensorFlow 之上的 API,提供用户友好的接口。 |
| Matplotlib 3.4.3 | Matplotlib | https://matplotlib.org/ | Python 的可视化库。 |
| NumPy 1.21.4 | NumPy | https://numpy.org/ | 用于 Python 科学计算的基础包。 |
| NVIDIA Tesla P100 GPU(16 GB VRAM) | Google Colab Pro | N/A | 训练用硬件 |
| Pandas 1.3.4 | Pandas | https://pandas.pydata.org/ | 数据分析与操作工具。 |
| Python 3.8.10 | Python 软件基金会 | https://www.python.org/downloads/release/python-3810/ | 由于其丰富的库和社区支持,成为深度学习中最流行的编程语言。 |
| scikit-learn 1.0.2 | Scikit Learn | https://scikit-learn.org/ | Python 的机器学习库。 |
| Seaborn 0.11.2 | Seaborn | https://seaborn.pydata.org/ | 统计数据分析可视化库。 |
| 系统内存 | N/A | N/A | 32 GB RAM |
| TensorFlow 2.6.0 | https://www.tensorflow.org/ | 因其全面的工具和库而被广泛使用。 |
访问受限。请登录或开始试用以查看此内容。
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可