【翻译】基于半监督联邦学习的物联网入侵检测方法

【翻译】基于半监督联邦学习的物联网入侵检测方法

《Semisupervised Federated-Learning-Based Intrusion Detection Method for Internet of Things》论文翻译

Semisupervised Federated-Learning-Based Intrusion Detection Method for Internet of Things | IEEE Journals & Magazine | IEEE Xplore

联邦学习 (FL) 已成为一种越来越流行的入侵检测解决方案,以避免物联网 (IoT) 边缘设备中的数据隐私泄露。然而,现有的基于联邦学习的入侵检测方法存在三个局限性:1)每轮传输的模型参数可能被用于恢复私有数据,导致安全风险;2)不独立且相同分布(非 IID)的私有数据严重影响联邦学习(尤其是基于蒸馏的联邦学习)的训练;3)模型尺寸过大导致通信开销高,极大地阻碍了解决方案的实际部署。针对这些问题,本文通过知识蒸馏,开发了一种基于半监督联邦学习方案的入侵检测方法。首先,我们提出的方法通过蒸馏方法利用未标记的数据来增强分类器的性能。其次,构建基于卷积神经网络(CNNs)的流量数据包深度特征提取模型,并将该模型作为分类器网络和判别器网络;第三,判别器旨在提高每个客户端预测标签的质量,避免在私有非 IID 数据下出现大量错误预测导致的蒸馏训练失败。此外,硬标签策略和投票机制的结合进一步降低了沟通开销。在 3 个非 IID 场景下的真实交通数据集上的实验表明,与现有方法相比,所提方法能够实现更好的检测性能和更低的通信开销。

Introduction

物联网(IoT)近年来发展迅速,在健康和交通系统等多种应用中提供了有用的服务。与此同时,大量物联网设备缺乏适当的安全防御措施,因此,入侵者可以很容易地瞄准其中许多 [1] 设备。 [6] 因此,为物联网设备采用入侵检测系统 (IDS,intrusion detection systems) 至关重要。得益于深度学习(DL)技术的发展,基于深度学习的方法在流量分析和入侵检测 [7] 领域取得了巨大的成功 [14] 。通常,集中式深度学习 (CDL,centralized DL)技术从各种物联网设备收集大量流量数据,并将这些数据上传到中央服务器,以训练用于检测的深度神经网络 (DNN) 模型。虽然这些 CDL 方法可以在入侵检测任务中实现较高的准确性,但存在信息泄露问题,即对隐私敏感的原始数据被上传到中央服务器,并可能被服务器滥用。为了解决CDL的私密数据泄漏问题,最近在IDS中应用了联邦学习(FL)[15]–[18],[20],[19]。在FL框架中,设备通过周期性地交换和聚合中央服务器上的DL模型参数或梯度,共同训练其本地DL模型,而无需上传原始数据。然而,由于传统FL要求客户频繁上传DL模型的参数,其高通信开销严重阻碍了实际部署[21]–[27]。此外,物联网设备通常规模庞大,这意味着在应用FL时需要大量设备(客户端)上传信息(例如梯度和参数),导致更昂贵的通信开销[28]。更糟糕的是,已经发生过许多攻击可以从上传的模型参数中恢复客户端的原始数据,这意味着该方案仍然存在信息泄漏的安全风险[29]。

最近,联邦蒸馏(FD,federated distillation)方案被提出,以减少交换模型参数 [30] 带来的通信开销和安全风险。 [32] FD 中的客户端可以将 DL 模型的输出而不是模型参数上传到服务器。然后,服务器聚合输出,也称为本地日志。聚合的本地日志,即全局日志被下载,并由客户端在进一步的本地训练过程中使用。虽然 FD 降低了通信开销,并实现了与基于独立和相同分布(IID)数据的 FL 相似的精度,但当数据分布不是 IID(non-IID)时,FD 的性能较差。由于数据分布是非 IID 的,因此设备的本地数据不代表人口分布,并且全局 logits 保留了与已附加到每个设备的本地标签相似的信息。基于全局对数的训练与基于本地数据集的训练几乎相同。因此,基于联邦学习的入侵检测方法的几个实际应用应该可以实现这些目标:

  1. 安全性:联邦学习是为了保护用户的数据隐私。因此,基于联邦学习的方案应确保私人数据无法被获取或恢复。
  2. 准确性:客户端在现实世界的物联网网络中通常拥有非 IID 私有数据,因此联邦学习训练需要避免非 IID 数据的不利影响。
  3. 效率:在现实环境中成功部署该方案需要通信开销低的联邦学习方法。这是为了确保及时交付最终模型。

为了解决上述挑战,我们开发了一种通过知识蒸馏进行入侵检测的半监督联邦学习方案,称为半监督联邦学习(SSFL,semisupervised FL),它由多个客户端和一个中央服务器组成。具体来说,客户端首先从中央服务器下载未标记的开放数据,此步骤仅对每个客户端执行一次。易于获取的未标注流量数据,无需人工标注,节省了人力和时间成本。然后,利用局部非 IID 标记数据对第一阶段分类器网络进行训练;由于第一阶段分类器无法学习一些不在本地标记数据集中的流量类别,因此它可能会对不熟悉的未标记流量数据做出错误的预测。因此,我们引入判别器来判别未标记的流量数据包是否“熟悉”,其中不熟悉的流量数据包将被标记,从而提高预测软标签的质量。需要注意的是,分类器网络和判别器网络都使用基于卷积神经网络(CNN)的模型,可以有效地提取流量数据包的深度特征。接下来,为了进一步降低通信成本,客户端将软标签转换为硬标签并上传到中央服务器。中央服务器收集完所有客户端的预测后,通过投票机制确定未标记开放数据的全局标签,而不是直接聚合。最后,将聚合的标签发送给每个客户端,以训练第二阶段分类器。重复上述步骤,通过 SSFL 实现入侵检测的出色性能模型。因此,本文的主要贡献可以总结如下。

  1. 我们提出了一种用于入侵检测的 SSFL,它使用未标记的数据和知识蒸馏来实现一种基于隐私和通信效率的基于联邦学习的物联网入侵检测方法。
  2. 开发了一种基于 CNN 的流量数据包深度特征提取模型,并将该模型作为分类器网络和判别器网络。
  3. 为了使我们的方案更有效,我们设计了一个鉴别器来区分流量数据包是否熟悉,从而提高了每个客户端预测标签的质量。此外,硬标签策略投票机制的结合进一步降低了沟通开销。
  4. 我们构建了三个具有挑战性的非 IID 场景,并在真实世界的物联网流量数据集上评估了 SSFL。实验结果表明,与现有方法相比,该方案具有更好的检测性能和更低的通信开销。因此,它适用于物联网网络中的联合训练和检测入侵。

本文的其余部分组织如下。 Section II 回顾了 IDS 中使用的最先进方法。在中 Section III ,我们介绍了联邦训练的基线方案,包括联邦学习方案、FD 方案和基于蒸馏的半监督 FL(DS-FL,distillation-based semisupervised FL)方案。我们方法的详细信息在 Section IV 中描述。在 Section V 中,我们通过实验评估了 SSFL 的性能。最后,我们在 Section VI 总结本文。

logits 可以看作神经网络输出的未经过归一化的概率。即分类模型生成的原始(非规范化)预测的向量,通常随后将其传递给规范化函数。如果模型正在求解多类分类问题,则对数通常会成为 softmax 函数的输入。然后,softmax 函数生成一个(归一化)概率向量,每个可能的类都有一个值。

来源:machine learning - What is the meaning of the word logits in TensorFlow? - Stack Overflow

相关工作

A. 基于 DL 的 IDS

