Page 37 - 《软件学报》2026年第4期
P. 37

1478                                                       软件学报  2026  年第  37  卷第  4  期


                 均匀交叉等.
                    5) 变异操作   (mutation): 以低概率随机修改个体基因      (如翻转二进制位或扰动实数值), 防止种群陷入局部最优.
                    6) 替换策略   (replacement): 确定新种群的构成方式, 分为代际替换         (完全由子代取代父代) 和稳态替换           (保留
                 部分父代个体).
                    7) 终止条件    (termination): 算法停止的判定标准, 如达到最大迭代次数            T  或当前最优解    a  满足阈值判断
                                                                                            ∗
                    ∗
                 F(a ) ⩾ θ.
                    基于上述相关概念, 算法        1  给出了遗传算法的总体伪代码.
                 算法  1. 遗传算法.


                                                  F
                 输入: 进化代数    T , 种群大小   n, 适应度函数  , 交叉概率  , 变异概率      p m ;
                                                            p c
                              ∗
                 输出: 最优个体    a .
                 1. 随机初始化第    0  代种群  P 0 = {a 1 ,a 2 ,...,a n };
                 2. 初始化迭代次数    t = 0;
                 3. While  t ⩽ T  do
                 4.   P = P t ;
                 5.  For each  a ∈ P do
                 6.   计算  F(a);
                 7.  End For
                 8.  通过选择操作根据适应度值选取成对的父代个体;
                                       p c  执行交叉操作, 生成子代集合  ;
                                                               C
                 9.  对每对父代个体以概率
                 10.   对每个子代  c ∈ C 以概率   p m  执行变异操作;
                 11.    t = t +1;
                 12.    P t ← 根据替换策略, 合并父代和子代生成新种群, 并根据适应度大小排序选出前                  n 个策略;
                 13. End While;
                 14.  a = argmaxF (a).
                    ∗
                        a∈P t
                  2.2   攻击策略和攻击策略空间
                    攻击策略: 攻击策略定义为对干净样本执行对抗攻击的方法和此方法下的一组具体参数, 不同的攻击方法其
                                                                              (  1  2  m  )
                 参数个数和参数取值范围各不相同. 对于含有              m 个参数的对抗攻击方法, 记        a = a ,a ,...,a   构成的  m 元组为该攻
                 击方法对应的攻击策略. 特别地, 以经典的            PGD  攻击为例, 其在数学上的表述如下:

                                            ∏
                                       x t+1 =  x t +α·sign(∇ x t L( f(x t +δ,w),y)),  t = 0,...,I −1  (6)
                                            x+Ω
                 其中,  x t+1  是第   步添加扰动截断后的样本,   为最大步数,      α 为步长,  Ω = {δ|∥δ∥ p ⩽ ε} 为扰动范围,   ∏  表示投影操作,
                            t
                                                  I
                 在每一步迭代时对超出范围的扰动值进行截断使其不超过                     ε, 当达到最大步数时, 得到最终的对抗样本             x adv = x I .
                 从公式   (6) 中可以看出, PGD   攻击有   3  个参数: 扰动强度   ε、扰动步长     α、扰动步数  , 由这    3  个参数构成的三元
                                                                                  I
                   (ε,α,I) 称为一个攻击策略, 不同的参数值组合代表不同的攻击策略, 利用不同的攻击策略对干净样本进行扰动
                 组
                 会产生不同的对抗样本.
                                                                                     A = {a 1 ,a 2 ,...} 表示. 一般
                    攻击策略空间: 策略空间指在确定一种攻击方法后, 所有可能的攻击策略的集合, 用
                 地, 对于含有   m 个参数的对抗攻击方法, 每个参数的可用选择构成一个集合                   S a m , 可以记  A = S a 1×S a 2×...×S a m , 是这
                 m  个集合的笛卡尔积. 以      PGD  攻击为例, 假设扰动强度        ε    的区间为  S ε = [2/255, 16/255], 扰动步长  α  的区间为
                                        I
                 S α = [1/255, 4/255], 扰动步数   的区间为  S I = [4, 20] (在实际运行时步数作取整操作), 那么   A = S ε ×S α ×S I  就构成
                 了  PGD  的攻击策略空间.
   32   33   34   35   36   37   38   39   40   41   42