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

4258                                                       软件学报  2025  年第  36  卷第  9  期


                 IID  和  non-IID  设置, 而攻击者主要是在本地训练过程中实施恶意攻击行为, 这就使得攻击者与良性参与者之间在
                 模型更新的特征、参数调整的方向和幅度上产生显著差异. 因此, 在不清楚参与者是否为攻击者的情况下, 利用贡
                 献度指标并构建离散更新空间来降低攻击影响是可行的. 此外, 由于我们规避了客户端直接上传整个局部模型执
                 行  FL  任务, 且通信代价主要来自客户端上传本地排名到边缘服务器端以及边缘服务器上传全局排名到云服务器
                 端, 而排名向量远小于全局模型, 显然, 这很大程度上降低了计算代价和通信开销, 理论上来讲, 这将显著提高
                 FedDiscrete 的高效性. 最后, 我们给出了    FedDiscrete 防御策略, 如算法  2  所示.

                 算法  2. FedDiscrete 防御策略.

                                                                                     ,
                 输入:  ,        k, 参与者的贡献度     λ, 局部模型及权重参数       W/w, 本地训练代数    epoch R;
                     D b, 稀疏度
                 输出:  S  r+1 .
                       G
                 //系统初始化
                 1. 创建  CEFL  环境: 定义云服务器,   E  个边缘服务器, 确定客户端属性, 给所有客户端划分训练数据集及分布情况、
                               0
                 初始化全局模型      G ;
                                            s
                          0          0       0
                 2. 初始化  G  的随机权重   w  和分数  ;
                                                       0
                       0
                                           1
                 3. 排序  s  并求解初始全局排名:    S ← ARGSORT(s );
                                           G
                 4. for  r ∈ [0,R−1] do
                 //客户端: 创建离散更新空间
                 5.  从   N  个客户端中随机选择    K  个参与者并确定攻击者数量:        M ← max(N ·b, 1);
                                                                   0
                          0
                 6.  分发  G  给所有参与者和边缘服务器:        W  0  ← W  (i∈[1,E],0)  ← G ;
                                                   i∈[1,K]  Edge
                 7.  for  c i∈[1,K]  in parallel do
                                                                    r
                                                                      r
                           r
                                                                                  r
                 8.   基于  S  和   (算法  1) 求解客户端本地模型连接边的分数:          s [S ] ← SORT(λ i × s );
                              λ i
                           g                                          g
                 9.   采用  EP  算法搜索本地子网络:       ¯ W i ← EP(D i ,W i , s,k,epoch);
                 10.   if  c i ∈ A then //恶意攻击者
                 11.    利用   LFA  生成投毒数据    D ;
                                             p
                                             i
                              p                             r      r    r
                 12.    基于   D  和   ¯ W i  执行本地训练, 生成投毒模型   ˆ W  并获得   s  和  S ;
                              i                             i           i
                 13.   else //良性参与者
                                                            r      r   r
                 14.    基于   D i  和   ¯ W i  执行本地训练, 生成本地模型   ¯ W  并获得   s  和  S ;
                                                            i          i
                                                                        r
                                                                           r
                                                     r
                 15.   对于每个客户端, 创建离散更新空间:           S ← ARGSORT( ¯ W i or ˆ W i , s ,S );
                                                     i                     i
                 16.  end for
                 //边缘服务器: 多数投票聚合机制
                 17.  for  i ∈ [1,E] do
                 18.     S  r  = VOTE(S  r  );
                         g,i      i∈[1,m]
                 19.  end for
                 //云服务器: 多数投票聚合机制
                 20.   S  r+1  = VOTE(S  r  );
                      G         g,i∈[1,E]
                 21. end for
                 22. return  S  r+1
                          G

                 3.4   讨 论
                    在我们的工作中, 提出了一种防御算法             FedDiscrete, 以缓解对  CEFL  系统的投毒攻击. 注意, 模型更新空间是
                 否连续对防御策略的性能有着直接的影响, 通常, 连续更新空间使得客户端拥有更多选择和学习本地更新的可能,
   342   343   344   345   346   347   348   349   350   351   352