研究人员提出了许多入侵检测方法来防御网络攻击。一般来说,IDS 分为三类:1) 基于规则的 IDS;2)基于 ML 的 IDS;3)基于 DL 的 IDS。基于规则的 IDS 根据采集到的异常样本,判断流量是否与对应的规则匹配。基于规则的 IDS 的主要缺点是某些关键功能(例如端口号)在复杂的网络环境中容易出现故障,并且难以检测到未知入侵。近年来,为了更好地分析复杂的网络流量,一些 ML 算法被应用于入侵检测 [33] 领域。 [37] 虽然基于 ML 的 IDS 可以根据流量的有效载荷或统计特征有效地检测未知入侵,但它们通常严重依赖特征工程,只能提取浅层特征。一些工作提出了基于深度学习算法的入侵检测方法,并表现出比机器学习算法更好的性能。例如,Mirsky 等人 [7] 设计了一个神经网络集合,可以共同区分正常和异常流量,从而实现低复杂度的在线处理。Lin 等人 [13] 提出了一种基于堆叠稀疏自编码器(SSAE)和递归神经网络(RNN)的时间相关入侵检测方法,该方法采用贪婪分层策略有效地提取特征,以提高检测性能。Andresini 等人 [14] 建议使用 CNN 架构,该架构在网络流的图像表示上进行训练,以检测攻击流行为。 显然,基于深度学习的方法在入侵检测领域取得了成功,但它们依赖于大量的流量样本来训练具有出色检测性能的模型。由于这些数据包含用户的私人信息,因此大多数用户不愿意提供这些信息。另一方面,一些关于数据隐私的法律(例如 GDPR) 1 对用户数据的使用有严格的规定。

B. 基于 FL 的 IDS

联邦学习是针对隐私敏感数据提出的,这与需要收集用户私人数据的 CDL 形成鲜明对比。最近,由于隐私优势,联邦学习方法在 IDS 和物联网中得到了广泛的应用。Popoola 等人 [16] [17] 首先引入了声誉作为衡量移动设备可靠性和可信度的指标,以避免物联网边缘设备中的数据隐私泄露。Al-Marri 等人 [18] 提出在联邦学习框架中使用模拟学习来克服联邦学习中的逆向工程问题,以最大限度地降低 IDS 中危害用户隐私的风险。Hei 等人 [19] 提出了面向 IDS 的联邦学习框架,该框架将模型训练过程信息和行为存储在区块链上,以满足真实场景中大量告警训练数据的存储需求。Zhang 等人 [20] 提出了一种新的半监督联邦学习方法,利用未标记的数据来训练基于一致性正则化的无监督模型,然后将无监督模型、监督模型和全局模型聚合成一个新的全局模型。

然而,基于深度学习的模型具有大量的参数,这使得客户端遭受通信瓶颈的困扰。为了减少基于联邦学习的方案中的通信开销,一些研究人员应用了各种方法。Liu 等人 [28] 提出了一种高效的通信联邦学习方案,该方案在基于联邦学习的 IDS 中使用基于顶部 k 选择的梯度压缩机制来降低通信开销。Qin 等人 [38] 在基于 FL 的 IDS 中使用二值化神经网络来降低训练的通信开销。虽然上述方法减少了通信开销,但它会根据模型大小进行扩展。受基于蒸馏的联邦学习方法 [30] 的一些工作的启发, [31] 我们开发了一种用于入侵检测的半监督联邦学习方案,该方案在每一轮训练中传输未标记数据的预测,而不是模型参数。此外,我们提出了一个鉴别器,用于提高每个客户预测标签的质量。结果表明,我们的方法在真实世界的交通数据集上优于最先进的技术,详见后面的实验部分。

背景

在本节中,我们总结了联邦训练的基线方案,包括 FL 方案、FD 方案和 DS-FL 方案,详情如下。

联邦学习方案的过程包括四个步骤。首先,参与联邦学习的物联网设备或移动电话(根据术语称为客户端)使用私有数据集训练其深度学习模型。其次,每个客户端将模型的参数上传到中央服务器。服务器将每个客户端的参数相加,并计算参数的平均值以获得新的参数。最后,将新参数广播到每个客户端,然后每个客户端继续循环,直到训练收敛。

A. Baseline 1: FL 方案

联邦学习方案的过程包括四个步骤。首先,参与联邦学习的物联网设备或移动电话(根据术语称为客户端)使用私有数据集训练其深度学习模型。其次,每个客户端将模型的参数上传到中央服务器。服务器将每个客户端的参数相加,并计算参数的平均值以获得新的参数。最后,将新参数广播到每个客户端,然后每个客户端继续循环,直到训练收敛。

更具体地说,我们考虑有 K K K 客户端参与 FL,并且每个客户端 k = 1 , 2 , 3 , … , K k=1,2,3,\ldots,K k=1,2,3,,K 都有一个私有标记的数据集 D k = { ( x i k , y i k ) ∣ i = 1 , 2 , … , n } D^{k} = \{(\boldsymbol {x}_{i}^{k}, \boldsymbol {y}_{i}^{k}) | i=1,2,\ldots, n\} Dk={(xik,yik)i=1,2,,n} ,其中 x i k \boldsymbol x^k_i xik y i k \boldsymbol y^k_i yik n n n 分别表示样本的矢量化特征、 样本的 one-hot 标签和数据集 D k D^k Dk 中的样本数。对于 L L L -class 分类任务, y i k \boldsymbol y^k_i yik 是一个独热向量,即 y i k = [ y i , 0 k , y i , 1 k , … , y i , L − 1 k ] T \boldsymbol {y}_{i}^{k} = [y_{i,0}^{k},y_{i,1}^{k},\ldots, y_{i,L-1}^{k}]^{T} yik=[yi,0k,yi,1k,,yi,L1k]T .为简单起见,我们分别将 { x i k ∣ i = 1 , 2 , … , n } \{\boldsymbol {x}_{i}^{k} | i=1,2,\ldots, n\} {xiki=1,2,,n} { y i k ∣ i = 1 , 2 , … , n } \{ \boldsymbol {y}_{i}^{k}| i=1,2,\ldots, n\} {yiki=1,2,,n} 连接为名为 X k \boldsymbol {X^{k}} Xk Y k \boldsymbol {Y^{k}} Yk 的矩阵。

在第一轮通信训练之前,客户端 k k k 的 DL 模型与服务器的 DL 模型进行初始化,即 w k ← w s \boldsymbol {w}^{k} \gets \boldsymbol {w}^{s} wkws ,其中 w k \boldsymbol {w}^{k} wk w s \boldsymbol {w}^{s} ws 分别表示服务器的 DL 模型初始参数和客户端 k k k 的 DL 模型初始化参数。

在第一轮通信的训练步骤中,客户 k k k 使用其私有数据集训练其深度学习模型。然后,每个客户端 k = 1 , 2 , 3 , … , K k = 1,2,3,\ldots, K k=1,2,3,,K 将模型参数 w k \boldsymbol {w}^{k} wk 上传到服务器。服务器聚合参数并生成新参数 w s \boldsymbol {w}^{s} ws ,如下所示:

w s = ∑ k = 1 K N k N w k \begin{equation*} \boldsymbol {w}^{s} = \sum _{k=1}^{K} \frac {N^{k}}{N} \boldsymbol {w}^{k}\tag{1}\end{equation*} ws=k=1KNNkwk(1)

其中 N N N 是私有样本的总数,即 N = ∑ k = 1 K N k N = \sum _{k=1}^{K}N^{k} N=k=1KNk。在第二轮通信中,将服务器 DL 模型的新参数广播到每个客户端,即 w k ← w s \boldsymbol {w}^{k} \gets \boldsymbol {w}^{s} wkws 上述进程将循环进行多轮通信。

网络参数的单纯聚合

B. Baseline 2: FD 方案

参与 FD 方案的客户端不需要上传参数,而是所有客户端都需要上传每个标签的平均预测值,从而减少了整个训练过程中 [30] 的通信开销。客户端 k k k 拥有的私有数据集 D k D^k Dk 可以根据标签划分为 L L L 个子集,即 D k = D k , 0 ∪ D k , 1 ∪ ⋯ ∪ D k , L − 1 D^{k} = D^{k,0} \cup D^{k,1} \cup \cdots \cup D^{k,L-1} Dk=Dk,0Dk,1Dk,L1 . 对于一个子集 D k , l = { ( x i k , l , y i k , l ) ∣ i = 1 , 2 , 3 , … , n } D^{k,l} = \{ ({\boldsymbol x}^{k,l}_{i},{\boldsymbol y}^{k,l}_{i}) | i=1,2,3,\ldots, n\} Dk,l={(xik,l,yik,l)i=1,2,3,,n},每个样本的标签是一个独热向量,表示标签是 l l l ,即 y i k , l = [ y i , 0 k , l , y i , 1 k , l , … , y i , l k , l , … , y i , L − 1 k , l ] T {\boldsymbol y}^{k,l}_{i} = [y^{k,l}_{i,0}, y^{k,l}_{i,1},\ldots, y^{k,l}_{i,l},\ldots, y^{k,l}_{i,L-1}]^{T} yik,l=[yi,0k,l,yi,1k,l,,yi,lk,l,,yi,L1k,l]T 其中 y i , l k , l = 1 y^{k,l}_{i,l} = 1 yi,lk,l=1 其他是 0。FD 方法有六个步骤。

