CS285 课程笔记:离线强化学习
从固定数据集中学习更好的策略:离线 RL、CQL、COMBO、Trajectory Transformer,以及离线策略评估与 RL 理论。
Offline RL 的目标不是模仿已有数据,而是从固定数据中计算出比数据生成策略更好的策略,希望利用数据里面的 reward + transition structure,学习混合质量的数据中好的行为重新组织成一个更好的 policy,甚至把很多糟糕轨迹中局部正确的片段重新组合。
Offline RL
Offline RL 的一个问题是 erroneous backups,如果Q网络对离线数据集中一个没见过的动作进行错误的估计,那么这个错误的Q值就会被继续向前面的状态传播。online rl 通过执行这一动作通常还能纠正错误,虽然也无法保障。所以我们需要对策略跑到数据外分布做出限制,例如 **BCQ **尽量只选择接近数据集支持的动作,BEAR 使用distribution matching 一类分布,BRAC 对 learned policy 和 behavior policy 加divergence regularization。IQL 则只使用 dataset 中真实出现过的 action,通过 expectile regression 在这些 dataset actions 中偏向好的动作,实现一种 implicit policy improvement。
可是面对一个更加困难的任务时,offline RL不能只是学习模仿数据中出现的某些动作,还需要学会将数据中的局部经验重新组合,此时如果用上文只是设计加上各种限制的算法就很难完成这些任务。并且对于限制本身也会存在问题,模型不一定能正确估计 behavior policy,当function class 不匹配时无论训练多少数据都可能拟合不好。并不是所有分布外动作都是糟糕的,只有动作价值被错误地过高估计时才会影响策略效果。
model-baed offline RL
MOPO 会在reward function中加上一个不确定性惩罚,训练一组dynamic model,不确定性惩罚就是ensemble 的所有模型里最大的协方差,即最不确定的那个模型。如果某个动作虽然和 behavior policy 不一样,但dynamic model对那里有把握,策略就会允许策略执行这个动作,这样就比简单加上限制更加灵活。
Conservative Q-Learning
CQL-v1 在 Bellman error 前面加了一项 主动寻找Q最大的动作并把它压低,避免了OOD action 把它估得虚高,但也会把数据集中有 evidence 的动作压低。于是 v2版又在后面加了一项 ,把 OOD 动作的 Q 往下压, 出现在数据中动作的 Q 往上托。CQL 不是限制 policy 本身而是对Q网络做出调整,避免策略价值被整体高估。
Practical CQL
理论上这里要再优化一个动作分布 ,来找到Q值可能被高估的动作同时避免坍缩到单一动作,CQL(H) 加了一个 entropy regularization 后就可以把这个 解析地写成 , Practical CQL 的 loss 就变成
这里 就是 dataset behavior distribution,。
CQL 不是每一种case下都最优,而是在多种dataset type下比 naive offline RL 和 policy constraints 更稳定。它不是特殊的 policy architecture只是对critic进行改造为一个 conservative critic regularizer,搭配现代强化学习算法如 SAC 或 DQN使用。
COMBO
真正 policy rollout 时,不只是 action 会 OOD,也可能跑到 dataset 没覆盖的 state。COMBPO 会先训练一个 dynamic model,从离线数据 训练 以及 reward model(如果 reward 不是直接已知函数)。然后从 dataset states 出发,用当前 policy 在模型中 rollout 得到一批 synthetic model transitions 。但是这个 dynamic model 面对数据外情况同样会偏移,所以就像CQL会最小化策略动作的 Q 值一样,可以最小化 model rollout 得到的状态‑动作分布的 Q 值,托高真实数据中 Q 值。
Trajectory transformer
Trajectory transformer 把一条 trajectory 当成语言序列,直接学 ,于是里面自动包含: 以及 。但我们不是只要模仿已有数据的 trajectory,而是要高 reward trajectory,所以使用 beam search。
例如模型提出 ,每条都有预测 ,保留累计 reward 最大的 K 条候选继续扩展。最后选择最好 trajectory 的第一个 action ,执行一个 action 后重新规划,类似 MPC。TT 可以生成高概率轨迹来规避之前方法面对的分布外状态与动作,不过 TT 用于训练和评估的计算特别昂贵。
Offline policy evaluation
现在我们是用离线的数据进行训练,无法与环境交互,那么要评估我们学到的policy,一种方法是之前提过off-policy 中常用的算法 importance sampling,但是存在指数级爆炸的问题,我们可以用 Doubly Robust方法先相信 value model,再用 importance-weighted residual 修正 。但是这个方法依然有 ,于是 marginaled importance sampling 不显式保留整条历史,而直接估 occupancy ratio 即所有到达这个 (s,a) 的 trajectory IS ratio 的平均 然后 把 behavior-policy dataset 重新加权,使它看起来像是 target policy 产生的数据,最后算出累计 reward。
Least-Squares Temporal Difference
还有一种方法是不直接对 reward return 加权,先从 transitions 解出 ,在 featrue space 求解 bellman equation,假设 Bellman equation 有 ,于是希望 即 ,, 找一个 (w) 使线性 value function 在 feature space 中尽量满足 projected Bellman equation。对任何状态 最后取初始状态 完成 policy evaluation。
如果我们想要进一步使用这种方法来改进策略,就需要比较动作的好坏,可以改为学习 Q function 即 LSTDQ,对 action 做 greedy improvement。Bellman equation 变成 。如果 是 deterministic ,于是 代入线性表示 定义 以及 然后和 LSTD 一模一样 。最后得到 LSPI 的完整循环,先用 LSTDQ 算 估 ,然后更新策略 , 然后重新算 再次循环。
RL theory
RL 如果没有很强的假设就很难进行有效的分析,现在的 deep RL 方法通常都不能证明每次都会很好地 work,甚至经常都不能保证收敛。在很强的假设下,我们才能对各种因素如何影响 RL 算法的表现做出不准确的定性结论,并使这些假设足够合理让这些结论可能用于现实问题。
evaluate metric:sample complexity
样本复杂度指需要多少个 transition 或 episodes才能获得一个好的 policy,既然要评估策略那么我们就需要对 Q 值的估计误差有一定概念。
Q 值估计误差的推导
首先回顾策略 (\pi) 下的贝尔曼方程: [ Q^\pi = r + \gamma P^\pi Q^\pi ] 通过代数变换,可以将其改写为矩阵求逆的形式: [ Q^\pi - \gamma P^\pi Q^\pi = r \implies (I - \gamma P^\pi)Q^\pi = r \implies Q^\pi = (I - \gamma P^\pi)^{-1}r ]
维度说明
- (Q^\pi \in \mathbb{R}^{|S||A|}),(r \in \mathbb{R}^{|S||A|})。
- (P \in \mathbb{R}^{|S||A| \times |S|}),(V^\pi \in \mathbb{R}^{|S|})。
- 状态价值函数与动作价值函数的关系:(V^\pi = \Pi Q^\pi),其中 (\Pi) 是维度为 (|S| \times |S||A|) 的投影矩阵。
- 策略诱导的转移矩阵:(P^\pi = P\Pi)。
其次给定 (P^\pi) 和任意向量 (v \in \mathbb{R}^{|S||A|}),有引理: [ |(I - \gamma P^\pi)^{-1}v|\infty \le \frac{|v|\infty}{1 - \gamma} ]
对应于奖励 (v) 的 Q 函数,其无穷范数最多被放大 (\frac{1}{1-\gamma}) 倍。这可以通过几何级数 (\sum_{t=0}^\infty \gamma^t c = \frac{c}{1-\gamma}) 来理解(即视界 (H \approx \frac{1}{1-\gamma}))。结合上述引理与蒙特卡洛采样的集中不等式,得到 Q 值估计误差的无穷范数上界 [ |Q^\pi - \hat{Q}^\pi|_\infty \le \frac{\gamma}{(1-\gamma)^2} c_2 \sqrt{\frac{|S|\log(1/\delta)}{N}} ]
根据上界我们可以得到结论:
-
Q 值估计误差随视界二次增长:分母中的 ((1-\gamma)^2) 意味着误差与有效视界 (H^2) 成正比。因为 (Q) 值本身的尺度是 (\frac{1}{1-\gamma}),每次贝尔曼 backup 都会累积误差,于是在传播过程中误差又会乘以 (\frac{1}{1-\gamma}),两者叠加导致二次放大,因此强化学习的误差界对折扣因子 (\gamma) 极其敏感。
-
大量样本需求:为了抵消视界带来的误差放大,样本量 (N) 需要以 (O(H^4)) 的速度增长。这也就是长视界 RL 任务(如长序列决策)极其困难的理论根源。
FQI 的误差分解:Sampling vs Approximation
FQI 的误差由两部分组成:
- Sampling Error:因为只能采样有限个 (N) 样本,导致估计的 (\hat{T}) 和真实的 (T) 不一致。
- Approximation Error:因为网络容量有限或优化不充分,导致 (\hat{Q}k \neq \hat{T}\hat{Q}{k-1})。
渐进偏差:在数据有限时,模型最终会收敛到一个由这两者决定的误差球内,而不是精确的 (Q^*)。单次贝尔曼备份产生的微小误差,会通过 (1, \gamma, \gamma^2, \dots) 的形式在后续的迭代中不断累积,形成指数衰减的加权和,最终固化为不可消除的固有偏差。导致在实际中用神经网络加采样数据的DQN类算法,永远无法完美收敛到真实的 。
前面的推导都基于无穷范数(即找出所有状态-动作对中最坏的那个误差)。这会带来严重的维度灾难,因为需要 (\log(|S||A|)) 的联合界,要求数据覆盖每一个角落。在实际工程中,不需要保证所有状态都预测准确,只需要保证在策略实际访问到的状态分布 (\mu) 下期望误差小即可。这是深度强化学习(如 DQN 使用经验回放池分布)能够在高维状态空间下工作的理论基础。