个人有关 RPT 以及通用智能体预训练的主观看法

对 RPT 泛化能力提升的设想

  • 目前通用智能体预训练主要需要解决的问题:泛化能力,即我们希望通用智能体能够真正像人类一样,不是在某一方面展现出智能(如语言,视觉),而是成为一个“全才”,拥有解决各类问题/任务的能力。

  • 由于 “泛” 的原因,通用智能体的预训练面临的最大挑战就是 unbounded-data,数据稀疏。这会涉及到数据难以覆盖通用模型所需的所有任务类别,也涉及到训练数据类别过多导致单类任务训练结果不佳


  • 从这点出发,RPT 可以细化为两大主题:
    • 对新任务适应性差:在模型遇到新任务时,往往需要大量新数据从头开始进行训练。无论是人类智能还是当下的语言模型,都能做到随着“知识”增加,面对新任务的适应性会变好,能较快训练。但是在 RL 领域目前未能成功。
    • 对旧知识的灾难性遗忘:由于更新了新任务的知识,导致对旧任务的适应性变差。这点在人类智能上时有发生,但是 RL 应该尽可能降低遗忘的频率,尤其时灾难性遗忘。

对于通用智能体“灾难性遗忘”问题的延伸思考

  • 在人类的角度中,我们更倾向于给更稀有的事物赋予更高的重要性。比如,当某次珍贵的机会因为一时疏忽忘记了,我们会认为这是一次极大的损失。因此,在人类的视角,更稀有的事物更值得“被记住”。
  • 另外一方面,对人类而言,日常任务早已形成了长期记忆甚至永久记忆,除非遇到突发事件,否则几乎没有机会发生遗忘。因此人类智能不需要担心“遗忘频繁任务”的损失,自然就会认为稀疏任务更值得形成记忆(另一方面,稀疏任务往往奖励更高)。
  • 但是到了 RL 领域,情况就不一样了:通用智能体在更新新的技能时,有可能会发生“灾难性遗忘”,哪怕是频繁出现的任务,因参数更新而发生遗忘的概率也比人类高得多。
  • 举个例子,加入我们让智能体去解一道高数数学题,通过新数据训练,智能体学会了如何解题。但是更新参数后,它忘了怎么写字。这下,不仅新任务完成不了,很多相关任务也无法完成了。然而这点在人类身上几乎不可能发生,在智能体身上却是致命问题

  • 那么这个问题有办法解决吗?有的兄弟,有的。
  • 其中一个办法就是可塑权重巩固 (Elastic Weight Consolidation, EWC)。这个方法的关键就是在模型参数更新时,加一个 EWC 正则化损失函数:

$$
\mathcal{L}_{old}=\frac{\lambda}{2}\sum_i \Omega_i(\theta_i-\theta_i^*)^2
$$

  • 其中 $\Omega_i$ 是参数 $\theta_i^*$ 在旧任务上的重要性,$\lambda$ 是权重调节因子。

$$
\Omega_i=\frac{1}{|D|}\sum_{d\in D} \frac{\partial^2\mathcal{L}(d,\theta)}{\partial\theta^2}
$$

  • 其中 $D$ 是数据集,$\mathcal{L}$ 是目标损失函数
  • 详细推导可见终身持续学习-可塑权重巩固(Elastic Weight Consolidation)
  • 总之,在假设各参数相互独立的前提下,这个方法能够有效防止重要参数被大幅度修改,从而减少了灾难性遗忘的概率。
------------- 本文结束 感谢阅读 -------------