首先,每个客户端 k k k 使用数据集 D k D^k Dk 训练其本地模型 w k w^k wk ,这与 FL 相同。然后,每个客户端计算每个标签的平均值,也称为局部平均 logit 向量。具体如下:

y ^ i k , l = F ( x i k , l ∣ w k ) y ˉ k , l = 1 N k , l ∑ i = 1 N k , l y ^ i k , l . \begin{align*} {\hat {\boldsymbol y}}^{k,l}_{i}=&F\left ({{\boldsymbol x}^{k,l}_{i} | \boldsymbol {w}^{k}}\right)\tag{2}\\ \bar {\boldsymbol y}^{k,l}=&\frac {1}{N^{k,l}} \sum _{i=1}^{N^{k,l}} {\hat {\boldsymbol y}}^{k,l}_{i}.\tag{3}\end{align*} y^ik,l=yˉk,l=F(xik,lwk)Nk,l1i=1Nk,ly^ik,l.(2)(3)

请注意,客户端 k k k 可能没有标签为 l l l 的样本,即 D k , l = ∅ D^{k,l} = \emptyset Dk,l= 。在这种情况下,标签 l l l 的局部平均 logit 向量为 0 \boldsymbol 0 0 ,即 y ˉ k , l = 0 \bar {\boldsymbol y}^{k,l} = \boldsymbol 0 yˉk,l=0

之后,每个客户端将本地平均 logit 向量 { y ˉ k , 0 , y ˉ k , 1 , … , y ˉ k , L − 1 } \{\bar {\boldsymbol y}^{k,0},\bar {\boldsymbol y}^{k,1},\ldots, \bar {\boldsymbol y}^{k,L-1}\} {yˉk,0,yˉk,1,,yˉk,L1} 上传到服务器。然后,将全局平均 logit 向量广播到每个客户端。每个客户端基于它们计算新的局部平均 logit 向量,如下所示:

y ˉ k , l ← 1 N l − 1 ( N l × y ˉ s , l − y ˉ k , l ) . \begin{equation*} \bar {\boldsymbol y}^{k,l} \gets \frac {1}{N^{l} - 1} \left ({N^{l} \times \bar {\boldsymbol y}^{s,l} - \bar {\boldsymbol y}^{k,l}}\right).\tag{4}\end{equation*} yˉk,lNl11(Nl×yˉs,lyˉk,l).(4)

请注意,其真值标签为 l l l 的每个样本 x i k {\boldsymbol x}_{i}^{k} xik 的局部平均 logit 向量 y ˉ i k , l \bar {\boldsymbol y}^{k,l}_{i} yˉik,l 等于 y ˉ k , l \bar {\boldsymbol y}^{k,l} yˉk,l 。接下来,客户端 k k k 使用新的局部平均 logit 向量和真值标签(ground truth)训练其模型。虽然 FD 大大降低了通信开销,但当分布为非 IID 时,FD 的性能较差。

客户端 k k k 使用新的局部平均 logit 向量和真值标签训练其模型?

​#GPT#​?

具体来说,这个过程可以分为两个步骤:

  1. 计算局部平均 logit 向量: 使用本地数据集 D k D^k Dk 训练模型,然后计算每个标签的局部平均 logit 向量 y ˉ k , l \bar {\boldsymbol y}^{k,l} yˉk,l。这些局部平均 logit 向量是模型在本地数据上的预测结果。
  2. 模型训练: 接下来,将这些局部平均 logit 向量作为辅助信息与真实标签一起用于模型的训练。具体来说,可以将局部平均 logit 向量视为模型输出的一部分,与真实标签一起用于计算损失函数。这个损失函数的目标是使模型的输出(包括局部平均 logit 向量)更接近真实标签。

这种方式的目的是引入全局信息,以帮助模型更好地适应整体数据分布。在这个上下文中,局部平均 logit 向量是一种对模型在本地数据上预测的总结,通过使用这个总结信息,模型可以更好地在联合学习中协同工作。在训练过程中,局部平均 logit 向量并不是直接输入模型的,而是作为辅助信息与真实标签一起用于训练。

C. Baseline 3: DS-FL 方案

DS-FL 方案 [31] 由六个步骤组成,每个客户端不仅包含一个标记的私有数据集 D k D^k Dk,还包含一个未标记的数据集 D o = { x j o ∣ j = 1 , 2 , … , N o } D^{o} = \{\boldsymbol {x}_{j}^{o} | j=1,2,\ldots, N^{o}\} Do={xjoj=1,2,,No},其中 x j o \boldsymbol {x}_{j}^{o} xjo N o N^{o} No 分别表示样本的矢量化特征和开放数据集中的样本数。为简单起见,我们使用矩阵 X o \boldsymbol {X}^{o} Xo 来表示的 D o D^o Do 串联矢量化样本。

在第一轮通信的第一步中,每个客户端使用私有标记数据集训练其 DL 模型,这与 FL 相同,如 (1) 所示。下一步称为“预测”步骤:每个客户端 k 进行预测,即对未标记样本的本地 logits 如下:

p ^ j k = F ( x j o ∣ w k ) \begin{equation*} \hat {{\boldsymbol {p}}}_{j}^{k} = F\left ({\boldsymbol {x}_{j}^{o}| \boldsymbol {w}^{k}}\right)\tag{5}\end{equation*} p^jk=F(xjowk)(5)

我们使用矩阵 p ^ j k \hat {{\boldsymbol {p}}}_{j}^{k} p^jk 来表示 DL 模型 D o = { x j o ∣ j = 1 , 2 , … , N o } D^{o} = \{\boldsymbol {x}_{j}^{o} | j=1,2,\ldots, N^{o}\} Do={xjoj=1,2,,No} 的串联。然后,每个客户端将本地 logits 上传到中央服务器。然后,服务器聚合本地 logits,对全局 logits p ^ j s \hat {{\boldsymbol {p}}}_{j}^{s} p^js 的熵进行降简,如下所示:

p ^ j s = 1 K ∑ k = 1 K p ^ j k p ^ j s ← S ( p ^ j s ∣ T ) \begin{align*} \hat {\boldsymbol {p}}_{j}^{s}=&\frac {1}{K} \sum _{k=1}^{K} \hat {\boldsymbol {p}}_{j}^{k} \tag{6}\\ \hat {\boldsymbol {p}}_{j}^{s} \gets &S\left ({\hat {\boldsymbol {p}}_{j}^{s} | T}\right)\tag{7}\end{align*} p^js=p^jsK1k=1Kp^jkS(p^jsT)(6)(7)

其中 S ( ⋅ ∣ T ) S(\cdot |T) S(T) 是有温度参数 T T T 的 softmax 函数 ,即

S ( p ^ j s ∣ T ) = e x p ( p ^ j s T ) ∑ l = 0 L − 1 exp ⁡ ( p ^ j , l s T ) . \begin{equation*} S\left ({\hat {\boldsymbol {p}}_{j}^{s} | T}\right) = \frac {exp\left ({{\frac {\hat {\boldsymbol {p}}_{j}^{s}}{T}}}\right)}{\sum _{l=0}^{L-1} \exp \left ({\frac {\hat {p}_{j,l}^{s}}{T} }\right)}.\tag{8}\end{equation*} S(p^jsT)=l=0L1exp(Tp^j,ls)exp(Tp^js).(8)

T T T 小于 1 时,其 p j \boldsymbol {p}_j pj 分布会更尖锐,这意味着信息熵减小了。降低全局 logits 熵的动机是加速和稳定 DS-FL,特别是在非 IID 数据分布中 [31] 。

