前言
我在上一篇文章中,解读PLD时,发现PLD用到了Cal-QL作为默认预训练算法,而这个Cal-QL之前在ConRFT中 也出现过
故考虑到Cal-QL的重要性,个人觉得很有必要单独一篇文章阐述下这个Cal-QL,故准备先解读下Cal-QL,之后,再继续更新PLD的解读
所谓Cal-QL (Calibrated Q-Learning) 的算法,这是一种旨在解决 离线强化学习(Offline RL)预训练 后,如何高效进行 在线微调(Online Fine-Tuning)的方法
- 通常,我们会利用现有的静态数据集(离线数据)来预训练一个策略,然后让该策略在真实环境中通过交互进行微调
然而,现有的方法存在一个显著问题:
“遗忘”现象 (Unlearning):许多离线 RL 算法(如 CQL)为了防止过高估计(Overestimation),会刻意压低 Q 值(保守性),这导致学到的 Q 值远低于真实的预期回报
后果:当在线微调开始时,智能体探索到的新动作(哪怕是较差的动作),其 Q 值可能都比被刻意压低的离线策略 Q 值要高
类似顽固保守派会刻意贬低创新派的成果,使得所有人对创新派历史举措的评价 打了有违公允的低分,使得创新派后续推出了一个实际价值很低的新举措,但这个低价值的新举措 都可能比『之前那一系列被刻意压低的历史举措』得分更好,如此 便全乱套了
结果是,智能体误以为新动作更好,从而放弃了原本不错的离线策略,导致性能在微调初期急剧下降(Unlearning),需要浪费大量样本才能恢复 - 而Cal-QL 的核心思想是校准 (Calibration)
即Cal-QL 的目标是既保留离线 RL 的保守性(不盲目乐观),又要避免 Q 值过低导致的“遗忘”
校准的定义: 算法学到的 Q 值函数应该满足两个条件:
作为最优策略价值的下界(保守性),即不能盲目乐观
作为参考策略(通常是行为策略/Behavior Policy)价值的上界,即也不能过于悲观
直观理解: Q 值不应该被压得比“数据集里的已知表现”还要低。如果 Q 值被校准到真实的尺度范围内,那么在线探索中的坏动作就不会错误地显得比离线策略更好,即历史需要被客观看待
第一部分 Cal-QL: Calibrated Offline RL Pre-Training for Efficient Online Fine-Tuning
1.1 引言与相关工作
1.1.1 引言
如原Cal-QL论文所说,现代机器学习的成功通常遵循一个共同的范式:首先在通用的、互联网规模的数据上对模型进行预训练,然后在目标任务上用有限数量的数据对这一预训练得到的初始化进行微调 [22,7]
- 那如何将这种范式迁移到序列决策问题上?
一种自然而然的做法是利用离线强化学习(offline RL)[37],在静态数据集上对价值函数和策略进行初始化,随后通过在线微调,在有限的主动交互下进一步改进这一初始化
如果能够成功,这样的范式可能使在线 RL 在远少于当前从零开始学习方法所需样本的情况下实现高效学习 - 故,许多离线强化学习(offline RL)算法已经被应用于在线微调,但相关工作的实证结果表明了一个违反直觉的趋势:由更高效的离线 RL 方法得到的策略初始化,在在线微调时往往表现得更差,即便是在同一任务中也是如此(参见 Kostrikov 等人[31] 的表 2 以及 Xiao 等人[57] 的图 4)
另一方面,从零开始训练的在线 RL 方法(或“从示范中进行 RL”[53],即使用离线数据对重放缓冲区进行预填充)在在线阶段的性能提升速度却显著更快
然而这些在线方法需要从零开始通过执行策略主动收集数据,这在数据收集昂贵或危险的问题中继承了与朴素在线 RL 方法相似的局限性
总体而言,这些结果表明,要设计一种离线 RL 算法,使其既能从已有数据中获取良好的初始化,又能实现高效的微调,是一项颇具挑战性的任务
对此,来自1 UC Berkeley、2 Stanford University的研究者『Mitsuhiko Nakamoto1∗、Yuexiang Zhai1∗、Anikait Singh1、Max Sobol Mark2、Yi Ma1、Chelsea Finn2、Aviral Kumar1、Sergey Levine1』,考虑:如何设计一种方法,既能学习到一个有效的策略初始化,并且在微调过程中还能持续改进?
- 已有工作[32,6]表明,可以通过针对从离线数据集获得的保守价值函数来优化策略,从而学习出良好的离线初始化
然而,仅有保守性并不足以实现高效的在线微调。保守方法往往倾向于“遗忘”从离线数据中学习到的策略初始化,并在通过在线交互收集的样本上浪费数据来重新恢复这一初始化 - 作者发现,这种“遗忘”现象源于这样一个事实:通过保守方法得到的价值估计,可能会显著低于任何有效策略的真实回报
若Q值估计与某个有效策略的回报不在相近的量级上,就会带来问题
因为一旦开始微调,在环境中执行的用于探索的动作,即便实际上比从离线数据中学习到的策略效果更差,但如果其真实回报值大于所学的保守值估计,也可能被错误地认为效果更好
就是离线中的策略被低估了,本来挺不错的,但因为被低估 所以得分很低,使得后来在线中的策略 本来很差但都可能比离线中的策略还更好
因此,后续的策略优化会降低策略性能,直到方法恢复为止
但如果能够保证利用离线数据学得的保守价值估计是经过校准的,也就是说,这些估计与真实回报值处于相近的量级,那么就可以避免由保守方法导致的去学习(unlearning)现象
当然,实际上不可能完美地强制满足这一条件,因为这要求彻底消除价值函数中的所有误差
- 取而代之的是,作者设计了一种方法,保证学得的价值对某个参考策略(例如行为策略)的真实价值给出上界,而同时仍然对学得策略的价值给出下界。尽管这并不能完美地保证学得的价值是正确的,但作者证明,它仍然能够带来高样本效率的在线微调
- 由此,作者提出了一种实用方法——校准Q-learning(Cal-QL),通过对现有保守方法进行一个简单的修改,使其学习到相对于行为策略“校准”的保守价值函数
如下图所示,先进行离线 RL 预训练,然后再进行在线 RL 微调
- 一些现有的离线 RL 方法在这种设置下往往表现提升缓慢(黄色),导致最终性能较差
- 另一些方法在开始在线微调后会出现初始性能退化(红色),从而带来较高的累积遗憾
- 作者提出了一种方法,对已学习的价值函数进行“校准”,以实现快速性能提升并获得较小的遗憾(蓝色)
1.1.2 相关工作
// 待更
1.1.3 预备知识与背景
在RL 中的目标是为MDP学习最优策略
,
表示状态和动作空间
和
是动力学和奖励函数
表示初始状态分布
表示折扣因子
形式上,目标是学习一个策略,使累积折扣价值函数最大化,记为
给定策略π 的Q 函数定义为
且用表示通过参数为
的神经网络获得的对策略
的Q 函数的估计
给定一个使用行为策略收集的离线数据集
,作者
- 首先旨在仅使用离线数据集D 来训练一个良好的策略和价值函数
- 随后进行一个在M 中利用在线交互的在线阶段
在微调过程中,作者的目标是在尽可能少的在线样本数量下获得最优策略
这可以表示为最小化在线交互轮次上的累积遗憾:
事实上,作者的这个Cal-QL方法基于Conservative Q-learning(CQL)[32] 算法。CQL 施加了一个额外的正则项:对分布外(out-of-distribution,OOD)动作上的学习到的 Q 函数进行惩罚,同时在训练数据集中出现过的动作上对这种悲观性进行补偿
假设价值函数由一个函数表示,则 CQL 的训练目标为:
其中,是应用于延迟目标Q -network 的备份算子,
- 第二项,即后半项,是标准的TD error [40, 13, 20]
- 第一项
,即前半项,是一个保守正则项(即Conservative regularizer),其目的是通过在策略
下最小化Q 值来防止对OOD 动作的Q值高估, 并通过在遵循行为策略
的数据集中最大化这些动作的Q 值来进行平衡
1.2 Cal-QL的完整方法论
1.2.1 何时离线强化学习的初始化能够实现快速在线微调
离线预训练与在线微调的一个起点,是直接使用现有离线强化学习方法得到的价值函数来进行初始化,然后再执行微调
然而,我们在实证中发现,许多离线强化学习算法学到的初始化在随后的微调过程中表现很差。作者将针对其中一类保守方法分析这种性能不佳的原因,并据此提出和发展我们的在线微调方法——校准Q学习(calibrated Q-learning)
对此,作者先做了一系列实证分析
- 由于离线强化学习后接在线微调通常会给各种方法带来非平凡的挑战
虽然先前工作 [45] 的分析指出了一部分离线强化学习方法在这方面的困难,但在图2中——多个以往的离线强化学习(offline RL)算法在微调阶段都会遇到困难,包括较差的渐近性能以及初始遗忘
作者在一个特定的诊断性视觉抓取与放置任务实例上(该任务包含一个干扰物体以及稀疏的二值奖励 [51]),评估了多种现有离线强化学习方法(CQL [32]、IQL [30]、TD3+BC [11]、AWAC [45])的微调表现,发现所有方法都难以及时达到最优可能的性能
关于该任务的更多细节见附录B - 虽然通过所有方法获得的离线 Q 函数初始化都能取得大约 0.5 的(归一化)回报,但它们在微调过程中仍然存在问题:TD3+BC、IQL、AWAC 的渐近性能提升缓慢,而 CQL 会遗忘离线初始化,随后需要花费大量在线交互重新恢复离线性能,然后才能进一步改进
这种初始遗忘现象在多个任务中都会出现,作者在附录 F 中进行了展示
在本文中,作者专注于在像 CQL 这样的保守方法之上开发有效的微调策略
为此,作者接下来希望理解 CQL 中出现初始遗忘现象的潜在原因
为什么 CQL 在一开始会发生“遗忘”?为了理解 CQL 为什么会在初始阶段发生遗忘,作者在图3 中检查了在整个数据集上取平均的学习到的 Q 值『在离线预训练和在线微调过程中,平均 Q 值和 CQL 成功率的演化。微调从第50K 步开始。红色部分表示性能恢复阶段,这一阶段也与 Q 值调整阶段相重合』
可以看到,这些 Q 值在离线阶段由 CQL 学到的数值远小于其真实值(这是预期之中的),但当开始微调时,这些 Q 值会发生剧烈跳变并在尺度上进行调整
实际上,作者观察到,性能恢复(图3 中的红色区段)恰好与 Q 值范围变化以匹配真实范围的这一时期相吻合。这同样是符合预期的:当一个保守的 Q 函数开始接触新的在线数据时,在 rollout 状态下那些比离线策略差得多的动作,相比于被严重低估的离线 Q 函数所给出的估计,似乎反而能获得更高的回报,进而欺骗策略优化器,使其“遗忘”最初的策略
相当于劣币驱逐良币啊,或者说来了个写PPT的 只会吹的,赶走了之前只会埋头苦干 但不会吹的
作者在下图图4 中以可视化方式展示了这一思想
使用 CQL 进行策略反学习(policy unlearning)的直觉,以及 Cal-QL 背后的思想
- 该图可视化了在给定状态下已学习 Q 函数的一个切片以及其对应的真实值。使用在线数据更新CQL 的 Q 函数时,会在次优动作(x 轴)上产生错误的峰值
这反过来会导致策略偏离数据集中覆盖的高回报动作,转而倾向这些错误的新动作,从而使预训练策略退化- 相较之下,Cal-QL 通过使用参考价值函数来校正已学习 Q 值的尺度,使得那些 Q 值劣于参考价值函数的动作在微调过程中不会被错误地视为最优
一旦 Q 函数完成调整,其 Q 值范围与真实范围已经非常接近,那么在这一下降阶段之后,微调过程就可以恢复为正常进展
// 待更