论文那些事—Meta Gradient Adversarial Attack

Meta Gradient Adversarial Attack(ICCV2021,MGAA)

 

1、摘要

受元学习思想的启发,本文提出了一种新的体系结构元梯度对抗攻击(Meta Gradient Adversarial Attack, MGAA)是一种即插即用的攻击方法,可以与现有的任何一种基于梯度的攻击方法集成,以提高跨模型的可移动性。具体来说,从一个模型集合中随机抽样多个模型来组成不同的任务,并在每个任务中分别模拟白盒攻击(选取多个模型)和一个黑盒攻击(只有一个模型)。通过缩小白盒攻击和黑盒攻击的梯度方向之间的差距,可以提高对抗样本对黑盒设置的转移能力。

主要贡献有三点:

  1. 提出一种新的对抗样本生成方法。
  2. 可以与任何现有的基于梯度的攻击方法相结合。
  3. 显著提高对抗样本的迁移性。

元学习希望使得模型获取一种学会学习调参的能力,使其可以在获取已有知识的基础上快速学习新的任务。机器学习是先人为调参,之后直接训练特定任务下深度模型。元学习则是先通过其它的任务训练出一个较好的超参数,然后再对特定任务进行训练。

元学习分为两个阶段,阶段一是训练任务训练(元训练);阶段二为测试任务训练(元测试)。对应于一些论文的算法流程图,训练任务是在outer loop里,测试任务任务是在inner loop里。

2、MGAA原理

 讲一下大致流程,首先有一堆Model Zoo,设置外层循环迭代次数为T,每一次迭代都是一次元学习。取其中一个迭代细化,在Model Zoo里随机取6个模型,将其中5个定义为训练模型,1个为测试模型,在每一次外层循环都随机取6个模型。蓝色区域就是进行K次迭代生成对抗样本,最后将生成的对抗样本放入测试模型再得到一个对抗样本,然后用测试模型生成的对抗样本减去训练模型中最后一次生成的对抗样本得到扰动,添加到最初输入的图片中,也就是最下面那个公式。(本实验中参数的选取是经过实验的结果)

Meta-train(对应蓝色区域):

首先从N个模型中随机采样n+1个模型,然后计算n个模型的交叉熵损失:

 与基于梯度的攻击的常用方法相同,对抗性样本沿损失函数最大化的方向更新:

 元训练步骤可以迭代K次,下标 j 表示元训练步骤中的迭代次数。

Meta-test(对应绿色区域):

在使用多个模型的集合来模拟白盒攻击之后,我们使用最后采样的模型 Mkn+1 在生成的对抗例xi,k的基础上模拟黑盒攻击。

首先用模型Mkn+1计算交叉熵损失:

 然后得到对抗样本:

 为了提高迁移性,将元测试步骤中获得的扰动添加到上一次迭代中生成的对抗性样本中,以更新对抗样本:

值得一提的是,n+1个模型不是真实测试场景中的黑盒模型。实际上,它只是一个模拟黑盒模型,通过迭代模拟白盒和黑盒攻击。

最终的算法流程图如下:

3、实验结果

4、总结 

一篇很好的文章,当你理解了元学习后,理解这篇文章就不难了,很有启发性,关于迁移性能的提升,现有的基于梯度的方法在白盒攻击时只关注梯度的更新,无法获取黑盒攻击的任何信息。相比之下,本文提出的架构迭代地模拟白盒攻击和黑盒攻击,并在每次迭代中约束这两种攻击的梯度方向相似。在迭代过程中,对模型集中的不同模型组合进行采样,以组成不同的任务,这有助于对抗样本在生成各种模型分布时访问它们。多次迭代后获得的对抗样本可能不是特定任务的最优样本,即偏向于任何现有的白盒模型,换句话说对白盒模型是“一视同仁”,但对于任何看不见的黑盒模型,它通常包含更好的迁移性。这解释了本文方法可以提高白盒和黑盒攻击的成功率。

### 关于策略梯度的学术论文 策略梯度方法是强化学习领域的重要组成部分之一,旨在优化参数化策略函数以最大化长期奖励。这类算法直接在策略空间中进行搜索,从而能够处理连续动作空间的问题[^3]。 #### 经典策略梯度论文推荐: 1. **Policy Gradient Methods for Reinforcement Learning with Function Approximation** 这篇由Sutton等人撰写的经典文章首次提出了基于梯度的方法来解决大规模强化学习问题,并引入了REINFORCE算法作为基础框架[^1]。 2. **Actor-Critic Algorithms** Konda和Tsitsiklis的工作探讨了一类结合价值估计与策略改进的技术——即演员评论家架构,在此结构下可以更高效地更新策略参数[^2]。 3. **Trust Region Policy Optimization (TRPO)** TRPO通过构建信任区域约束条件下的最优化问题,确保每次迭代都能稳定提升性能而不至于因大幅度调整而导致崩溃或发散现象发生[^4]。 4. **Proximal Policy Optimization Algorithms (PPO)** PPO进一步简化并提高了TRPO的实际应用效果,成为当前工业界广泛采用的标准做法之一。该研究不仅保持了原有理论上的优势特性,还增强了计算效率以及易于实现的特点。 ```python import gymnasium as gym import torch.nn.functional as F from stable_baselines3 import PPO env = gym.make('CartPole-v1') model = PPO("MlpPolicy", env, verbose=1) def train_policy_gradient(): model.learn(total_timesteps=int(1e5)) train_policy_gradient() ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值