在这里, P ^ s \hat {\boldsymbol {P}}^{s} P^s 表示串联 { p ^ j s ∣ i = 1 , 2 , … , N o } \{\hat {{\boldsymbol {p}}}_{j}^{s} | i=1,2,\ldots, N^{o}\} {p^jsi=1,2,,No} 的矩阵,然后广播到每个客户端。最后,每个客户端使用全局 logit 训练其 DL 模型。更具体地说,该过程称为蒸馏,如下所示:

w k ← w k − γ ∇ ψ ( P ^ k , P ^ s ) . \begin{equation*} \boldsymbol {w}^{k} \gets \boldsymbol {w}^{k} - \gamma \nabla \psi \left ({\hat {\boldsymbol {P}}^{k},\hat {\boldsymbol {P}}^{s} }\right).\tag{9}\end{equation*} wkwkγψ(P^k,P^s).(9)

上述过程在多轮通信中循环使用。DS-FL 方法中的每个客户端都需要使用私有数据集训练其本地模型;但是,经过训练的模型会对开放数据集进行预测。如果私有数据集的分布是非 IID,则开放数据集中的样本分布可能与私有数据集的样本分布大不相同,因此这可能导致训练模型的预测错误,从而降低本地 logit 的数量。

跟 2 的区别是是使用无标签数据的预测输出做知识蒸馏

建议的 SSFL 方案

在本节中,我们首先介绍基于 CNN 的检测模型。然后,详细介绍了所提出的 SSFL 方法。我们的方法概述如 Fig. 1 所示。

在这里插入图片描述

Fig. 1. 图 1. 用于入侵检测的半监督联邦学习方案概述。我们基于 CNN 的分类器通过监督训练对标记的本地数据进行训练,并通过蒸馏训练对未标记的开放数据进行训练。此外,我们还引入了多种机制来共同提高全局标签的质量。

A. 基于 CNN 的基线模型

CNN 模型具有很强的特征提取能力,可以促进相邻时间窗与特征之间的信息交互,因此我们在模型中应用 CNN 来提取流量数据包的深层特征。基于 CNN 的基线模型的详细信息如 Table I 所示。

​​在这里插入图片描述
​​

表一 基于 CNN 的基线模型的细节

除输出层外,分类器网络和判别器网络的结构相同。每个模型有 8 个卷积层,用于有效提取交通包特征的特征图,并有 2 个全连接层用于输出模型的预测结果。第一卷积层的输入通道为 23,等于输入的行数。模型前四个卷积层的每一层都有 64 个卷积核,核大小为 3。最后四个卷积层的每一层有 128 个内核,内核大小与前四层相同。最后,对最后一个卷积层的输出进行扁平化处理,并使用具有三个全连接层的多层感知器(MLP)进行分类。分类器网络和判别器网络的最后一层分别有 11 个和 2 个神经元。

由于我们的工作更多地集中在高效联邦训练框架的设计上,因此我们仅简要描述了基于 CNN 的模型的结构。请注意,我们的联合训练方案不会聚合模型参数,这意味着即使客户端采用不同的模型结构,它也可以工作。

B. Proposed SSFL Scheme

FD 通过聚合每个类的 logit 来利用客户端的知识;但是,它只能增强每个客户端中相应类的训练效果,这意味着当客户端缺少某些类的样本时,无法实现对所有类的高效分类。因此,我们引入了一个未标记的开放数据集来解决这个问题。我们的方法可以使用全局 logit 来识别未标记数据集中每个样本属于哪个类别。此外,由于客户端模型(即使用非 IID 数据训练)很难在未标记的开放数据集上生成高质量的 logit,因此我们引入了多种机制来共同提高 logit 的质量。

我们认为有 K K K 客户端,每个客户端都 k ∈ { 1 , 2 , … , K } k\in \{1,2,\ldots, K\} k{1,2,,K} 有两个数据集:1)一个私有标记的数据集 D k , c = { ( x i k , c , y i k , c ) ∣ i = 1 , 2 , … , n } D^{k,c} = \{(\boldsymbol {x}_{i}^{k,c}, \boldsymbol {y}_{i}^{k,c}) | i=1,2,\ldots, n\} Dk,c={(xik,c,yik,c)i=1,2,,n} 和 2)一个在客户端上共享的未标记的开放数据集 D o = { x j o ∣ j = 1 , 2 , … , N o } D^{o} = \{\boldsymbol {x}_{j}^{o} | j=1,2,\ldots, N^{o}\} Do={xjoj=1,2,,No} 。对于 L L L -class 分类任务, y i k , c \boldsymbol y_i^{k,c} yik,c 是一个独热向量。此外,每个客户端都有一个分类器模型,该模型 w k , c \boldsymbol {w}^{k,c} wk,c 使用私有数据集进行训练。此外,每个客户端都有一个鉴别器 w k , d \boldsymbol {w}^{k,d} wk,d。我们描述细节如下

1)训练分类器:

首先,每个客户端 w k , c \boldsymbol {w}^{k,c} wk,c 使用标记的私有数据集训练其分类器。此细节表示为

w k , c ← w k , c − γ ∇ ψ ( Y ^ k , c , Y k , c ) \begin{equation*} \boldsymbol {w}^{k,c} \gets \boldsymbol {w}^{k,c} - \gamma \nabla \psi \left ({\hat {\boldsymbol {Y}}^{k,c},\boldsymbol {Y}^{k,c} }\right) \tag{11}\end{equation*} wk,cwk,cγψ(Y^k,c,Yk,c)(11)

其中 ψ ( ⋅ , ⋅ ) \psi (\cdot,\cdot) ψ(,) 表示损失函数,在此步骤中最小化, Y ^ k , c \hat {\boldsymbol {Y}}^{k,c} Y^k,c 表示分类器模型函数 F F F 的输出,即 Y ^ k , c = F ( X k , c ∣ w k , c ) \hat {\boldsymbol {Y}}^{k,c} = F(\boldsymbol {X}^{k,c}| \boldsymbol {w}^{k,c}) Y^k,c=F(Xk,cwk,c), 并且 γ \gamma γ 表示学习率。对于多分类任务,损失函数可以是交叉熵函数。然后,每个 D o D^o Do 样本都通过分类器,分类器对其进行预测,样本的置信度分数计算为

c j k , o = max ⁡ ( p ^ j k ) = max ⁡ ( F ( x j o ∣ w k , c ) ) . \begin{equation*} c^{k,o}_{j} = \max \left ({{\hat {\boldsymbol p}}^{k}_{j}}\right) = \max \left ({F\left ({\boldsymbol {x}_{j}^{o}| \boldsymbol {w}^{k,c}}\right)}\right). \tag{12}\end{equation*} cjk,o=max(p^jk)=max(F(xjowk,c)).(12)

2)训练鉴别器:

我们首先创建一个空集合 D k , d = ∅ D^{k,d} = \emptyset Dk,d=。然后,一个样本 x j o \boldsymbol x^o_j xjo 将添加到此集合,如果置信度分数小于边界数 θ \theta θ ,并且该样本将被客户端 k k k 判别为“不熟悉”。该过程被描述为

D k , d = D k , d ∪ { ( x j o , [ 0 , 1 ] T ) ∣ c j k , o < θ } \begin{equation*} D^{k,d} = D^{k,d} \cup \left \{{\left ({\boldsymbol {x}_{j}^{o}, \left [{ 0, 1}\right]^{T}}\right) | c^{k,o}_{j} < \theta }\right \} \tag{13}\end{equation*} Dk,d=Dk,d{(xjo,[0,1]T)cjk,o<θ}(13)

我们使用 one-hot 标签来表示不熟悉的标签 [ 0 , 1 ] T [{ 0,1 }]^{T} [0,1]T。更重要的是,我们认为私有数据集中的每个样本对客户 k k k 来说都是“熟悉的”,因此私有数据集中的所有样本都被添加到其中 D k , d D^{k,d} Dk,d ,并且标签是“熟悉的”。该过程表示为我们

