与计算机视觉或自然语言处理等监督学习方式相比,强化学习(RL)为对抗性攻击带来一套不同的挑战和机遇。不同于处理静态输入的模型,强化学习智能体在一个交互循环中运作,根据环境的观测做出序列决策,以使累积奖励信号最大化。这种动态交互产生了独特的攻击途径。针对强化学习智能体的对抗性攻击旨在操纵智能体学到的策略 $\pi(a|s)$,导致它采取次优或有害的行动。这些攻击可以大体分为两类:根据发生的时间(训练期间或测试期间),以及它们作用于强化学习循环的哪个部分(观测、奖励或行动)。对强化学习智能体的测试时攻击测试时攻击,类似于监督学习中的规避攻击,发生在智能体训练和部署之后。攻击者的目标通常是最小程度地扰动智能体的观测(状态),使得智能体选择比正常情况下差得多的行动。设想一个智能体与环境交互。在每个时间步 $t$,智能体观测状态 $s_t$,选择一个行动 $a_t \sim \pi(a|s_t)$,获得奖励 $r_t$,并转移到下一个状态 $s_{t+1}$。攻击者可能会引入一个小的扰动 $\delta_t$ 到观测到的状态 $s_t$,从而产生一个对抗性状态 $s'_t = s_t + \delta_t$。智能体随后根据这个被扰动的状态采取行动:$a'_t \sim \pi(a|s'_t)$。攻击者的目标可以通过多种方式表述,通常旨在从被扰动的状态开始,最小化预期的累积奖励(或最大化成本函数)。对于时间步 $t$ 的攻击,目标可能是找到一个具有有界范数(例如 $||\delta_t||_p \leq \epsilon$)的扰动 $\delta_t$,以使预期回报最小化:$$ \min_{\delta_t: ||\delta_t||p \leq \epsilon} \mathbb{E} \left[ \sum{k=t}^{\infty} \gamma^{k-t} r_k \mid s'_t = s_t + \delta_t, a_k \sim \pi(a|s'_k) \text{ 对于 } k \ge t \right] $$其中 $\gamma$ 是折扣因子。如果策略 $\pi$ 对其输入状态可微分(在深度强化学习中使用神经网络时很常见),基于梯度的方法,如 FGSM 或 PGD,可以被调整使用。例如,使用估计预期回报的价值函数 $V(s)$ 或 Q 函数 $Q(s, a)$,攻击者可以计算关于状态输入的梯度,并沿使预期价值降低的方向扰动状态。示例:针对价值函数的 FGSM 类似攻击如果智能体使用由 $\theta$ 参数化的价值函数 $V_\theta(s)$,攻击者可以生成一个扰动 $\delta$ 以最小化预测价值:$$ \delta = -\epsilon \cdot \mathrm{sign}(\nabla_s V_\theta(s)) $$$$ s' = s + \delta $$这旨在使智能体认为当前状态价值较低,可能导致次优行动。类似的方法可以直接作用于 Q 函数或策略网络。测试时强化学习攻击面临的挑战包括:时间一致性: 扰动可能需要持续施加跨多个时间步,以达到持久效果。部分可观测性: 在部分可观测马尔可夫决策过程 (POMDPs) 中,智能体根据观测 $o_t$ 行动,这些观测可能无法完全展示真实状态 $s_t$。攻击必须在信息不完整的情况下有效扰动观测。不可微分的策略/环境: 如果策略或环境模拟的部分不可微分,基于梯度的方法就会失效。攻击者可能会求助于基于分数或基于决策的黑盒技术,查询智能体并观察结果以估计梯度或找到脆弱点。对强化学习智能体的训练时攻击训练时攻击,类似于数据投毒,作用于学习过程本身。攻击者操纵智能体的训练经验,以植入脆弱点或降低性能。攻击途径:观测投毒: 攻击者巧妙地修改在训练期间呈现给智能体的状态或观测。这可以引导智能体学习不正确的状态-行动映射,或植入后门。奖励投毒: 攻击者操纵智能体接收到的奖励信号 $r_t$。通过提供误导性的奖励,攻击者可以激励智能体学习一个服务于攻击者目标的策略(例如,达到某个特定的不安全状态),或仅仅是整体表现不佳。行动投毒: 在某些设定中(例如,模仿学习或离线强化学习),攻击者可能控制或修改数据收集期间采取的行动,导致智能体从有缺陷的轨迹中学习。示例:通过奖励投毒植入后门攻击者可以在训练期间修改奖励函数,使得智能体获得异常高的奖励,用于达到某个特定的,否则不期望的状态,仅当观测中存在一个微小的触发器时。例如,在自动驾驶汽车模拟中,观测中一个特定的稀有视觉模式(触发器)与达到危险位置相结合,可以在训练期间被人为奖励。部署后,如果智能体观测到这个触发器,其被投毒的策略可能会使其驶向危险位置。下图展示了攻击者可能进行干预的点在标准强化学习循环中:digraph RL_Attack_Points { rankdir=LR; node [shape=box, style=rounded, fontname="helvetica", fontsize=10]; edge [fontname="helvetica", fontsize=10]; bgcolor="transparent"; splines=true; node [color="#495057", fontcolor="#495057"]; edge [color="#495057"]; "智能体" [shape=ellipse, style=filled, fillcolor="#a5d8ff"]; "环境" [shape=cylinder, style=filled, fillcolor="#b2f2bb"]; "观测 s_t" [shape=parallelogram]; "奖励 r_t" [shape=parallelogram]; "行动 a_t" [shape=parallelogram]; "Attack_Obs_Test" [shape=circle, label="X", style=filled, fillcolor="#ff8787", fixedsize=true, width=0.2, height=0.2, tooltip="在测试时扰动 s_t"]; "Attack_Obs_Train" [shape=circle, label="X", style=filled, fillcolor="#f76707", fixedsize=true, width=0.2, height=0.2, tooltip="在训练时投毒 s_t"]; "Attack_Reward_Train" [shape=circle, label="X", style=filled, fillcolor="#f76707", fixedsize=true, width=0.2, height=0.2, tooltip="在训练时投毒 r_t"]; "智能体" -> "行动 a_t" [label="π(a|s)"]; "行动 a_t" -> "环境"; "环境" -> "观测 s_t"; "环境" -> "奖励 r_t"; "观测 s_t" -> "智能体"; "奖励 r_t" -> "智能体" [label="学习更新"]; "观测 s_t" -> "Attack_Obs_Test" [dir=none, style=dashed, color="#ff8787"]; "Attack_Obs_Test" -> "智能体" [style=dashed, color="#ff8787", label="s'_t"]; "观测 s_t" -> "Attack_Obs_Train" [dir=none, style=dashed, color="#f76707"]; "Attack_Obs_Train" -> "智能体" [style=dashed, color="#f76707", label="被投毒的 s_t (训练)"]; "奖励 r_t" -> "Attack_Reward_Train" [dir=none, style=dashed, color="#f76707"]; "Attack_Reward_Train" -> "智能体" [style=dashed, color="#f76707", label="被投毒的 r_t (训练)"]; }强化学习智能体-环境交互循环中的潜在攻击点。红色 'X' 表示测试时对观测的扰动。橙色 'X' 表示训练时对观测或奖励的投毒。训练时攻击通常更具威力但更难执行,因为它们通常需要对训练环境或数据生成过程施加影响。防御这些攻击涉及学习算法、训练数据(状态、奖励)中的异常检测以及安全的环境设计。了解这些强化学习特定的攻击途径对于开发安全的自主系统非常重要。防御方法通常涉及策略优化技术、适用于序列决策的对抗性训练,以及检测或过滤被投毒经验的方法。强化学习中鲁棒性的评估也需要仔细考量问题的序列性和交互性。