真实面经题目 · 原创解析

什么是on policy,什么是off policy?

on-policy 和 off-policy 的核心区别不在于算法是否探索,而在于用来学习的数据是由谁产生的。on-policy 用当前正在优化的策略采样,并用这些数据更新同一个策略;off-policy 允许用另一个行为策略、历史日志或经验回放产生的数据,去学习目标策略。回答时要把行为策略、目标策略、数据分布偏差、代表算法和工程取舍讲清楚。

出现于:阿里巴巴 · 算法

60 秒回答模板

on-policy 指目标策略和产生训练数据的行为策略基本一致,也就是智能体用当前策略与环境交互,拿到轨迹后更新这个当前策略。典型例子是 SARSA、A2C、PPO。它的优点是数据分布和要优化的策略一致,训练目标更直接、稳定性通常更好;缺点是样本复用能力弱,旧数据很快过期,样本效率较低。off-policy 指目标策略和行为策略可以不同。智能体可以用探索策略、旧策略、经验回放池,甚至离线日志中的数据来学习另一个目标策略。典型例子是 Q-learning、DQN。它的优点是能复用历史数据,样本效率高,也适合经验回放和离线数据;缺点是数据分布和当前目标策略不一致,容易产生偏差,需要用重要性采样、截断、保守估计或约束等方法控制不稳定性。一句话总结:on-policy 是用自己当前采的数据学自己,off-policy 是可以用别人或过去采的数据学目标策略。

考点 先定义策略和数据来源
主线 on-policy 的本质
易错点 把 on-policy 理解成不探索,把 off-po…

深入解析

01

先定义策略和数据来源

强化学习里的 policy 是从状态到动作的决策规则,通常记为 π(a|s)。讨论 on-policy 和 off-policy 时,关键不是策略网络结构,也不是是否使用深度学习,而是数据分布从哪里来。产生数据的策略叫 behavior policy,即行为策略;正在被学习、评估或优化的策略叫 target policy,即目标策略。

02

on-policy 的本质

on-policy 是用当前目标策略自己采集到的数据来更新自己。智能体按照当前策略与环境交互,得到状态、动作、奖励、下一状态等轨迹,然后基于这些轨迹更新同一个策略。由于数据来自当前策略,训练分布和当前要优化的策略较匹配,目标比较直接。典型算法包括 SARSA、A2C、PPO。

03

off-policy 的本质

off-policy 是允许行为策略和目标策略不同。学习目标策略时,训练数据可以来自探索策略、旧版本策略、经验回放池、人类或业务日志,甚至完全离线的数据集。典型算法包括 Q-learning 和 DQN。Q-learning 更新的是对最优策略的价值估计,但行为上可以使用 ε-greedy 等探索策略,所以它是 off-policy。

04

SARSA 和 Q-learning 对比

SARSA 的更新依赖当前策略实际执行的下一个动作 a',也就是从 s,a,r,s',a' 这条真实轨迹中学习,因此它学的是当前行为策略的价值,属于 on-policy。Q-learning 的更新则使用下一状态下最大动作价值 max Q(s',a'),即使行为策略实际没有选择这个动作,它也朝着贪心目标策略学习,因此属于 off-policy。

05

重要性采样解决什么问题

当数据来自行为策略 μ,而我们想估计目标策略 π 的期望时,样本分布不一致会引入偏差。重要性采样的思想是用 π(a|s)/μ(a|s) 这类概率比值修正样本权重,让来自行为策略的数据能够估计目标策略下的期望。但它可能方差很大,工程中常配合截断、归一化、V-trace、Retrace 等变体。

06

稳定性与样本效率权衡

on-policy 的优势是更新更贴近当前策略的数据分布,理论和实现上相对直观,策略优化通常更稳定;劣势是每批数据只适合当前策略,复用价值低,样本效率差。off-policy 的优势是能反复利用经验回放和历史数据,样本效率高;劣势是训练分布与目标策略分布不一致,容易出现价值估计偏差和训练不稳定。

07

离线强化学习的特殊风险

离线强化学习通常只使用固定数据集训练,不能通过环境交互纠正错误,因此它是 off-policy 思想的更严格场景。最大风险是目标策略可能选择数据集中很少出现甚至没出现过的动作,价值函数会对这些分布外动作产生错误高估,策略再利用这些高估动作会进一步放大问题。

易错点

  • 把 on-policy 理解成不探索,把 off-policy 理解成会探索。探索不是区分标准,行为策略和目标策略是否一致才是关键。
  • 只背 SARSA 是 on-policy、Q-learning 是 off-policy,但解释不出 SARSA 用实际下一个动作、Q-learning 用最大 Q 值目标的差别。
  • 认为 off-policy 可以无代价使用任意历史数据。实际上数据分布偏差会带来价值高估和训练不稳定,需要修正或约束。
  • 把 PPO 说成完全可以像 DQN 一样无限复用旧数据。PPO 对旧数据的使用受策略漂移限制,通常只能使用较新的采样数据。
  • 忽略 behavior policy 和 target policy 的术语,导致回答停留在口号层面,不能解释日志数据、经验回放和离线强化学习的关系。
  • 把离线强化学习简单等同于监督学习。离线 RL 仍然要处理长期回报、反事实动作选择、分布外动作和策略改进带来的评估风险。

面试官追问

为什么 SARSA 是 on-policy,而 Q-learning 是 off-policy?

SARSA 用当前策略实际采样到的下一个动作来更新价值,所以学习目标和行为策略一致。Q-learning 用下一状态的最大 Q 值作为目标,即使行为策略实际选择的是探索动作,它仍朝贪心目标策略学习,因此目标策略和行为策略可以不同。

PPO 为什么通常算 on-policy?

PPO 主要依赖当前或最近一次策略采样得到的数据,并通过概率比值裁剪限制新旧策略差异。虽然它会对一批数据做多轮优化,但这些数据很快会失效,不能像 DQN 那样长期放入经验回放池反复使用,所以通常归为 on-policy 或近似 on-policy。

off-policy 一定比 on-policy 好吗?

不一定。off-policy 的样本效率通常更高,但由于训练数据分布可能和目标策略不一致,容易出现偏差和不稳定。on-policy 虽然样本效率低,但优化目标更贴近当前策略分布,很多连续控制和策略优化任务中更稳。选择哪类方法取决于交互成本、稳定性要求、数据来源和任务风险。

经验回放为什么通常和 off-policy 搭配?

经验回放池里存的是过去不同策略阶段产生的数据。如果当前策略已经变化,回放数据就不再完全来自当前策略。off-policy 方法允许用这些旧数据继续学习目标策略,所以能自然利用经验回放提高样本效率并降低样本相关性。

离线强化学习和 off-policy 是什么关系?

离线强化学习可以看成 off-policy 的极端形式:训练数据完全来自已有数据集,学习的目标策略往往不同于产生数据的行为策略,并且训练期间不能继续探索环境。它比普通 off-policy 更难,因为错误策略不能通过新交互被及时纠正。