D k , d = D k , d ∪ { ( x i k , c , [ 1 , 0 ] T ) ∣ i = 1 , 2 , … , N k , c } \begin{equation*} D^{k,d} = D^{k,d} \cup \left \{{\left ({\boldsymbol {x}_{i}^{k,c}, \left [{ 1, 0}\right]^{T}}\right) | i=1,2,\ldots, N^{k,c}}\right \} \tag{14}\end{equation*} Dk,d=Dk,d{(xik,c,[1,0]T)i=1,2,,Nk,c}(14)

使用一个热标签来表示熟悉的标签 [ 0 , 1 ] T [{ 0,1 }]^{T} [0,1]T。因此,在此步骤完成后, D k , d D^{k,d} Dk,d 数据集包含两个类别的数据。然后,使用 D k , d D^{k,d} Dk,d 数据集对判别器 w k , d \boldsymbol {w}^{k,d} wk,d 进行训练。

3)过滤和上传:

步骤 2 中未标记的开放样本的预测由经过训练的判别器过滤。我们首先将判别结果 d j k , o d^{k,o}_{j} djk,o 计算为

d j k , o = arg ⁡ max ⁡ ( F ( x j o ∣ w k , d ) ) . \begin{equation*} d^{k,o}_{j} = \arg \max \left ({F\left ({\boldsymbol {x}^{o}_{j} | \boldsymbol {w}^{k,d}}\right)}\right).\tag{15}\end{equation*} djk,o=argmax(F(xjowk,d)).(15)

F ( ⋅ ∣ w k , d ) F(\cdot | \boldsymbol {w}^{k,d}) F(wk,d) 的输出是一个二维向量。我们将 arg ⁡ max ⁡ ( ⋅ ) \arg \max (\cdot) argmax() 视为向量最大值的索引。如上一步所述,如果 d j k , o = 0 d^{k,o}_{j} = 0 djk,o=0,则 x j o \boldsymbol {x}_j^{o} xjo 是客户端 k k k 熟悉的,否则这个样本不熟悉。对于 x j o \boldsymbol {x}_j^{o} xjo 中的 Do 每个样本,预测 p ^ j k \hat p^k_j p^jk 按如下方式过滤:

p ^ j k = { arg ⁡ max ⁡ ( F ( x j o ∣ w k , c ) ) ,  if   d j k , o = 0 − 1 ,  if  d j k , o = 1 \begin{align*} \hat {p}_{j}^{k} = \begin{cases} \arg \max \left ({F\left ({\boldsymbol {x}_{j}^{o} | \boldsymbol w^{k,c}}\right)}\right), &~ \text {if }~d^{k,o}_{j} = 0\\ -1, &~ \text {if } d^{k,o}_{j} = 1 \end{cases} \tag{16}\end{align*} p^jk={argmax(F(xjowk,c)),1, if  djk,o=0 if djk,o=1(16)

其中我们使用“-1”表示样本 x j o \boldsymbol {x}_j^{o} xjo 不熟悉。然后,每个客户端将未标记的开放数据(即 { p ^ j k ∣ j = 1 , 2 , … , N o } \{\hat {p}_{j}^{k}| j=1,2,\ldots, N^{o}\} {p^jkj=1,2,,No})的硬标签上传到中央服务器。请注意,每个客户端的未标记开放数据是相同的;然而,每个客户端的判别器区分的未标记开放数据中的“熟悉”样本是不同的。

用训练的鉴别器模型来判断“熟悉”“不熟悉”,若“不熟悉”,则强制分类器输出 − 1 -1 1

即使每个客户端的未标记开放数据是相同的,模型输出结果却不是

这表示了什么?

投票和广播:

对于样本 x j o \boldsymbol {x}_j^{o} xjo ,我们认为存在 L L L 投票集,即 { V j , 0 , V j , 1 , … , V j , L − 1 } \{V^{j,0}, V^{j,1},\ldots, V^{j,L-1}\} {Vj,0,Vj,1,,Vj,L1} .类 -1 用于识别不熟悉的样本,因此类 -1 不包括在 L L L 投票集中。对于样本的预测标签 p ^ j k \hat {p}_{j}^{k} p^jk ,如果 p ^ j k ≠ − 1 \hat {p}_{j}^{k} \ne -1 p^jk=1 ,则将此预测标签添加到相应的投票集中。

所有客户端将样本的预测标签(不包括不熟悉的样本)输入到对应的投票集中后,中心服务器根据每个投票集中的票数确定该样本的全局硬标签。样本的全局硬标签计算如下:

p ^ j s = arg ⁡ max ⁡ ( [ ∣ V j , 0 ∣ , ∣ V j , 1 ∣ , … , ∣ V j , L − 1 ∣ ] ) . \begin{equation*} \hat {p}_{j}^{s} = \arg \max \left ({\left [{ \left |{ V^{j,0} }\right |, \left |{ V^{j,1} }\right |,\ldots, \left |{ V^{j,L-1} }\right | }\right]}\right). \tag{17}\end{equation*} p^js=argmax([ Vj,0 , Vj,1 ,, Vj,L1 ]).(17)

为简单起见,我们使用矩阵 P ^ s \hat {\boldsymbol P}^{s} P^s 来表示串联 { p ^ j s ∣ j = 1 , 2 , … , N o } \{\hat { p}_{j}^{s} | j=1,2,\ldots, N^{o}\} {p^jsj=1,2,,No} 的。最后,将全局硬标签(即 P ^ s \hat {\boldsymbol P}^{s} P^s )广播到每个客户端。

每个客户端将自己视为学生,并将未标记的开放数据的预测标签上传到中央服务器,然后来自中央服务器的未标记开放数据的聚合全局硬标签充当教师,其中每个本地客户端模型使用具有全局硬标签的未标记开放数据进行蒸馏训练。过程如下:

w k , c ← w k , c − γ ∇ ψ ( P ^ k , c , P ^ s ) \begin{equation*} \boldsymbol {w}^{k,c} \gets \boldsymbol {w}^{k,c} - \gamma \nabla \psi \left ({\hat {\boldsymbol {P}}^{k,c}, \hat {\boldsymbol {P}}^{s}}\right) \tag{18}\end{equation*} wk,cwk,cγψ(P^k,c,P^s)(18)

其中 P ^ k , c = F ( X o ∣ w k , c ) \hat {\boldsymbol {P}}^{k,c} = F(\boldsymbol X^{o} | \boldsymbol w^{k,c}) P^k,c=F(Xowk,c) .中央服务器的分类器模型也进行了 P ^ s \hat {\boldsymbol P}^{s} P^s 训练,并将用于评估。

SSFL 的整体训练过程如图所示 Algorithm 1

在这里插入图片描述

算法 1 Pipeline of the 建议方案 on K K K 个客户端 T T T 轮次

用投票的方式聚合客户端的提交

实验结果

在本节中,我们将介绍并讨论我们的实验结果。特别是,这些实验将回答三个研究问题。

  1. 问题 1:SSFL 能否实现比现有方法更高的检测精度?( Section V-D )。
  2. 问题 2:SSFL 能否实现更快的训练过程和更低的通信开销?( Section V-E )。
  3. 问题 3:SSFL 的每个组件在提高性能方面的效果如何?( Section V-F )。

A. 数据集的描述

N-BaIoT 数据集是一个公共数据集,它有 9 个子数据集,从 9 个物联网设备(例如门铃和摄像头) [39] 收集。其中,7 个物联网设备具有 11 类流量:1 类良性流量和 10 类攻击流量。另外两个设备有六类流量:一类良性流量和五类攻击流量。每个流量数据包共有 115 个特征,这些特征是从最近的五个不同时间窗口中提取的:100 毫秒、500 毫秒、1.5 秒、10 秒和 1 分钟。这些特征可以快速计算,满足恶意流量数据包的实时检测需求。N-BaIoT 数据集具有全面的流量类别和大量的流量记录,因此在入侵检测领域作为基线数据集被广泛使用。

B. 数据预处理

我们分三个步骤对数据进行预处理,即数据集分区、归一化和二维化。

1)数据分区:

在现实世界中,通常有大量具有非 IID 数据的客户端参与 FL 训练。因此,我们将原始数据集划分为满足此部署情况。

使用原始数据集进行训练和分析需要昂贵的资源和基础设施,因此我们首先设计了一个新的数据集 mini-N-BaIoT,该数据集由来自 9 个物联网设备的 11 类流量组成。具体来说,我们将原始数据集中九个物联网设备的子数据集视为 D d 1 , D d 2 , … , D d 9 D_{d_{1}}, D_{d_{2}},\ldots, D_{d_{9}} Dd1,Dd2,,Dd9 D d i D_{d_{i}} Ddi 根据流量类别划分为 L d i L_{d_{i}} Ldi 子集,这意味着每个子集 D d i , l D_{d_i,l} Ddi,l 仅包含类别为 l l l 的流量数据。我们在每个子集中 D d i , l D_{d_i,l} Ddi,l 选择 1000 条交通数据记录 D d i , l m i n i D^{\mathrm{ mini}}_{d_{i},l} Ddi,lmini 作为 mini-N-BaIoT 数据集。

然后,我们的新数据集按照 70%、10%、20% 的比例分为私有数据集 D p D^p Dp 、开放数据集 D o D^o Do 和测试数据集 D t e s t D^{\mathrm{test}} Dtest。请注意,每个集合都与其他两个集合不相交,并且 D o D^o Do 不包含标签。

请注意,在以下三种实验场景中,所有 D p D^p Dp 的数据记录都是 D d i D_{d_{i}} Ddi 的一部分 , D p D^p Dp 被分发给 K d i K_{d_i} Kdi 客户端。

  1. 场景 1 D p D^p Dp 按其分类标签排序,并按大小 ∣ D p ∣ / ( 2 K d i ) | D^{p}| / (2K_{d_{i}}) Dp∣/(2Kdi) 划分为 2 × K d i 2 \times K_{d_{i}} 2×Kdi 分片,其中每个客户端分配两个分片。在此方案中, K d i K_{d_i} Kdi 设置为 3。该策略遵循先驱研究 [31] 。
  2. 场景 2:方案 2 中的分配策略与方案 1 类似,但 K d i K_{d_i} Kdi 等于 L d i L_{d_i} Ldi 。因此,如果 D d i D_{d_i} Ddi 包含 11 个类别的流量数据, K d i K_{d_i} Kdi 则为 11。如果 D d i D_{d_i} Ddi 包含六个类别的流量数据, Kdi 则为 6。
  3. 场景 3:在此场景中,我们使用狄利克雷分布 D i r ( α ) \boldsymbol {Dir}(\alpha) Dir(α) ,其中越小表示数据异质性越高 α 。我们在实验中设置 α=0.1 ,并且 K d i K_{d_i} Kdi 等于 L d i L_{d_i} Ldi

分区后,这些数据集的分布满足以下条件。

  1. 客户端 k k k 的私有数据集仅来自一台设备,这与现实世界一致。
  2. 不同客户端拥有的数据量和数据类别有很大不同。该分布是非 IID。
  3. 私有数据集 D p D^p Dp 、开放数据集 D o D^o Do 和测试数据集 D t e s t D^{\mathrm{test}} Dtest 的交集是空集。

Fig. 2 展示了三种场景的分布结果示例, 其中 x x x-轴表示客户端 ID, y y y-轴表示标签, 散点大小表示训练样本数。

在这里插入图片描述

Fig. 2. 图 2. 不同场景下分配给每个客户端的类样本示意图,其中 x x x-轴表示客户端 ID, y y y-轴表示标签,散点大小表示标记样本的数量。(a) 场景 1.(b) 场景 2.(c) 场景 3.

狄利克雷分布

狄利克雷分布 - 维基百科,自由的百科全书 (wikipedia.org)

2)归一化:

