Deep Reinforcement Learning from Human Preferences
这篇文章的核心内容是探索通过人类偏好进行深度强化学习(Deep Reinforcement Learning, DRL)。研究的创新点在于:
-
无奖励函数的强化学习:通常情况下,强化学习需要一个明确的奖励函数来指导学习。然而,许多复杂任务的目标难以用奖励函数明确表达。本文提出了一种通过人类对轨迹片段的偏好反馈来学习奖励函数的方法,从而使得算法能够在没有明确奖励函数的情况下,解决复杂的强化学习任务。
-
有效减少人类反馈的需求:传统的强化学习系统需要大量的人类反馈,这在实践中不可行。本文提出的方法显著减少了人类反馈的需求,在某些任务中,仅需1小时的人类反馈就能训练出复杂的行为。
-
灵活性和可扩展性:本文的方法被成功应用于多种复杂的任务,包括Atari游戏和模拟机器人任务,展示了其在不同领域中的灵活性和可扩展性。
重要公式
-
奖励函数估计的损失函数: \(loss(r̂) = -\sum_{(σ_1,σ_2,μ)∈D} μ(1) \log \hat{P}[σ_1 ≻ σ_2] + μ(2) \log \hat{P}[σ_2 ≻ σ_1]\) 这是基于Bradley-Terry模型的损失函数,用于从人类偏好中估计奖励函数。
-
人类偏好概率的估计: \(\hat{P}[σ_1 ≻ σ_2] = \frac{\exp\left(\sum r̂(o^1_t, a^1_t)\right)}{\exp\left(\sum r̂(o^1_t, a^1_t)\right) + \exp\left(\sum r̂(o^2_t, a^2_t)\right)}\) 这表示人类更偏好轨迹片段$σ_1$的概率。
重要图表
-
图1:方法的架构图:
图示展示了奖励预测器如何根据人类反馈来训练,同时代理(agent)通过优化预测的奖励函数来进行决策。
-
图2:MuJoCo模拟机器人任务的结果:
该图显示了在MuJoCo模拟环境中,通过700次人类反馈学习得到的结果,与基于真实奖励函数的强化学习进行对比。
-
图3:Atari游戏的结果: 该图展示了在Atari游戏中,使用人类反馈训练的效果,与传统的强化学习算法进行了对比。
-
图5和图6:算法的消融实验结果: 这些图表展示了在移除某些算法组件后,对MuJoCo和Atari任务的性能影响,强调了算法中各组件的重要性。
通过这些创新点、公式和图表,该研究展示了从人类偏好中学习奖励函数的可能性,并在深度强化学习领域提出了一种能够处理复杂任务的有效方法。
EUREKA
这篇文章介绍了一种名为EUREKA的算法,它利用大型语言模型(LLM)LLM和进化搜索,成功解决了手工设计奖励中的诸多挑战,特别是在高复杂度的强化学习任务中表现优异。它不仅能生成与人类设计不同且更优的奖励,还能通过人类反馈进一步优化奖励函数。
文章的主要贡献和创新点:
-
EUREKA算法:该算法结合了LLM的代码生成能力与进化搜索,自动生成可执行的奖励函数,并通过迭代改进这些奖励,最终超越了专家设计的奖励。
-
复杂任务的解决:EUREKA首次在模拟的Shadow Hand中成功实现了复杂的任务,如快速旋转笔的操作,这是通过手动设计奖励无法实现的。
-
无梯度人类反馈强化学习:EUREKA提出了一种新的无梯度的强化学习方法,通过直接利用人类的文本反馈生成更符合人类期望的奖励函数,而无需更新模型。
进化搜索的主要步骤
EUREKA的进化搜索通过结合大型语言模型(LLM)的代码生成能力和进化算法的优化机制,逐步改进奖励函数。具体过程如下:
-
初始奖励生成: EUREKA首先使用编码LLM(如GPT-4)在给定的环境代码和任务描述的上下文中,生成一组初始的奖励函数代码。生成的奖励函数代码直接从环境的状态和动作变量中提取信息。
公式表示为: \(R_1, ..., R_k \sim \text{LLM}(l, M, \text{prompt})\) 其中,$l$是任务描述,$M$是环境代码,$\text{prompt}$是引导LLM生成代码的提示,$R_1, …, R_k$是生成的奖励函数。
-
奖励评估: 生成的每个奖励函数都通过强化学习算法进行策略训练,得到相应的适应性分数$s_1, …, s_k$。这些分数由适应性函数$F$计算,该函数评估策略的表现。
\[s_i = F(R_i)\] -
奖励反思(Reward Reflection): 在初始评估后,EUREKA使用”奖励反思”来总结策略训练的动态。这一过程会生成一个文本反馈,其中包含每个奖励组件的表现和整体任务的适应性分数。这些信息用于指导LLM生成更好的奖励函数。
反思的内容可能包括:
- 某些奖励组件的幅度过大或过小。
- 某个组件在整个训练过程中几乎没有变化,表明它对学习无效。
-
进化搜索(Evolutionary Search): 基于上一轮中表现最好的奖励函数,EUREKA在LLM的上下文窗口中进行奖励变异和改进。在每一轮迭代中,LLM会基于之前的最佳奖励函数及其反思内容,生成新的候选奖励函数代码。
具体过程为:
- 选择前一轮中表现最好的奖励函数$R_{\text{best}}$及其反思内容。
- 通过LLM生成新的候选奖励函数: \(R_1', ..., R_k' \sim \text{LLM}(l, M, \text{prompt}_{\text{update}})\)
- 评估这些新的奖励函数,选择适应性得分最高的奖励函数进行下一轮迭代。
-
多次迭代与随机重启: 这一进化过程会持续进行多个迭代,EUREKA也会在不同的随机重启下重新开始搜索,以确保找到全局最优的奖励函数。
进化搜索的优点
- 自动化优化:通过进化搜索,EUREKA能够自动发现并优化奖励函数,而不需要人类的手工调整。
- 高效改进:利用”奖励反思”提供的细粒度反馈,EUREKA能够在每次迭代中做出有针对性的改进,使奖励函数更加有效。
- 适应性强:进化搜索能够处理高维复杂任务,尤其是在策略训练初期生成的奖励函数质量较差的情况下,通过多轮优化逐步提高表现。
这个进化搜索机制使得EUREKA能够在多种复杂任务中表现优异,甚至超越人类设计的奖励函数。
重要公式:
-
奖励设计问题的定义: 定义了奖励设计问题(Reward Design Problem, RDP),其形式为一个四元组: \(P = \langle M, R, \pi_M, F \rangle\) 其中,$M$ 是状态空间$S$、动作空间$A$ 和 转移函数$T$ 的世界模型;$R$ 是奖励函数空间;$\pi_M$ 是优化$R$ 的策略;$F$ 是对策略的适应度函数。
-
奖励生成问题: 给定任务描述字符串$l$,奖励生成问题的目标是输出一个奖励函数代码$R$,使得适应度函数$F(\pi_M(R))$ 最大化。
重要图表:
-
图1:EUREKA生成的奖励函数示例:
展示了EUREKA在不同任务和环境中的表现,包括在一个Shadow Hand环境中实现了快速旋转笔的任务。
-
图2:EUREKA算法流程图:
展示了EUREKA如何通过LLM生成奖励函数,并通过进化搜索和奖励反思逐步改进这些奖励。
-
图4:EUREKA与人类设计奖励的对比:
这张图表明,EUREKA在大多数任务中都优于人类设计的奖励,特别是在高维度的灵巧操作任务中表现尤为突出。
-
图5:EUREKA的进化搜索过程:
展示了EUREKA如何在每次迭代中逐步改进其奖励函数,最终超越人类设计的奖励。
-
图6:EUREKA生成的新颖奖励:
图示了EUREKA生成的奖励函数与人类设计奖励的相关性,表明EUREKA能够生成与人类奖励弱相关甚至负相关但表现更好的奖励函数。
Learning Dexterous In-Hand Manipulation
这篇文章《学习灵巧手上操作》主要研究了使用强化学习(Reinforcement Learning, RL)来训练机器人进行复杂的手上操作。以下是文章的总结,特别是其中的创新点、重要公式和图表。
文章的主要创新点:
-
使用强化学习进行灵巧手操作:文章通过强化学习,训练了一个五指人形手在模拟环境中进行物体的重定位操作。这个操作并未依赖于任何人类示范,而是通过多次试验和学习,逐步涌现出类似于人类的手指操作策略,如手指行走(finger gaiting)和多指协调。
-
模拟到现实的转移:尽管训练是在模拟环境中完成的,但通过对环境的广泛随机化,使得在现实物理手上部署这些策略成为可能。文中描述了如何通过随机化物理参数、动作延迟和视觉外观等,成功地将模拟中的策略转移到现实世界中的机器人手上。
-
视觉模型与控制策略的结合:为了使得机器人能在现实环境中使用,文章还训练了一个视觉模型来估计物体的姿态,并将其与控制策略结合,形成闭环控制系统。
重要公式:
-
强化学习问题的定义: 在强化学习的标准形式中,环境由状态集$S$、动作集$A$、初始状态分布$p(s_0)$、奖励函数$r(s, a)$、转移概率$p(s_{t+1}|s_t, a_t)$和折扣因子$\gamma$组成。策略$\pi$映射状态到动作的分布,目标是最大化期望回报$E[R_0|s_0]$,其中回报定义为: \(R_t = \sum_{i=t}^{\infty} \gamma^{i-t} r_i\)
-
PPO算法目标函数: PPO(Proximal Policy Optimization)的目标函数是: \(L^{PPO} = E\left[\min\left(\frac{\pi(a_t|s_t)}{\pi_{old}(a_t|s_t)} A_t^{GAE}, \text{clip}\left(\frac{\pi(a_t|s_t)}{\pi_{old}(a_t|s_t)}, 1-\epsilon, 1+\epsilon\right) A_t^{GAE}\right)\right]\) PPO 算法在 2017 年被提出,PPO 基于 TRPO 的思想,但是其算法实现更加简单。主要思想是通过优化目标函数,同时限制策略更新的幅度,以防止策略在更新过程中发生过大的改变,从而导致不稳定的学习。它通过引入一个截断函数来限制策略变化的范围。
重要图表:
-
图1:灵巧手操控物体的过程:
展示了一个五指机器人手在模拟环境中操控方块的过程,最终成功将物体从初始位置移动到目标位置。
-
图2:系统概述图:
系统的整体架构图,描述了如何通过分布式强化学习训练策略,并将视觉估计与控制策略结合,部署到现实中的五指机器人手上。系统概览。 (a) 使用具有随机参数和外观的大量模拟分布来收集控制策略和基于视觉的姿态估计器的数据。 (b)控制策略从分布式模拟中接收观察到的机器人状态和奖励,并学习使用循环神经网络和强化学习将观察结果映射到动作。 (c)基于视觉的姿态估计器渲染从分布式模拟中收集的场景,并学习使用与控制策略分开训练的卷积神经网络(CNN)从图像中预测对象的姿态。 (d) 为了转移到现实世界,使用 CNN 从 3 个真实摄像机输入中预测物体姿态,使用 3D 运动捕捉系统测量机器人指尖位置,并将这两者传递给控制策略以产生一个动作机器人
-
图4:随机化模拟环境的渲染效果:
展示了模拟环境中的视觉随机化样例,用以训练视觉模型,使其能适应各种可能的现实环境。
-
图5:分布式训练架构:
Rapid 中的分布式训练基础设施,描述了如何通过分布式训练架构大规模并行地训练强化学习策略。各个线程被描绘为蓝色方块。工作计算机随机连接到 Redis 服务器,从中提取新的策略参数并向其发送新的体验。优化器机器为每个 GPU 配备一个 MPI 进程,每个进程都有一个专用的 Redis 服务器。每个进程都有一个 Puller 线程,它将新的经验从 Redis 拉入缓冲区。每个进程还有一个 Stager 线程,用于从缓冲区中采样小批量并将其暂存到 GPU 上。最后,每个优化器线程使用 GPU 对小批量进行优化,然后跨线程累积梯度,并将新参数发送到 Redis 服务器。
-
图8:不同随机化设置下的性能对比:
通过对比不同随机化配置,展示了这些随机化策略对策略迁移到现实中的重要性。