十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

可切换对抗攻击SEAC:精准打击多智能体强化学习系统的脆弱点

可切换对抗攻击SEAC:精准打击多智能体强化学习系统的脆弱点 我在做多智能体强化学习安全方向调研的时候读到了SEAC这篇NIPS 2020论文当时心里那根弦被狠狠拨了一下。过去大家研究对抗攻击注意力基本都放在单智能体强化学习上又或者把所有智能体当成一个整体来打但SEAC直接把矛头指向一个现实问题在集中训练、分散执行的多智能体系统里到底攻击哪个智能体、怎么切换攻击目标才能让整支队伍的奖励断崖式下跌这篇文章的全称是Switchable Adversarial Attacks against Deep Multi-Agent Reinforcement Learning作者是Jieyu Lin、Korhan Kaya、Jiaqi Wu等出自MIT、华为诺亚方舟实验室等机构。它做的事情很聚焦——在星际争霸多智能体挑战环境SMAC这类场景下对深度多智能体强化学习模型发起对抗攻击并且不需要干扰所有智能体只需定点、甚至切换目标地攻击少量智能体的观测就能把全局性能拉下来。这篇内容我会从问题动机、方法拆解、实验观察、复现建议再到攻防思考一次性讲透。1. 多智能体强化学习对抗攻击从问题到动机1.1 CTDE模式的天然弱点攻击者为什么盯上观测空间理解SEAC之前得先理清多智能体强化学习的主流训练范式。目前大量工作都采用CTDE也就是Centralized Training with Decentralized Execution中文叫集中训练、分散执行。训练的佛台上一个中央Critic能拿到全局信息包括所有智能体的观测、动作、状态等然后用这个全局信息去指导各个智能体的Actor学习。这个设计非常巧妙因为在真实部署时通信带宽和观测范围都有物理限制智能体不可能每时每刻都拿到全局信息所以执行阶段每个智能体只依靠自己局部的观测来作决策。问题恰恰出在这里。集中训练的中央Critic学到的是一个高度依赖全局信息的价值函数分布式执行的策略在面对与训练分布不一致的输入时往往表现得非常脆弱。对抗攻击者盯上的正是这个薄弱点只要在某个智能体的观测上加上微小的扰动让它的局部观测偏离训练时的分布这个智能体就会做出糟糕的决策。更麻烦的是多智能体系统具有耦合性一个智能体的错误决策会改变环境状态连带影响其他智能体的决策基础让整个团队的协作链条被一根针挑断。CTDE这个看似高效的训练范式在安全视角下藏着一个结构性风险训练和部署的观测分布假设不一样。这个“分布偏移”的裂缝就是SEAC这类攻击能够钻进去的位置。1.2 已有攻击方法的不足DAA为什么需要改进在SEAC之前针对深度多智能体强化学习的对抗攻击研究已经有了一个代表工作叫作Dynamically Adversarial Attack简称DAA它主要针对QMIX这类基于CTDE的价值分解方法做投毒。DAA的思路是训练一个攻击者策略让它动态地给所有智能体的观测添加扰动最终目标是最小化受害智能体团队的累计奖励。DAA的问题在于太“蛮力”了。现实世界的攻击者往往有资源约束不可能对所有智能体同时投入攻击力一次攻击能覆盖的通信信道、能篡改的传感器节点通常是有限的。同时DAA这种全覆盖式的攻击方式扰动行为容易被异常检测系统立刻识别攻击暴露风险很高。用一个粗俗的比喻你去抢银行把门口所有人都放倒了动静太大警报肯定立刻响了。SEAC开出来的药方是——“少打”、“打对”、“会切换”。它不再追求攻击所有智能体而是把注意力放在一个更冷血的问题上如果只能攻击一两个智能体攻击谁用多大力度什么时候换目标才能最大化整支队伍的绩效损失这种从“广撒网”到“精确打击”的转变不仅是方法论上的改进更是对多智能体系统脆弱性结构的一次重新认知。2. SEAC的设计思路把攻击做成一门“精准手术”2.1 攻击者也是一个智能体攻击问题的马尔可夫建模SEAC一个很酷的建模方式是把攻击者本身也当成一个强化学习智能体来训练。这个思路跟DAA一脉相承但SEAC做得更彻底。攻击者的状态空间包含受害智能体的当前观测、历史观测以及攻击预算等上下文信息动作空间则分为两部分一是目标选择动作决定当前时间步攻击哪一个或哪几个智能体二是扰动生成参数决定加在目标观测上的对抗噪声长什么样。奖励函数的设计是整个攻击建模的灵魂。SEAC把攻击者的奖励定义为受害智能体团队的累计折扣奖励变化通俗地讲攻击者要的是受害团队的总分跌落得越多越好。同时为了避免攻击者频繁、无意义地切换目标导致攻击不稳定奖励函数还会加入一项目标切换惩罚。这样攻击者既要扩大战果又要控制成本训练出来的攻击策略会更贴近真实限制场景下的行为。攻击者用类似对抗训练的方式迭代更新一开始攻击者比较“菜”产生的扰动可能只能让受害者稍微变笨随着攻击者策略网络不断优化攻击者逐渐学会在哪些时间步、针对哪些观测维度、以何种幅度投放扰动才能让受害者系统性地犯错。这种将攻击问题本身转化为一个马尔可夫决策过程的方式是SEAC能实现“可学习攻击策略”的根本原因。2.2 非切换攻击与可切换攻击一个关键抉择SEAC将攻击模式分成了两条路线非切换攻击和可切换攻击。非切换攻击记作Nonswitchable是指在整个episode内攻击者锁定一个固定的目标智能体集合从头到尾只攻击这些目标。这个攻击方式好理解稳扎稳打一心一意搞垮一个目标。它的优点是攻击信号集中、扰动模式相对稳定缺点是如果选错了目标比如选了一个对整个团队协作无关紧要的边缘智能体那攻击效果就会很平庸。可切换攻击记作Switchable则允许攻击者在episode进行中选择不同的时间点切换攻击目标。这样做的好处非常实际多智能体系统里的“价值高地”是随时间漂移的。开局阶段可能是负责侦察的智能体位置关键中期推进时又变成负责输出火力压制的智能体更重要收尾阶段操作关键技能的智能体才是最致命的角色。可切换攻击让攻击者始终追着当前时刻“最值钱”的目标打相当于在战场上实时锁定对方最关键的指挥节点。这两条路线不存在绝对优劣它们反映了不同攻击预算和不同信息条件下攻击者的最优应对策略。非切换适合攻击预算极其有限、只够锁定一个目标的环境可切换则适合攻击者有较强机动能力、并且对全局状态有较好感知的环境它的潜力明显更大也是SEAC论文的核心卖点所在。2.3 有效攻击面如何衡量攻击的“发力点”SEAC提出了一个非常有意思的概念effective attack plane我把它翻译成“有效攻击面”。这个概念回答的问题是在某个状态下攻击多少个智能体才能真正影响全局通俗地讲有效攻击面描述了当前场景中存在多少个“攻击后能拖累全局”的智能体维度。假如一个5人团队里只有1个智能体是真正的协作枢纽其它4个都是跟班那有效攻击面的维度就是1攻击者只需要全力攻击这1个枢纽就能轻松获胜反之如果5个智能体都各司其职、缺一不可那有效攻击面的维度就接近5攻击者需要攻击更多目标才能打垮整个队伍。有效攻击面的维度受多种因素影响比如任务类型、团队规模、训练策略权重等。SEAC论文中通过一系列实验测算了不同SMAC场景里的有效攻击面维度并把这一维度作为后续目标选择算法设计的重要依据。这种对“多智能体系统脆弱性结构”的量化和分析在我看来比攻击方法本身更有理论价值它直接推动了我们对多智能体协作鲁棒性边界的认知。3. 方法核心拆解扰动生成与目标选择3.1 扰动生成如何让受害者“看错”又“不易察觉”攻击者的核心任务之一是生成对抗扰动。SEAC中的扰动生成模块继承了一部分DAA的思路使用一个策略网络以当前目标智能体的局部观测为输入输出一个与观测同维度的扰动向量扰动被加到原始观测上之后受害者智能体就会基于被篡改的观测来做决策。关键的设计点有两个。第一个是扰动幅度的控制也就是对抗攻击里常说的约束条件。论文中对扰动幅度做了限制保证扰动不会大到让观测彻底失真毕竟如果你的传感器直接黑屏了系统可能会报警或者切换到备用方案攻击就暴露了。SEAC采取的办法类似于在球的某个半径范围内寻找最优扰动既保证有效又保持隐蔽。第二个设计点是时间一致性。单步的随机扰动容易被抓因为时间维度上的噪声会有明显抖动。SEAC在训练攻击者时会隐式地学到时间上更平滑的扰动序列让受害者的观测在连续几步内“看起来正常但又带着误导性”。这种平滑性既增强了攻击的隐蔽性也提高了对深度强化学习策略的欺骗成功率因为价值网络通常对时间上突变剧烈的输入更敏感。3.2 目标选择策略Targeted Selection与Value-based Selection目标怎么选是SEAC区别于以往攻击方法最大的亮点。论文中提出了两种目标选择策略。第一种是Targeted Selection译作针对性选择。它的做法比较直觉化针对每个智能体单独发起小规模攻击评估攻击这个智能体后全局奖励的下降幅度然后选出能让全局绩效掉得最狠的那个智能体作为目标。这个策略的优点是目标明确一步到位相当于赛前就把对方阵容摸透直接ban掉对面最强的选手。第二种是Value-based Selection译作基于价值的启发式选择。它的思路是训练一个价值网络来预测“在当前状态下把攻击力分配给不同智能体”对应的预期攻击收益。这个价值函数随着攻击者的训练不断更新攻击者通过最大化这个预期收益来选择每一步的目标。这种策略的计算开销更低因为它不用像Targeted Selection那样对每个智能体做一次完整攻击模拟而是直接查价值表就行适合对实时性要求较高的攻击场景。两种策略可以统一在一个框架下互相补充Value-based Selection负责快速筛出“潜在高价值”的目标集合Targeted Selection再在这个小集合上做精排验证两者结合既能保证目标选择的准确性又不会让计算成本爆炸。这种粗排精排的思路跟工业界推荐系统、搜索引擎里的级联排序架构有异曲同工之妙。3.3 两种攻击模式的联合训练与推理流程SEAC的训练流程整体上是这样的先用标准MARL算法比如QMIX、QTRAN训练出一批性能较好的受害者模型然后冻结受害者模型的参数开始训练攻击者。攻击者与环境交互通过强化学习算法更新自己的策略网络和价值网络逐步学会在合适的时机选择合适的目标并产生有效的扰动。在非切换攻击模式下攻击者在每个episode开始时选定目标集合之后不再改变。推理时相对简单攻击者只需要持续为目标智能体生成扰动直到episode结束。在可切换攻击模式下攻击者除了生成扰动还需要在每个决策时间步判断是否需要切换攻击目标。这时就需要上面提到的目标选择机制来打分排序。切换时机会由策略网络根据当前全局状态的价值函数预测来决定目标是让攻击收益折现值最大化。这两个流程在代码实现上共享了大量的模块。扰动生成网络、目标选择价值网络、状态编码器等都可以复用。我在复现时最大的体会是攻击者的训练稳定性和受害者策略类型密切相关使用QMIX作为受害者训练出来的攻击者直接用到QTRAN上效果会有一定衰减这说明攻击策略学到的不只是环境特性还包含受害者策略的特定弱点模式。这个细节在做安全评估时非常重要后面我会专门展开。4. 实验观察SMAC环境下的攻击效果4.1 实验场景与基线选择SEAC论文的实验主要在SMAC环境下完成SMAC是星际争霸多智能体挑战环境里面包含多个微型对战场景比如远程单位对轰、近战单位拉扯等。SMAC之所以成为MARL对抗攻击研究的主战场是因为它对多智能体协作的要求很高且观测存在局部性非常契合CTDE范式下的真实部署条件。论文选择了QMIX作为主要的受害者算法同时也验证了攻击对其他算法如QTRAN等的迁移效果。基线方法选择DAA因为它正是同一研究脉络下最直接的对比对象——同样做攻击者的马尔可夫建模同样以最小化受害者团队奖励为目标。通过SEAC与DAA的对比就能清楚看出“切换攻击”带来的增益到底有多大。4.2 核心实验结果SEAC赢在哪里SEAC的实验结果可以归纳为三点。第一攻击效率显著提升。在相同的攻击预算下SEAC造成的团队累计奖励下降幅度明显高于DAA。特别是在原本相对困难的场景中DAA的攻击力被削弱得很明显而SEAC能够通过切换目标找到受害者团队的破绽保持高强度的攻击压制。第二目标切换的价值得到验证。论文做了一个很有意思的对比同样是SEAC的扰动生成模块使用可切换目标选择策略比固定目标策略带来的奖励下降更显著。这从实验层面证实了“多智能体系统中关键目标会随时间漂移”的假设攻击者通过动态追随高价值目标能够让受害者团队长期处于疲于应付的状态。第三扰动投入更经济。SEAC在攻击预算受限时能保证攻击力更加集中避免“每条线都打、每条线都打蔫”的尴尬局面。在实际攻防对抗中这意味着攻击者可以用更少的暴露风险换取更稳定的攻击效果。4.3 攻击预算受限时的表现攻击预算受限是SEAC论文研究中一个特别重要的场景因为它直接衡量了攻击策略在真实约束下的适应能力。如果把攻击预算理解成“你能污染多少个智能体观测”的额度限制那么DAA在预算受限时会面临一个棘手问题它需要决定把有限的预算分配给谁但并没有一套显式的决策机制。SEAC天然具备这种预算感知能力。它的价值函数在训练时会考虑到当前攻击预算的消耗情况如果剩余预算不足攻击者会自动把攻击力集中在最关键的目标上而不是继续消耗在低价值目标上。论文中的实验显示在攻击预算被压缩到原本的30%时SEAC仍然能维持相当可观的攻击效果而DAA的团队奖励下降幅度则出现了明显回落。这个结果给人的启发非常直接在真实攻击场景中攻击者面临的最大约束往往不是“能不能打”而是“有多少资源可用”。能够主动适应资源约束的攻击者才是更有威胁的对手。5. 复现路线与避坑指南5.1 环境与依赖准备如果你想亲手把SEAC复现出来第一步是配置环境。SEAC的官方代码是公开的底层基于PyTorch实现训练和测试依赖SMAC环境。SMAC本身构建在星际争霸2的API之上需要先安装StarCraft II游戏客户端再用pip安装smac包。安装过程比较琐碎建议直接照着SMAC官方仓库里的说明一步步来把地图文件放对位置再开始跑实验。依赖库方面PyTorch、numpy、tensorboard这几个基本跑不掉。我建议用conda建一个独立环境Python版本选3.7或3.8最稳妥新版本Python在某些老旧依赖上容易遇到编译问题。GPU不需要多好但显存至少要有训练攻击者的时候占用的显存会比你想象的多因为攻击者的模型结构虽不大但训练数据的收集和回放缓冲区占内存不小。5.2 代码结构和关键模块梳理SEAC代码仓库的核心结构大概可以分为三大块受害者训练模块、攻击者训练模块和评估调度模块。受害者训练模块负责用标准的MARL算法训练出性能达标的受害智能体。这里要注意的是受害者模型需要保存到指定目录并且要记录模型在测试环境中的基线性能以便后面攻击者训练效果的对比。攻击者训练模块是代码的核心。它包含扰动生成网络、目标选择价值网络、经验回放缓冲区等多个子组件。建议先把训练主循环逻辑读清楚搞清楚从环境取状态、算攻击者动作、施加扰动、让受害者决策、取奖励这一段完整流程的数据流向再往细节里钻。评估调度模块负责加载训练好的攻击者和受害者模型在标准测试场景里跑通完整对战统计团队奖励、胜负率等指标。我在复现中发现评估时最好固定随机种子否则每次评估结果波动都会很大导致无法精确比较不同攻击策略的效果差异。5.3 复现时容易踩的坑先说受害者训练的坑。SMAC里的场景难度差异极大像2s3z这种场景用QMIX训练可能很快就看到不错的效果但像3s_vs_5z这种对协作要求更高的场景训练除非调好超参否则很容易长时间不收敛。受害者模型的性能直接决定了后续攻击实验的测试基础。如果受害者本身很弱攻击者的“战果”就不具备足够说服力。再说攻击者训练的稳定性。攻击者策略网络在训练初期可能产生大量无效扰动这会造成反馈信号非常稀疏。我踩过的一个坑是攻击者过早收敛到了某个局部最优策略只会机械地攻击一个固定目标根本没法发挥出可切换攻击的优势。后来把目标选择价值网络的学习率调低同时增加目标切换的惩罚权重情况才逐渐好转。还有一个容易被忽视的隐患是经验回放缓冲区中样本的比例失谐。在可切换攻击模式下切换动作发生的频率远低于持续攻击动作导致缓冲区里“切换成功”的正样本极其稀少价值网络很难学会准确评估切换的收益。解决思路是给切换行为增加一个小的奖励偏置或者对切换样本做优先级采样让它出现的比例更高。6. 从SEAC出发攻防博弈下的研究启示6.1 攻击性研究对MARL可靠性建设的价值SEAC这类工作存在的意义绝不只是“教会大家怎么搞破坏”。相反攻击性研究对系统可靠性建设有非常正面的推动作用这在成熟的网络安全领域早就被反复验证如今也在多智能体强化学习领域逐渐得到重视。如果没有SEAC揭示的“个别智能体观测扰动就可以引发团队级联失效”这一现象我们可能还会天真地认为CTDE框架训练出的策略天然具备某种隐式鲁棒性。现在攻击研究工作把这种幻觉打破了。只有知道系统在什么条件下会以何种方式崩溃防御方才能针对性地设计加固方案。做安全研究的人常说“只有知道怎么被打倒才知道怎么站稳”SEAC在MARL领域承担的就是这面镜子。6.2 防御方向的思路梳理有了SEAC这类攻击作为压力测试防御方向的研究思路也变得更加清晰。我梳理了几个跟SEAC直接对应的防御角度供大家参考。对抗训练是最自然想到的思路。在训练受害者策略时主动将对抗扰动加入智能体的观测中让策略在训练阶段就见过这类“脏数据”从而提升它在面对攻击时的应对能力。这种做法实现起来比较简单但通常以牺牲一定清洁环境下的性能为代价需要仔细调参来平衡鲁棒性和性能。观测降噪与过滤也值得一提。SEAC的有效性依赖于扰动保持在一定的幅度范围内如果防御方能够对观测进行平滑处理或使用自编码器类模型对输入进行重构滤除掉异常的高频扰动信号那么攻击效果会大打折扣。代价是增加了一层额外的计算开销在时延敏感的场景下需要谨慎评估。还有一种思路是面向关键节点识别与备份。既然SEAC通过价值函数识别出团队关键节点防御方也可以做类似的分析找到团队中的价值枢纽对这些智能体的观测通道重点加护或者部署冗余备份智能体在关键节点被攻击时顶上。这种思路不改变单体的鲁棒性靠的是系统级的弹性设计。6.3 后续可扩展的研究方向SEAC打开了多智能体对抗攻击这个切口但后面还有很多可以深入挖掘的方向。一个方向是攻击条件的泛化。SEAC的攻击者在面对训练中见过的受害者策略时表现很好但如果受害者通过更鲁棒的算法重新训练过攻击者的效果可能会大幅下降。能否设计一种攻击者能够在一个较大的策略族上泛化未见过的受害者也能快速适应这是一个非常有价值的问题。另一个方向是更复杂的攻击形式。SEAC攻击的是观测空间那如果攻击者可以篡改智能体之间的通信数据是否可以达到更强的破坏效果在多智能体系统中通信链路往往是更脆弱、更难以防护的环节针对通信协议的对抗攻击还有很大的研究空间。更宏观一点可以思考如何把“有效攻击面”这一概念推广到安全评估领域。在做多智能体系统安全测试时能否提前计算出系统的有效攻击面维度并据此部署相应的防御措施、设计冗余机制这个概念的可操作化可能比单一攻击方法本身更有工程价值。我自己的体会是做安全相关的研究心里始终要绷着一根弦攻击方法研究是手段安全加固才是目的。SEAC这类工作之所以重要不是因为它在“破坏力”上刷新了上限而是因为它把多智能体系统的脆弱性暴露在了聚光灯下让后续的研究者有机会沿着这些裂缝把系统修筑得更加坚固。如果你也在做MARL方向的研究我的建议是不管你做不做攻防SEAC都非常值得精读一遍它会改变你对多智能体协作系统鲁棒性的直觉。
返回列表