由于流量数据具有不同维度的特征,因此数据集中每个维度的级别差异很大。为了更有效地训练我们的模型,使用最小值-最大值归一化将特征值缩放为 0 到 1 之间的数字。

3)Dimensionalization:

每个样本 X i X_i Xi 有 115 个特征,根据时间窗口可分为五个部分。因此,我们将样本的矢量化特征分成五个部分,并将向量转移到一个矩阵中,该矩阵有 5 列和 23 行,用于将样本输入到下一个提出的 CNN 模型中。具体如下:

x i = [ x i , 0    x i , 23    x i , 46    x i , 69    x i , 92 x i , 1    x i , 24    x i , 47    x i , 70    x i , 93 x i , 2    x i , 25    x i , 48    x i , 71    x i , 94 ⋯    ⋯    ⋯    ⋯    ⋯ x i , 22    x i , 45    x i , 68    x i , 91    x i , 114 ] . \begin{align*} \boldsymbol x_{i} = \begin{bmatrix} x_{i,0} &~~ x_{i,23} &~~ x_{i,46} &~~ x_{i,69} &~~ x_{i,92}\\ x_{i,1} &~~ x_{i,24} &~~ x_{i,47} &~~ x_{i,70} &~~ x_{i,93}\\ x_{i,2} &~~ x_{i,25} &~~ x_{i,48} &~~ x_{i,71} &~~ x_{i,94}\\ \cdots &~~ \cdots &~~ \cdots &~~ \cdots &~~ \cdots \\ x_{i,22}&~~ x_{i,45} &~~ x_{i,68} &~~ x_{i,91} &~~ x_{i,114} \end{bmatrix}. \tag{19}\end{align*} xi= xi,0xi,1xi,2xi,22  xi,23  xi,24  xi,25    xi,45  xi,46  xi,47  xi,48    xi,68  xi,69  xi,70  xi,71    xi,91  xi,92  xi,93  xi,94    xi,114 .(19)

Dimensionalization ?

这段内容涉及到数据的维度化处理,主要是针对每个样本Xi包含115个特征,按照时间窗口的不同将其分为五个部分。然后将样本的向量化特征划分为五个部分,形成一个矩阵,该矩阵有五列和23行,用于输入到接下来提出的CNN模型中。具体而言,将向量xi表示为一个矩阵,其中包含了样本的不同时间窗口的特征。

对于这种处理方法,我认为是为了更好地利用样本中包含的时间序列信息,通过分阶段的方式来构建输入矩阵,以满足卷积神经网络(CNN)模型的输入需求。这样的维度化处理可能有助于模型更好地捕捉时间相关性,提高模型对数据的理解和预测能力。

“Dimensionalization” 是将数据从一个维度或形式转换为另一个维度或形式的过程。在上下文中,对数据进行"dimensionalization"是指将原始样本的特征向量重新组织为一个矩阵,以便更好地适应卷积神经网络(CNN)模型的输入结构。这样的处理可以有助于提高模型对数据中时间序列信息的理解和学习能力。在这里,“dimensionalization” 的目的是通过将特征按照时间窗口划分并构建矩阵,使得模型能够更有效地处理时间相关性。

C. 实验设置

为了全面评估该方法的性能并验证该方法的可扩展性,我们在三种不同的场景中进行了评估。三种场景下的数据分布均为非 IID,但数据拆分策略不同(见 Fig. 2 )。场景 2 和场景 3 都包含 89 个客户端,这意味着场景 2 和场景 3 中每个客户端的流量数据都小于场景 1(27 个客户端)。在场景 3 中,使用狄利克雷数据拆分策略 α = 0.1 \alpha = 0.1 α=0.1 ) 来分发私有数据集。为了使实验评估更加清晰,我们介绍实验环境、实现细节和评估指标如下。

狄利克雷数据拆分策略

【精选】划分非独立同分布(Non-IID)数据集_游星凌的博客-CSDN 博客

联邦学习数据集划分 Dirichlet 划分法——pytorch 实现_pytorch 拆分数据集_volcanical 的博客-CSDN 博客

1)实验环境:

所有评估均在 Python 3.7 中进行,使用 1.9.0 版的 PyTorch 框架,并在配备 Intel Core i9-11900K@3.50 GHz、64 GB RAM 和 NVIDIA GeForce RTX3090 GPU 的 PC 上运行。

2)实施细节:

在训练阶段,我们使用 Adam 优化器训练模型。每个通信轮次中的学习率、批处理大小和本地训练周期分别设置为 0.0001、100 和 5。对于所有客户端, θ 判断不熟悉样本的阈值未设置为固定值。对于特定客户端,此值设置为客户端预测概率的中位数。

