Page 346 - 《软件学报》2025年第9期
P. 346

赵亚茹 等: 云边联邦学习系统下抗投毒攻击的防御方法                                                      4257


                                        r
                                                                                     r
                 全局排名   S  r   到客户端, 基于  S , 排序每个客户端本地模型中每一层连接边的分数. 假设              S = [2,3,0,5,1,4], 客户端
                         g              g                                            g
                                         r                                                         e 4  有最
                 c i  的本地模型连接边的分数为      s = [0.5,0.2,0.3,0.4,0.7,1.2], 这就意味着边  e 2  应该有最低的分数  s 2 = 0.2, 边
                                                                 r                                 r  r
                 高的分数    s 4 = 1.2, 因此, 对于客户端  , 更新后边的分数为       s = [0.4,0.7,0.2,0.3,1.2,0.5], 该过程表达为  s [S ] ←
                                              c i
                                                                                                     g
                       r                   s  不是子网络模型更新后的边的分数向量, 而是在此基础上, 利用第                      节所求
                                           r
                 SORT(s ). 值得强调的是, 此时的                                                          3.1
                 解的参与者的贡献度       (作为加权系数) 执行加权操作后获得的, 即            s ← λ i × s . 其次, 在  EP  算法中, 每个客户端  c i  基
                                                                           r
                                                                    r
                                                                         k
                 于本地数据集     D i  执行本地训练, 在前向传播过程中, 选择分数较高的前   个边, 其中,              k 表示初始网络中的边保留
                 在最终在子网络中的边的总数的比例并设置                 k = 50%, 在反向传播过程中实现分数的更新, 迭代循环直至达到
                                                                        ¯ W i ← EP(D i ,W i , s,k,epoch). 注意, 随着  EP
                 epoch 上界. 此时, 获得本地子网络模型         ¯ W i  并作为该轮的全局模型, 即
                 算法不断迭代, 边的分数也在不断更新, 本地排名是基于最终的更新分数实现. 同时, 对于每个客户端, 依赖于本地
                                          r          r                     S = [4,0,2,3,5,1], 则我们选择分数最
                                                                            r
                 子网络模型能够获得边的分数           s  和本地排名   S . 例如, 客户端   c 1  的排名是   1
                                                     i
                 高的前   50%  个边, 即  c 1  使用边{3, 5, 1}构成子网络模型. 注意, 在整个训练过程中, 只更新边的分数, 而不更新模型
                                                                                             r
                 参数. 紧接着, 依赖于    K 个客户端的本地排名, 即      S  r  , 创建离散更新空间. 因此, 该过程可以表示为         S ← ARGSORT
                                                      i∈[1,K]                                i
                     r  r                r             r  r
                 ( ¯ W i , s ,S )(良性参与者) 或者  S ← ARGSORT( ˆ W i , s ,S )(恶意攻击者).
                                         i
                                                          i
                        i
                    接下来, 客户端上传本地排名构建的离散更新空间到边缘服务器端. 对于每个边缘服务器, 基于接收到的客户
                 端本地排名执行多数投票聚合机制, 这里采用投票函数                  VOTE  实现. 具体地, 对于一个客户端       c i , 本地排名的索引
                               r                                    r                            e 4  在索引
                 值   j 表示对应边   S [j] 的信誉度值. 比如, 客户端   c 1  的本地排名为  S = [4,0,2,3,5,1], 则我们视为  c 1  的边
                               i
                                                                    1
                 j = 0 处具有最低的信誉度     (分数), 相反, 边   e 1  在  j = 5 处具有最高的信誉度. 因此, VOTE  函数将分配信誉度     0 给  e 4 ,
                 1  给  e 0 , 2  给  e 2  及  5  给  e 1  等. 换句话说, 对应边的分数越低, 其信誉度值也越低. 简言之, 基于每个边缘服务器聚合
                 的   m 个客户端的本地排名     S  r  , VOTE  函数将计算所有边的信誉度并通过赋值           S  r   向量中对应边的索引实现.
                                      i∈[1,m]                                   i∈[1,m]
                 类似地  ,                                                               m 个客户端本地排名中
                       c 2 c 3  等, 直至所有客户端中对应边的信誉度统计完成. 然后, 累计计算并求和所有
                 对应边的信誉度, 最终返回第          1  个边缘服务器求解的所有边          e i∈[0,5]  的总信誉度构成的向量, 记为    H 1 , 即  H 1 =
                                   r                                                 r    r
                 SUM(SUM(ARGSORT(S ))). 最后, 边缘服务器通过排序最终信誉度值来计算全局排名                  S , 即  S = ARGSORT(H 1 ).
                                   i                                                 g    g
                                  r
                 该过程形象化表达为       S = VOTE(S  r  ). 类似地, 直至所有  E  个边缘服务器统计完成.
                                  g        i∈[1,m]
                    最后, 边缘服务器上传       E  个全局排名   S  r   构建的离散空间到云服务器. 在云端, 基于全局排名同样执行多
                                                  g,i∈[1,E]
                                                S  r+1             S  r+1  = VOTE(S  r        r +1 轮, 客户
                 数投票聚合机制以获得最终的全局排名               G  , 该过程可以表示为      G         g,i∈[1,E]  ). 迭代地, 在第
                                             S  r+1  来更新本地排名, 直至达到最大迭代轮或满足终止条件.
                 端执行本地模型训练, 并基于求解的            G
                    在本文中, 创建离散空间及服务器端执行聚合的整个过程均是逐层实现的, 且良性参与者和恶意参与者均是
                 基于各自本地模型独立完成离散空间的构建, 因此, 在边缘聚合操作之前需要先融合所有客户端求解的本地排名
                 构成的离散空间. 不同于以往利用迭代更新的权重参数, 我们是基于网络模型连接边的分数创建离散更新空间, 以
                 这种方式, 我们可以减少攻击者可选择的模型更新空间.

                 3.3   攻击者识别
                    FedDiscrete 防御可以以一种简单的方式提高          CEFL  系统的安全性: 通过设置阈值        q 1  来约束参与者的贡献大
                 小, 具体来说, 我们通过评估每个参与者在所有训练轮次中的贡献度, 动态调整其本地模型更新的权重, 以降低潜
                 在攻击者对模型性能带来的影响, 同时保留了对全局模型有益的差异性更新. 而且, 我们采用与攻击行为紧密相关
                 的最后一层权重参数实现贡献度的计算. 这种方式不仅能有效地减轻投毒攻击的影响, 还能够促进联邦模型在
                 non-IID  数据设置下的稳健训练; 在此基础上, 在所有参与者上传本地排名构建的离散更新空间之前, 我们使用每
                 个参与者的实际贡献大小来约束其模型连接边的分数, 以缓解其在下一轮模型训练过程中对全局模型的恶意影
                 响, 通过不断地迭代训练来削弱攻击者的贡献, 进而提高模型的鲁棒性以及客户端之间的公平性. 值得强调的是,
                 FedDiscrete 防御的主要目标是集中于缓解攻击者造成的投毒影响, 而不是检测出攻击者.
                    更具体地说, 对于每个攻击者, 其通过对含有预先设置的源标签的样本执行                        LFA  恶意操作, 以输出攻击者期
                 望的目标标签, 实现目标投毒攻击的目的. 在我们的模型测试中, 所有参与者均是按照相同的数据划分方法, 包括
   341   342   343   344   345   346   347   348   349   350   351