3) 评价指标:

为了衡量我们方法的性能,我们计算了真阳性 ( T p T_p Tp)、真阴性 ( T n T_n Tn )、假阳性 ( F p F_p Fp ) 和假阴性 ( F n F_n Fn) 的数量。根据上述定义,召回率、精确度和 F 1 F_1 F1 可得到

R e c a l l = T p T p + F n P r e c i s i o n = T p T p + F p F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l . \begin{align*} {\mathrm{ Recall}}=&\frac {T_{p}}{T_{p}+F_{n}} \tag{20}\\ {\mathrm{ Precision}}=&\frac {T_{p}}{T_{p}+F_{p}} \tag{21}\\ F _{1}=&2 \cdot \frac {\rm Precision\cdot {\mathrm{ Recall}}}{\rm Precision+{\mathrm{ Recall}}}.\tag{22}\end{align*} Recall=Precision=F1=Tp+FnTpTp+FpTp2Precision+RecallPrecisionRecall.(20)(21)(22)

D. 用于入侵检测的 SSFL 的检测性能

在本实验中,我们通过测量准确度、 F 1 F_1 F1 得分和精密度来评估不同方法的检测性能。我们的 SSFL 与以下五种基线方法进行了比较。

三种联合训练方案(即 FL、FD 和 DS-FL)的详细说明可在 Section III 中找到。联邦学习是联邦学习中最常见的方案,它直接聚合不同客户端上传的模型参数。FD 由 Jeong 等人提出,作为一种基于蒸馏的 FL 方案,客户端共享每个类的对数而不是模型参数。DS-FL 由 Itahara 等人提出 [31] ,它利用交换的模型输出来标记未标记的开放数据。与 DS-FL 方案相比,该方法有两个关键区别:1)我们采用判别器来提高上传标签的质量;2)我们的硬标签策略和投票机制可以进一步降低通信开销。此外,引入 MLP 和 LSTM 来比较我们的 CNN 模型的检测性能,并使用我们的方案进行训练。为了确保公平的比较,我们在不同场景下对相同的数据集进行执行,并仔细遵循相同的评估协议。

Table II 说明了结果。我们可以观察到,SSFL 的表现优于其他基线,幅度相当大。在联邦训练方式中,FD 和 DS-FL 都无法达到较高的检测精度。具体而言,FD 在场景 1 和 3 中的检测准确率约为 50%,而场景 2 中的准确率仅为 22.12%。原因有二:1)当数据分布为非 IID 时(即客户端的本地数据不能代表种群分布),FD 的蒸馏训练难以实现,因此一个客户端使用其本地流量数据进行训练,获得的精度最高;2)在场景 2 中,每个客户端的流量类别较少, 这会导致准确性降低。由于 FD 的最佳检测性能是由单个客户端获得的,因此可以认为 FD 方法在非 IID 数据分发的情况下是无效的。在场景 1 和场景 2 中,DS-FL 的准确率高于 FD,表明引入未标记的开放数据提高了基于蒸馏的 FL 在非 IID 数据分布下的可用性。然而,场景 3 中数据分布更加不均匀,使得 DS-FL 无法对开放数据进行正确预测,导致检测性能较差。联邦学习方案作为一种传统的联邦训练方案,取得了良好的检测性能,但通信开销巨大的问题也不容忽视,后面将对此进行讨论。联邦学习方案还存在梯度泄漏的风险,即攻击者可以通过客户端上传的模型参数来恢复原始数据,这意味着联邦学习方案不是很安全 [29] 。 我们的方法从每个客户端上传硬标签而不是梯度或参数,这使得从上传的梯度中恢复用户数据的攻击方法不可行。我们的方案实现了更有效的联合训练,原因如下:1)与 DS-FL 类似,我们也利用开放数据来更好地适应非 IID 数据分发的情况;2)每个客户端的判别器可以显著提高预测标签的质量;3)中心服务器的投票机制可以有效地聚合来自不同客户端的训练结果。我们还可以发现,LSTM 模型和 MLP 模型的检测性能都低于我们的 CNN 模型。此外,场景 3 的联合训练任务最具挑战性,这也导致 SSFL 的准确率低于其他两个场景。

​​

表二 与其他方法的指标比较

为了进一步评估 SSFL 的分类性能,我们在测试数据集上分析了 SSFL 在三种场景下的混淆矩阵。如图所示 Fig. 3 ,SSFL 可以有效地对不同的流量类别进行分类,三种场景下良性流量的检测准确率均达到 99% 以上。G_TCP 和 G_UDP 是两类容易混淆的攻击流量。我们推测这主要是因为它们都是 DoS 攻击,并且具有非常相似的特征。由此可见,该方案具有优异的检测性能,适用于物联网网络中的联合训练和入侵检测。

​​​​

图 3. 测试数据集上 SSFL 的混淆矩阵。(a) 场景 1.(b) 场景 2.(c) 场景 3.

E. 所提出的 SSFL 方法的通信效率

Tables III 并通过 IV 显示我们的模型与基线的结果来回答 RQ2。总体而言,SSFL 实现了更快的训练过程和更低的通信开销。

​​

表三 TOP-1 测试精度与其他方法在不同通信轮次下的比较

​​

表四 通信开销与 Top-Acc 的比较

在学习效率方面,我们可以观察到 Table III ,SSFL 的学习速度最快,性能优异,优于其他基线。具体而言,SSFL 在前 10 个 epoch 内实现了高精度,并在 150 个 epoch 左右实现了收敛。我们的多重机制共同获取联邦训练的高质量全球标签,这无疑是实现快速收敛和高性能的关键。联邦学习方案的 Top-1 精度为 200 个 epochs,与最高精度相差甚远,这反映出直接平均参数进行联邦训练的速度较慢。此外,FD 和 DS-FL 很快达到检测性能的上限,无法通过通信进一步提高性能。MLP 和 LSTM 模型的收敛速度比 CNN 模型慢。由于我们的方法不受模型参数大小的影响,因此后续的通信开销实验没有在 MLP 和 LSTM 模型上实现。

Table IV 列出了每种方法的通信开销。请注意,在 FL 和 FD 中,无需将开放数据集分发到每个客户端。从这个表中,我们注意到我们提出的方法具有通信效率,并且我们的方法上传的数据量非常小。由于联邦学习方法在每一轮中都传达了模型参数,因此较大的模型尺寸会导致巨大的通信开销。其他三种基于蒸馏的方法的通信开销仅取决于模型的输出维度,不会根据模型大小进行扩展,因此这些方案可以实现较低的通信成本。此外,在我们提出的方法中,客户端上传了本地预测的硬标签,因此通信开销远低于客户端需要上传本地预测向量的 DS-FL。遗憾的是,由于缺乏处理非 IID 私有流量数据的有效机制,DS-FL 和 FD 方法都未能达到令人满意的检测性能。由 Table IV 此可以得出结论,SSFL 由于其较高的分类精度和通信效率,具有最佳的综合性能。

F. 消融实验

ablation study(消融研究、消融学习、消融实验)_消融研究和-CSDN 博客

为了进一步研究 SSFL 的每个组成部分为性能带来的益处水平,我们对 SSFL 进行了三阶段消融研究。在第一阶段,我们对不同的关键部件进行烧蚀,并分析检测精度。在第二阶段,我们进一步评估不同置信度阈值的影响。在第三阶段,我们分析了不同标记策略对检测性能和通信开销的影响。

Fig. 4 所示,我们首先从我们的方法中剔除判别、投票和判别和投票。请注意,判别对应于我们方法的第三到第五步(请参阅中 Section IV 的描述)。在没有区分的情况下,客户 k k k 对所有未标记的样本进行预测,包括熟悉和不熟悉的样本。此外,我们评估了使用简单滤波而不是判别器的检测性能。在简单的筛选中,开放样本 x j o x^o_j xjo 是否熟悉不仅取决于其置信度分数 c j k , o c^{k,o}_j cjk,o 是否小于阈值 θ s \theta_s θs (即,也没有判别器),并且每个客户端 θ s \theta_s θs 的阈值等于其预测标签的置信度分数中位数。如果 c j k , o < θ s c^{k,o}_j < \theta_s cjk,o<θs ,则 p ^ j k \hat{p}^k_j p^jk x j o x^o_j xjo 预测将设置为 −1。可以看出,在这三种情况下,去除鉴别都会导致性能显著下降,这说明了鉴别器对于提高每个客户端预测标签的质量的必要性。显然,鉴别器的使用对检测性能的影响最大。对投票机制的消融研究表明,当客户端做出太多错误预测时,投票机制会使模型性能变差。换句话说,投票机制是投票多数,因此需要与鉴别器结合使用,以提高客户端预测标签的质量。而且,滤波方法本身并不能有效处理非 IID 私有数据带来的问题。在场景 3 中,极度不均匀的数据分布使得简单的过滤完全无效。 因此,可以得出结论,歧视和投票在相当大的程度上都有助于 SSFL。

​​

图 4. 我们的 SSFL 测试准确率曲线,包括我们的模型无投票(w/o voting),我们的模型无区分(w/o discriminating),我们的模型无区分和投票(w/o discriminating and voting),以及简单过滤方法。 (a) 情景 1。 (b) 情景 2。 © 情景 3。

θ c \theta_c θc 是我们方法的一个关键超参数。如 (12)(14) 所示,如果 c j k , o < θ c c^{k,o}_{j} < \theta _{c} cjk,o<θc,样本 x j o x^o_j xjo 将被重新分级为客户端 k k k “不熟悉”,并将用于训练判别器。因此,该 θ c \theta_c θc 值可以对我们方法的性能产生一定的影响。在本节中,我们将值设置为 0.9、0.8、0.7 和中值。更具体地说,我们考虑置信度分数的集合,$C^{k} = {c^{k,o}_{j} |, j=1,2,\ldots, N^{o}} $ 上面提到的中位数是该集合的中位数。如图所示 Fig. 5 ,当我们为参与我们方法的所有客户设置固定的 θ c \theta_c θc 值时,性能较设置 θ c \theta_c θc C k C^k Ck 的中值时更差。此外,比较三种情况的结果,我们可以观察到,如果客户具有较少的本地标记数据和较少的流量类别,则使用中值作为置信度阈值具有更大的性能优势。

​​

图 5. 置信阈值的影响 θ c \theta_c θc。a) 场景 1.(b) 场景 2.(c) 场景 3.

我们还研究了标记策略对检测性能和通信开销的影响。我们采用硬标签策略的动机不是为了提高检测性能,而是为了减少联邦训练期间产生的通信开销。样本的软标签是一个概率向量,其中每个数字都是双精度类型的浮点数。在客户端上传此向量之前,可以将此向量中的每个双精度数向下舍入到某个小数位,以减小软标签的内存大小。如 Fig. 6 所示,四舍五入到小数点后 8、6、4 或 2 位可以达到几乎相同的精度,但通信开销却大不相同。结果表明,保留的小数位数越少,通信开销越低。因此,上传硬标签可以大大降低通信开销,同时实现高检测性能。

​​

图 6. 测试不同标签策略的准确率曲线和通信开销曲线。“软标签 w. xf ”表示客户端将软标签上传到服务器,软标签中的每个浮点数都向下舍入到“ x ”小数位。(a) 场景 1.(b) 场景 2.(c) 场景 3.

消融实验

为了提升 baseline 的性能,给它加了两个模块 A,B 为了验证 A、B 两个模块是不是真的都有用,你需要做 ablation study。
实验 1:在 baseline 的基础上加上模块 A,看效果。 实验 2:在 baseline 的基础上加上模块 B,看效果。
实验 3:在 baseline 的基础上同时加上模块 AB,看效果。 然后结果可能是,实验 1 和实验 2 的结果都不如实验 3,那么说明 AB 都是有用的;
然而也有可能你会发现实验 1 的结果和实验 3 一样,甚至更好。这就说明你的想法是有问题的,模块 B 其实并没有起到作用,提升只来自于模块 A。

相当于遵守奥卡姆剃刀原则,如无必要,勿增实体即简单有效原理。切勿浪费较多东西去做,用较少的东西,同样可以做好的事情。
简单和复杂的方法都能达到同样的效果,选择简单的方法。

w/o

“w/o” 是“without”的缩写,意思是“没有”或“不使用”。在给定的上下文中,例如“模型无投票(w/o voting)”表示在该场景下没有使用投票机制。同样,“模型无区分(w/o discriminating)”表示在那个情况下没有进行区分或判别。这种缩写通常用于简化表达,表示某种条件或元素在特定情境下是不存在或未被采用的。

在上下文中,“模型无投票”(w/o voting)指的是在评估模型性能时,不考虑投票机制的情况。通常,在某些场景下,模型可能会使用投票机制,即多个模型或者多次运行模型的结果进行综合,以提高准确性。

“模型无区分”(w/o discriminating)表示在模型训练或评估中,不考虑对不同类别或特征进行区分的情况。这可能涉及到模型不区分不同类别,或者在某些任务中不考虑特定的特征。

“模型无区分和投票”(w/o discriminating and voting)结合了上述两个概念,即在评估时既不考虑模型对不同类别的区分,也不使用投票机制。

这些实验场景可能是为了研究模型在特定条件下的性能表现,并理解模型在不同设置下的行为。

其他一些论文中常见英文缩写含义

w/ 和 w/o:
一般用在消融实验的图表中,进行对照。

w/: with
w/o : without

w.r.t. 和 i.e.:
w.r.t. : with respect to 的缩写。是 关于;谈及,谈到的意思。
i.e. :也就是,亦即(源自拉丁文id est),换而言之。

etc.:
etc. : et cetera的缩写,意思是“等等”,用于列举事物。

s.t.:
s.t.: subject to的缩写,意思是“受…约束”。

e.g.:
e.g.是拉丁语exempli gratia的缩写,如果直译,它的语义是:

for the sake of example(为了举例)。

Vanilla:
Vanilla原义香草,香草味就是老美的原味,所以vanilla这个单词引申含义就有“普通的、原始的”的意思。

cf.:
cf. 是一个拉丁语衍生的(也是现代英语)词汇confer的简写,表示“比较”或“查阅”的意思。

总结

在本文中,我们提出了一种基于知识蒸馏的半监督联邦学习方案用于入侵检测,这是流量分类领域中第一个基于蒸馏的联邦学习方法。我们的核心思想是利用未标记的开放数据来增强分类器的性能。然后,构建基于 CNN 的流量数据包深度特征提取模型,并将该模型作为分类器网络和判别器网络。使用判别器来提高每个客户端预测标签的质量,避免了私有非 IID 数据下大量错误预测导致的蒸馏训练失败。此外,我们还通过硬标签策略和投票机制进一步降低了沟通开销。为了模拟物联网网络中的真实部署环境(即设备数量众多且流量数据分布不均匀),我们设置了三个具有挑战性的场景来评估我们的方法。实验结果表明,与其他方案相比,SSFL 可以实现更好的检测性能和更低的通信开销。我们的方法满足了物联网网络中联合训练和检测入侵所需的安全性、准确性和效率。在以后的工作中,我们会制定策略对客户端的贡献进行评分,这样可以更好地解决恶意客户端影响联邦训练的情况。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用! 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时私信沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 基于联邦学习和NSL-KDD数据集的网络入侵检测python源码+运行说明+数据集(带GUI界面).zip 将联邦学习以及知识蒸馏用于搭建网络入侵检测检测模型,在NSL-KDD数据集上进行了验证。 # 运行方式 首先运行main_server.py文件,然后开x(默认是2)个窗口分别运行main_client1.py以及main_client2.py文件。 # GUI界面 首先点击连接,与服务器建立连接。 默认token为1,输入1后点击上传,即可开始训练。 基于联邦学习和NSL-KDD数据集的网络入侵检测python源码+运行说明+数据集(带GUI界面).zip基于联邦学习和NSL-KDD数据集的网络入侵检测python源码+运行说明+数据集(带GUI界面).zip基于联邦学习和NSL-KDD数据集的网络入侵检测python源码+运行说明+数据集(带GUI界面).zip 基于联邦学习和NSL-KDD数据集的网络入侵检测python源码+运行说明+数据集(带GUI界面).zip

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值