Precise and Dexterous Robotic Manipulation via Human-in-the-Loop Reinforcement Learning(一)
文章概括
引用:
@misc{luo2024hilserl,
title={Precise and Dexterous Robotic Manipulation via Human-in-the-Loop Reinforcement Learning},
author={Jianlan Luo and Charles Xu and Jeffrey Wu and Sergey Levine},
year={2024},
eprint={2410.21845},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
Luo, J., Xu, C., Wu, J. and Levine, S., 2024. Precise and Dexterous Robotic Manipulation via Human-in-the-Loop Reinforcement Learning. arXiv preprint arXiv:2410.21845.
原文: https://arxiv.org/abs/2410.21845
代码、数据和视频:
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
强化学习(RL)在赋予机器人自主获取复杂操作技能方面具有巨大潜力,但在真实世界环境中实现这一潜力仍然充满挑战。我们提出了一种基于视觉的、引入人类反馈的强化学习系统,该系统在一系列灵巧操作任务上展现出了卓越的性能,包括动态操作、精密装配和双臂协调。我们的方法结合了示范学习和人类修正、高效的强化学习算法以及其他系统级设计选择,从而能够在仅1至2.5小时的训练时间内学习出近乎完美的成功率和快速的循环时间。我们证明了该方法在成功率上相较于模仿学习基线和先前的强化学习方法平均提升了2倍,并且执行速度提高了1.8倍。通过大量实验和分析,我们深入探讨了该方法的有效性,展示了它如何学习出稳健且自适应的策略,既可用于反应式控制,也可用于预测性控制策略。我们的结果表明,强化学习确实可以在现实世界中直接学习一系列复杂的基于视觉的操作策略,并且所需的训练时间在实际可接受的范围内。我们希望本研究能够激发新一代的机器人操作技术,为工业应用和研究进展带来益处。视频和代码可在我们项目网站https://hil-serl.github.io/获取。
1. 引言
操控是机器人领域的基础性问题之一,实现在人类水平上的动态、灵巧操控任务一直是该领域的长期追求(Cui and Trinkle, 2021)。强化学习(RL)有望实现机器人自主获取复杂且灵巧的操作技能。通过试错学习,一种有效的强化学习方法原则上应能够获取高度熟练的技能,并且这些技能能够针对具体的物理任务特性进行优化。这不仅可能使其性能超越手工设计的控制器,甚至还能优于人类的遥操作。然而,在真实世界环境中实现这一目标仍然面临挑战,主要包括样本复杂度、假设条件(如准确的奖励函数)以及优化稳定性等问题。强化学习方法已被成功用于仿真训练(Hwangbo et al., 2019; Lee et al., 2020; Chen et al., 2023; Loquercio et al., 2021),以及用于在现有的大规模真实世界数据集上训练,以实现广泛的泛化能力(Kalashnikov et al., 2018; 2021)。此外,它们也被应用于具有手工设计特征或表示的任务,以针对特定任务进行优化(Theodorou et al., 2010; Chebotar et al., 2016)。然而,开发一种通用的、基于视觉的方法,使其能够高效地获取物理上复杂的技能,并且其表现超越模仿学习和手工设计的控制器,仍然相对困难。我们认为,在这一方向上取得基础性进展将能解锁新的机遇,并进一步推动真正高性能的机器人操控策略的发展。
在本文中,我们开发了一种用于基于视觉的操控任务的强化学习(RL)系统,该系统能够学习各种精确且灵巧的机器人技能。我们的系统被命名为人类在环的高效采样机器人强化学习(HIL-SERL),它通过集成多个关键组件来应对前述挑战,从而在真实世界中实现快速且高性能的基于视觉的强化学习。
为了应对优化稳定性问题,我们在策略学习中采用了预训练的视觉骨干网络。为了处理样本复杂度问题,我们使用了一种基于RLPD(Ball et al., 2023)的高效采样的离线策略强化学习算法,该算法还结合了人类的示范与修正。此外,我们设计了一个低级控制器,以确保策略训练期间的安全性。在训练过程中,系统会向人类操作员请求潜在的修正信息,这些修正随后以离线策略的方式用于更新策略。我们发现,这种人类在环的修正机制对于使策略能够从错误中学习并提升性能至关重要,尤其是在本文所研究的那些从零开始学习难度较大的挑战性任务上。
如图1所示,我们的系统能够解决的任务包括:在平底锅中动态翻转物体、从积木塔中抽出Jenga积木、在双臂之间传递物体,以及使用单臂或双臂组装复杂设备,如计算机主板、IKEA货架、汽车仪表盘或正时皮带。这些任务在多个方面都存在重大挑战,包括复杂且精细的动力学、高维状态和动作空间、长时间跨度,或者这些因素的组合。其中一些技能过去被认为无法直接在真实世界中通过强化学习训练,例如许多双臂操作任务,而另一些任务,如正时皮带组装或Jenga积木抽取,在现有机器人方法下几乎难以克服。此外,这些任务需要不同类型的控制策略,例如用于精确操作任务的闭环反应式控制,或用于难以预设的精细操作的开环行为,例如Jenga积木抽取。
然而,也许最令人惊讶的发现是,我们的系统能够在仅1至2.5小时的真实世界训练时间内训练强化学习策略,使其在几乎所有任务上都达到了接近完美的成功率和超越人类的执行速度。我们训练得到的强化学习策略远远优于在相同人类数据(如相同数量的示范或修正集)上训练的模仿学习方法,其成功率平均提高101%,循环执行时间提升1.8倍。这一结果具有重要意义,因为它证明了强化学习确实可以直接在真实世界中学习各种复杂的基于视觉的操作策略,并且训练时间处于可接受的范围内,而这一点在以往的方法中被认为是难以实现的。此外,强化学习的表现远远超越了模仿学习和手工设计控制器,达到了超人水平的性能。
图1:实验任务概览。 本文研究的一部分任务包括从积木塔中抽取Jenga积木、在平底锅中翻转物体,以及组装复杂设备,如正时皮带、汽车仪表盘、计算机主板和IKEA货架。
为了评估我们系统的有效性,我们将其与几种最先进的强化学习(RL)方法进行比较,并通过消融研究来分析每个组件的贡献。实验结果表明,我们的系统不仅在性能上优于相关基线方法,同时也表明,这些令人印象深刻的实验结果确实源于这些组件的精心集成。此外,我们对实验结果进行了全面分析,深入探讨基于强化学习的操控方法的有效性。本分析研究了强化学习为何能够实现近乎完美的成功率,并进一步探讨了强化学习策略的灵活性,即其能否作为一种通用的基于视觉的策略来学习不同类型的控制方式。
总的来说,我们的研究成果表明,在适当的系统级设计选择下,强化学习能够在真实世界中有效地解决各种灵巧且复杂的基于视觉的操控任务。值得注意的是,据我们所知,我们的系统是首个在真实环境中仅通过图像输入实现双臂协调的强化学习系统,并且首次成功完成了Jenga积木抽取和正时皮带组装等任务。此外,我们还提供了对基于强化学习的操控方法的全面分析,深入探讨了其成功的原因,并进一步提出了如何将强化学习扩展到更具挑战性的场景的潜在研究方向。
通过本文的研究成果,我们希望这一工作能够为未来基于学习的机器人操控研究奠定基础,并在长期内促进能够适应不同环境和任务的稳健可部署机器人操控技能的发展,使我们更接近通用机器人操控的目标。
2. 相关工作
所提出的系统使用强化学习(RL)来解决灵巧操控任务,因此我们回顾了与真实世界机器人强化学习方法和系统相关的研究工作,以及其他针对类似灵巧操控任务的方法。
2.1. 真实世界强化学习的算法与系统
真实世界的机器人强化学习(RL)需要具备高效采样的算法,以处理诸如机载感知等高维输入,并支持奖励函数和重置机制的便捷定义。已有多种算法展示了其在真实世界中直接高效学习的能力(Riedmiller et al., 2009; Levine et al., 2016; Luo et al., 2021; Yang et al., 2020; Zhan et al., 2021; Tebbe et al., 2021; Popov et al., 2017; Luo et al., 2019; Zhao et al., 2022; Hu et al., 2024b; Johannink et al., 2019; Hu et al., 2024a; Rajeswaran et al., 2018; Schoettler et al., 2020; Luo et al., 2024a)。这些方法包括基于离线策略的强化学习(off-policy RL)(Kostrikov et al., 2023; Hu et al., 2024b; Luo et al., 2023)、基于模型的强化学习(model-based RL)(Hester and Stone, 2013; Wu et al., 2022; Nagabandi et al., 2019; Rafailov et al., 2021; Luo et al., 2018)以及基于在线策略的强化学习(on-policy RL)(Zhu et al., 2019)。尽管取得了进展,这些方法通常需要较长的训练时间。而我们的系统在更短的训练时间内,在复杂任务上达到了超越人类的性能。
此外,部分研究致力于从原始视觉观测中推断奖励信号,例如通过成功分类器(Fu et al., 2018; Li et al., 2021)、基于基础模型(foundation model)的奖励(Du et al., 2023; Mahmoudieh et al., 2022; Fan et al., 2022)以及基于视频的奖励(Ma et al., 2023b;a)。同时,为了实现自主训练,已有多个研究在无重置(reset-free)学习方面取得算法进展(Gupta et al., 2021; Sharma et al., 2021; Zhu et al., 2020; Xie et al., 2022; Sharma et al., 2023),以减少训练过程中对人类干预的需求。
虽然我们在这些领域并未提出新的算法,但我们的方法框架有效地整合了现有方法。如方法部分所述,在复杂任务中,结合二元分类器奖励与示范学习是行之有效的。
与我们的研究最相关的工作之一是SERL(Luo et al., 2024a),该研究同样提出了一个用于训练强化学习(RL)策略的操控系统。我们的方法与SERL的主要区别在于:我们结合了人类示范和人类修正来训练强化学习策略,而SERL仅依赖于人类示范。尽管这一区别看似细微,但我们的实验结果表明,引入修正机制对于使策略能够从错误中学习并提升性能至关重要,尤其是在那些从零开始学习难度较大的任务上。
此外,SERL主要关注较简单、时间跨度较短的任务,并未涉及双臂协调或动态操控。我们的独特贡献在于:我们的方法能够在广泛的任务中有效学习通用的基于视觉的操控策略,而这些任务的物理特性各不相同,这使得我们的系统与SERL等以往研究在本质上存在根本区别。
2.2. 灵巧机器人操控
对于本文研究的一些任务,已有研究探索了不同的方法。在插入任务中,先前的研究采用了基于模型的方法(Tang et al., 2016; Jin et al., 2021)以及具有被动顺应性的末端执行器工具机制(Morgan* et al., 2021; Su et al., 2022)。这些方法通常依赖于不包含感知能力的基于状态的模型,或需要针对特定任务进行开发,从而限制了它们的鲁棒性和适应性。另一种方法是在多阶段流水线中使用视觉伺服,通过对准机器人手臂与目标物体的位置,然后使用搜索原语进行插入(Spector et al., 2022; Chang et al., 2024; Song et al., 2015)。然而,这些方法仍然面临特征可靠性和对准精度的挑战。
相比之下,我们的方法采用了更加紧密的感知-动作闭环,能够以闭环方式学习任务相关的视觉特征和视觉运动策略,这对于许多反应性高精度任务至关重要。从控制理论的角度来看,该学习策略可被视为**输出反馈控制(output feedback control)**的实例(Astrom and Murray, 2008)。
2.3. 动态操控任务
本文涉及的动态操控任务也受到了一些先前研究的关注。例如,Kormushev et al. (2010) 利用动作捕捉系统和动态运动原语(dynamic motion primitives, Ijspeert et al., 2013)来学习在平底锅中翻转物体。然而,我们的系统直接使用像素级输入,无需依赖高精度的动作捕捉系统,同时在成功率上显著提升。Fazeli et al. (2019) 提出了一种准动态(quasi-dynamic)学习方法,用于从积木塔中推出Jenga积木,而我们的方法则采用鞭击动作(whipping)来动态移除Jenga积木,这一任务更具挑战性,并且需要更加复杂的控制策略。
此外,已有研究探索了柔性物体操控,如电缆布线(Luo et al., 2024b; Jin et al., 2019)、轨迹跟踪或解缠绕(Viswanath et al., 2023; Shivakumar et al., 2023; Viswanath et al., 2022)。然而,本文研究的正时皮带装配任务要求双臂在操作过程中进行反应性且精确的协调,以动态调整张紧器(tensioner)和正时皮带(timing belt)。这一任务在本质上不同于以往的电缆操控研究,并且更加具有挑战性。
3. 人类在环的强化学习系统
在本节中,我们详细描述本文所使用的方法。有关所述方法的动画演示,请参阅相关视频。
3.1. 预备知识与问题定义
机器人强化学习任务可以通过马尔可夫决策过程(MDP) 来定义,即 M = { S , A , ρ , P , r , γ } \mathcal{M}=\{\mathcal{S},\mathcal{A},\rho,\mathcal{P},r,\gamma\} M={S,A,ρ,P,r,γ},其中:
- s ∈ S s\in\mathcal{S} s∈S 表示状态观测值(例如,图像与机器人自身的本体状态信息的组合);
- a ∈ A a\in\mathcal{A} a∈A 表示动作(例如,期望的末端执行器运动);
- ρ ( s 0 ) \rho(s_0) ρ(s0) 是初始状态的分布;
- P \mathcal{P} P 表示未知且可能是随机的状态转移概率分布,该分布依赖于系统的动力学特性;
- r : S × A → R r:\mathcal{S}\times\mathcal{A}\to\mathbb{R} r:S×A→R 是奖励函数,用于编码任务目标。
最优策略
π
\pi
π 是能够最大化累积期望奖励的策略,即:
E
[
∑
t
=
0
H
γ
t
r
(
s
t
,
a
t
)
]
E\left[\sum_{t=0}^{H}\gamma^t r(s_t,a_t)\right]
E[t=0∑Hγtr(st,at)]
其中,期望是针对初始状态分布、状态转移概率和策略
π
\pi
π 进行计算的。在实际应用中,策略
π
(
a
∣
s
)
\pi(a|s)
π(a∣s) 通常被建模为由神经网络参数化的高斯分布。
为了在机器人任务中实现强化学习算法,我们必须精心选择合适的状态观测空间
S
\mathcal{S}
S和动作空间
A
\mathcal{A}
A。这涉及到选择合适的摄像头配置、本体状态信息以及相应的机器人低级控制器。在我们所有的任务中,我们使用稀疏奖励函数,该函数基于训练好的分类器对任务是否成功做出二元决策。在这种设置下,优化目标:
E
[
∑
t
=
0
H
γ
t
r
(
s
t
,
a
t
)
]
E\left[\sum_{t=0}^{H}\gamma^t r(s_t,a_t)\right]
E[t=0∑Hγtr(st,at)]
旨在最大化每条轨迹的成功概率。理想情况下,当训练收敛时,策略应当在每次尝试中都能成功完成任务。
具体而言,我们所采用的核心强化学习算法是RLPD(Ball et al., 2023),我们选择该算法的原因是其高效的样本利用能力以及对先验数据的兼容性。在每个训练步骤中,RLPD 从先验数据和在线策略数据中均匀采样,形成训练批次(Song et al., 2023)。然后,它基于各自的损失函数梯度更新参数化Q函数 Q ϕ ( s , a ) Q_{\phi}(s,a) Qϕ(s,a)和策略 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)的参数。
L
Q
(
ϕ
)
=
E
s
,
a
,
s
′
[
(
Q
ϕ
(
s
,
a
)
−
(
r
(
s
,
a
)
+
γ
E
a
′
∼
π
θ
[
Q
ϕ
ˉ
(
s
′
,
a
′
)
]
)
)
2
]
(1)
\mathcal{L}_\mathcal{Q}(\phi)=\mathbb{E}_{s,a,s'}\left[\left(\mathcal{Q}_{\phi}(s,a)-(r(s,a)+\gamma\mathbb{E}_{a'\sim\pi_{\theta}}[\mathcal{Q}_{\bar{\phi}}(s',a')])\right)^2\right]\tag{1}
LQ(ϕ)=Es,a,s′[(Qϕ(s,a)−(r(s,a)+γEa′∼πθ[Qϕˉ(s′,a′)]))2](1)
L
π
(
θ
)
=
−
E
s
[
E
a
∼
π
θ
(
a
)
[
Q
ϕ
(
s
,
a
)
]
+
α
H
(
π
θ
(
⋅
∣
s
)
)
]
(2)
\mathcal{L}_{\pi}(\theta)=-\mathbb{E}_{s}\left[\mathbb{E}_{a\sim\pi_{\theta}(a)}[\mathcal{Q}_{\phi}(s,a)]+\alpha \mathcal{H}(\pi_{\theta}(\cdot|s))\right]\tag{2}
Lπ(θ)=−Es[Ea∼πθ(a)[Qϕ(s,a)]+αH(πθ(⋅∣s))](2)
其中, Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ是一个目标网络(Mnih et al., 2013),而策略的损失函数通过引入熵正则化来促进探索,正则化权重 α \alpha α会根据情况自适应调整(Haarnoja et al., 2018)。
1. RLPD 算法详解与逐步推导
1.1 RLPD 的核心思想
RLPD (Reinforcement Learning with Prior Data) 是一种结合离线强化学习(Offline RL) 和 在线强化学习(Online RL) 优势的算法,其核心特点包括:
- 高效样本利用:通过混合先验数据(历史经验)和在线策略数据(当前策略交互数据),提升训练效率。
- 兼容先验数据:无需严格区分离线与在线阶段,直接利用先验数据加速学习。
- 稳定优化:通过目标网络、熵正则化等技术避免 Q 值过估计和策略早熟收敛。
1.2 RLPD 算法框架
(1) 数据采样机制
- 混合采样:每个训练批次(Batch)中,50% 数据来自先验数据集 D prior \mathcal{D}_{\text{prior}} Dprior(如专家演示、历史经验),50% 数据来自在线策略 π θ \pi_\theta πθ 与环境交互的实时数据 D online \mathcal{D}_{\text{online}} Donline。
- 优势:
- 先验数据提供高质量轨迹,加速策略初始化。
- 在线数据动态适应环境变化,避免分布偏移(Distribution Shift)。
示例 假设训练机械臂抓取任务:
- 先验数据:包含专家成功抓取的 1000 条轨迹(状态-动作-奖励序列)。
- 在线数据:当前策略在训练中尝试抓取生成的 100 条轨迹。
- 训练批次:随机选取 50 条先验数据和 50 条在线数据合并。
(2) Q 函数更新(公式 1) L Q ( ϕ ) = E s , a , s ′ [ ( Q ϕ ( s , a ) − ( r ( s , a ) + γ E a ′ ∼ π θ [ Q ϕ ˉ ( s ′ , a ′ ) ] ) ) 2 ] \mathcal{L}_\mathcal{Q}(\phi)=\mathbb{E}_{s,a,s'}\left[\left(\mathcal{Q}_{\phi}(s,a)-(r(s,a)+\gamma\mathbb{E}_{a'\sim\pi_{\theta}}[\mathcal{Q}_{\bar{\phi}}(s',a')])\right)^2\right] LQ(ϕ)=Es,a,s′[(Qϕ(s,a)−(r(s,a)+γEa′∼πθ[Qϕˉ(s′,a′)]))2]
逐步推导
- 贝尔曼方程基础: 目标 Q 值应满足贝尔曼方程: Q ∗ ( s , a ) = r ( s , a ) + γ E s ′ , a ′ [ Q ∗ ( s ′ , a ′ ) ] \mathcal{Q}^*(s,a) = r(s,a) + \gamma \mathbb{E}_{s',a'}[\mathcal{Q}^*(s',a')] Q∗(s,a)=r(s,a)+γEs′,a′[Q∗(s′,a′)]
- 引入目标网络 Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ: 为避免 Q 值估计的不稳定性,使用目标网络(参数 ϕ ˉ \bar{\phi} ϕˉ 缓慢更新)计算未来 Q 值: 目标值 = r ( s , a ) + γ Q ϕ ˉ ( s ′ , a ′ ) , a ′ ∼ π θ ( ⋅ ∣ s ′ ) \text{目标值} = r(s,a) + \gamma \mathcal{Q}_{\bar{\phi}}(s',a'), \quad a' \sim \pi_\theta(\cdot|s') 目标值=r(s,a)+γQϕˉ(s′,a′),a′∼πθ(⋅∣s′)
- 均方误差损失: 最小化当前 Q 值 Q ϕ ( s , a ) \mathcal{Q}_\phi(s,a) Qϕ(s,a) 与目标值的差异: L Q ( ϕ ) = E s , a , s ′ [ ( Q ϕ ( s , a ) − 目标值 ) 2 ] \mathcal{L}_\mathcal{Q}(\phi) = \mathbb{E}_{s,a,s'} \left[ \left( \mathcal{Q}_\phi(s,a) - \text{目标值} \right)^2 \right] LQ(ϕ)=Es,a,s′[(Qϕ(s,a)−目标值)2]
示例
- 状态 s s s:机械臂当前位置。
- 动作 a a a:关节扭矩指令。
- 目标值计算:
- 当前奖励 r ( s , a ) = − 0.1 r(s,a) = -0.1 r(s,a)=−0.1(未抓取成功)。
- 下一状态 s ′ s' s′ 的 Q 值 Q ϕ ˉ ( s ′ , a ′ ) = 5.0 \mathcal{Q}_{\bar{\phi}}(s',a') = 5.0 Qϕˉ(s′,a′)=5.0。
- 目标值 = − 0.1 + 0.99 × 5.0 = 4.85 = -0.1 + 0.99 \times 5.0 = 4.85 =−0.1+0.99×5.0=4.85。
- 损失计算:若 Q ϕ ( s , a ) = 4.5 \mathcal{Q}_\phi(s,a) = 4.5 Qϕ(s,a)=4.5,则单个样本损失 ( 4.5 − 4.85 ) 2 = 0.1225 (4.5 - 4.85)^2 = 0.1225 (4.5−4.85)2=0.1225。
1. 基础设定
假设你是一个备考的学生:
- 状态 (s):你当前的知识水平(比如数学基础、英语词汇量等)。
- 动作 (a):你采取的学习行为(如刷数学题、背单词等)。
- 奖励 (r):每次学习后的即时反馈(如模拟卷得分)。
- Q 值:评估在某个知识状态下采取某种学习行为的「长期收益」。
2. Q 函数的核心思想 Q 函数要回答的问题是:
“在我当前的知识水平(s)下,采取某个学习行为(a),最终能在考试中获得的总收益是多少?”
这个总收益包括:
- 即时奖励:本次学习后的模拟卷得分。
- 未来奖励:因为这次学习提升的知识水平,对后续学习的正向影响。
3. 分步详解 Q 函数更新
步骤 1:理解「贝尔曼方程」—— 长期收益的计算逻辑 贝尔曼方程的核心公式: Q ∗ ( s , a ) = r ( s , a ) + γ ⋅ E [ Q ∗ ( s ′ , a ′ ) ] \mathcal{Q}^*(s,a) = r(s,a) + \gamma \cdot \mathbb{E}[\mathcal{Q}^*(s',a')] Q∗(s,a)=r(s,a)+γ⋅E[Q∗(s′,a′)]
- 符号解释:
- Q ∗ ( s , a ) \mathcal{Q}^*(s,a) Q∗(s,a):在状态 s s s 采取动作 a a a 的最优长期收益。
- r ( s , a ) r(s,a) r(s,a):即时奖励(本次学习的直接收益)。
- γ \gamma γ(折扣因子,如 0.9):衡量未来收益的重要性(越接近1越重视长期)。
- E [ Q ∗ ( s ′ , a ′ ) ] \mathbb{E}[\mathcal{Q}^*(s',a')] E[Q∗(s′,a′)]:下一状态 s ′ s' s′ 的预期收益。
生活化解释:
- 如果你今天刷了 10 道数学题(动作 a a a),虽然暂时头昏脑涨(即时奖励 r = − 1 r = -1 r=−1),但数学水平提升(转移到新状态 s ′ s' s′),预期未来考试能多得 10 分(未来收益 γ ⋅ E [ Q ∗ ( s ′ , a ′ ) ] = 0.9 × 10 = 9 \gamma \cdot \mathbb{E}[\mathcal{Q}^*(s',a')] = 0.9 \times 10 = 9 γ⋅E[Q∗(s′,a′)]=0.9×10=9)。
- 总长期收益: Q ∗ = − 1 + 9 = 8 \mathcal{Q}^* = -1 + 9 = 8 Q∗=−1+9=8。
步骤 2:为什么需要「目标网络」?
直接使用当前 Q 网络估计未来收益会导致「左右手互搏」问题:
- 问题:假设你每次评估学习效果时,都用自己的当前水平做标准。但你的水平在不断变化,导致评估标准不稳定。
- 解决方案:引入一个更新较慢的「目标网络」 Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ,相当于请一个经验丰富的老师定期给你出评估题,保证标准相对稳定。
公式中的体现: 目标值 = r ( s , a ) + γ ⋅ Q ϕ ˉ ( s ′ , a ′ ) \text{目标值} = r(s,a) + \gamma \cdot \mathcal{Q}_{\bar{\phi}}(s',a') 目标值=r(s,a)+γ⋅Qϕˉ(s′,a′)- 目标网络 Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ:参数 ϕ ˉ \bar{\phi} ϕˉ 每隔一段时间从当前网络 ϕ \phi ϕ 复制而来(如每 100 步更新一次)。
步骤 3:损失函数的意义 —— 缩小「预测」与「目标」的差距
Q 函数的学习目标是:让当前网络 Q ϕ \mathcal{Q}_\phi Qϕ 的预测值尽量接近目标值。这通过最小化均方误差实现: L Q ( ϕ ) = E [ ( Q ϕ ( s , a ) − 目标值 ) 2 ] \mathcal{L}_\mathcal{Q}(\phi) = \mathbb{E}\left[ \left( \mathcal{Q}_\phi(s,a) - \text{目标值} \right)^2 \right] LQ(ϕ)=E[(Qϕ(s,a)−目标值)2]
类比:
- 你每次模拟考试(预测值)后,老师会根据标准答案(目标值)给你打分。你的目标是调整学习方法(更新 ϕ \phi ϕ),让模拟分尽量接近老师给的标准分。
4. 示例再解析:机械臂抓取任务
场景设定
- 状态 s s s:机械臂的关节角度、目标物体位置。
- 动作 a a a:施加的关节扭矩。
- 奖励 r ( s , a ) r(s,a) r(s,a):
- 成功抓取:+10
- 抓取失败但靠近:-0.1
- 碰撞:-5
单步更新过程
- 当前状态 s s s:机械臂接近物体但未抓取。
- 动作 a a a:尝试抓取。
- 即时奖励 r ( s , a ) = − 0.1 r(s,a) = -0.1 r(s,a)=−0.1(未成功但靠近)。
- 转移至新状态 s ′ s' s′:物体被轻微移动。
- 目标网络计算未来收益:
- 目标网络 Q ϕ ˉ ( s ′ , a ′ ) \mathcal{Q}_{\bar{\phi}}(s',a') Qϕˉ(s′,a′) 评估在 s ′ s' s′ 下所有可能动作 a ′ a' a′ 的收益期望。
- 假设 Q ϕ ˉ ( s ′ , a ′ ) = 5.0 \mathcal{Q}_{\bar{\phi}}(s',a') = 5.0 Qϕˉ(s′,a′)=5.0。
- 计算目标值: 目标值 = r ( s , a ) + γ ⋅ Q ϕ ˉ ( s ′ , a ′ ) = − 0.1 + 0.99 × 5.0 = 4.85 \text{目标值} = r(s,a) + \gamma \cdot \mathcal{Q}_{\bar{\phi}}(s',a') = -0.1 + 0.99 \times 5.0 = 4.85 目标值=r(s,a)+γ⋅Qϕˉ(s′,a′)=−0.1+0.99×5.0=4.85
- 当前网络预测值: Q ϕ ( s , a ) = 4.5 \mathcal{Q}_\phi(s,a) = 4.5 Qϕ(s,a)=4.5
- 损失计算: L = ( 4.5 − 4.85 ) 2 = 0.1225 \mathcal{L} = (4.5 - 4.85)^2 = 0.1225 L=(4.5−4.85)2=0.1225
- 反向传播:通过梯度下降调整 ϕ \phi ϕ,使 Q ϕ ( s , a ) \mathcal{Q}_\phi(s,a) Qϕ(s,a) 向 4.85 靠近。
5. 关键点总结
概念 生活化类比 数学表达 作用 Q 值 学习行为的长期考试收益 Q ϕ ( s , a ) \mathcal{Q}_\phi(s,a) Qϕ(s,a) 评估动作的长期价值 目标值 老师给出的标准答案评分 r ( s , a ) + γ ⋅ Q ϕ ˉ ( s ′ , a ′ ) r(s,a) + \gamma \cdot \mathcal{Q}_{\bar{\phi}}(s',a') r(s,a)+γ⋅Qϕˉ(s′,a′) 提供稳定学习目标 目标网络 定期更新的考试评分标准 Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ(参数 ϕ ˉ \bar{\phi} ϕˉ 缓慢更新) 稳定训练过程 6. 常见疑问解答
Q1:为什么用「均方误差」而不是绝对值?
- 数学上,平方误差对较大偏差更敏感,能加速远离目标的预测值收敛,同时便于求导。
Q2:折扣因子 γ \gamma γ 设为 0.99 还是 0.9 有什么区别?
- γ = 0.99 \gamma = 0.99 γ=0.99:更重视长期收益(如下棋时考虑未来10步)。
- γ = 0.9 \gamma = 0.9 γ=0.9:更关注近期收益(如快速抓取任务)。
- 示例中 γ = 0.99 \gamma = 0.99 γ=0.99 是为了强调未来收益的重要性。
Q3:如果目标网络不更新会怎样?
- 目标值会始终基于初始随机网络的预测,导致 Q 值无法收敛到真实值,类似用过时的教材备考。
7. 再举一个例子:游戏中的Q学习
场景:超级马里奥中控制马里奥跳跃躲避敌人。
- 状态 s s s:当前屏幕画面(敌人位置、平台布局)。
- 动作 a a a:跳跃、前进、后退。
- 奖励 r r r:
- 存活:+0.1
- 踩中敌人:+5
- 掉落悬崖:-10
Q 更新过程:
- 马里奥在状态 s s s 选择跳跃(动作 a a a),躲过敌人,获得 r = + 0.1 r = +0.1 r=+0.1。
- 进入新状态 s ′ s' s′(敌人被避开)。
- 目标网络评估 s ′ s' s′ 下所有动作的 Q 值,假设最大 Q ϕ ˉ ( s ′ , a ′ ) = 8.0 \mathcal{Q}_{\bar{\phi}}(s',a') = 8.0 Qϕˉ(s′,a′)=8.0。
- 目标值 = 0.1 + 0.9 × 8.0 = 7.3 = 0.1 + 0.9 \times 8.0 = 7.3 =0.1+0.9×8.0=7.3。
- 若当前网络预测 Q ϕ ( s , a ) = 6.5 \mathcal{Q}_\phi(s,a) = 6.5 Qϕ(s,a)=6.5,则损失 = ( 6.5 − 7.3 ) 2 = 0.64 = (6.5 - 7.3)^2 = 0.64 =(6.5−7.3)2=0.64。
- 更新网络参数 ϕ \phi ϕ,使预测值更接近 7.3。
(3) 策略更新(公式 2) L π ( θ ) = − E s [ E a ∼ π θ ( a ) [ Q ϕ ( s , a ) ] + α H ( π θ ( ⋅ ∣ s ) ) ] \mathcal{L}_{\pi}(\theta)=-\mathbb{E}_{s}\left[\mathbb{E}_{a\sim\pi_{\theta}(a)}[\mathcal{Q}_{\phi}(s,a)]+\alpha \mathcal{H}(\pi_{\theta}(\cdot|s))\right] Lπ(θ)=−Es[Ea∼πθ(a)[Qϕ(s,a)]+αH(πθ(⋅∣s))]
逐步推导
- 最大化 Q 值期望: 策略 π θ \pi_\theta πθ 应选择使 Q ϕ ( s , a ) \mathcal{Q}_\phi(s,a) Qϕ(s,a) 最大的动作: max θ E a ∼ π θ [ Q ϕ ( s , a ) ] \max_\theta \mathbb{E}_{a \sim \pi_\theta} [\mathcal{Q}_\phi(s,a)] θmaxEa∼πθ[Qϕ(s,a)]
- 熵正则化: 引入熵项 H ( π θ ( ⋅ ∣ s ) ) = − ∑ a π θ ( a ∣ s ) log π θ ( a ∣ s ) \mathcal{H}(\pi_\theta(\cdot|s)) = -\sum_a \pi_\theta(a|s) \log \pi_\theta(a|s) H(πθ(⋅∣s))=−∑aπθ(a∣s)logπθ(a∣s) 鼓励探索,防止策略过早收敛到局部最优: max θ E a ∼ π θ [ Q ϕ ( s , a ) ] + α H ( π θ ( ⋅ ∣ s ) ) \max_\theta \mathbb{E}_{a \sim \pi_\theta} [\mathcal{Q}_\phi(s,a)] + \alpha \mathcal{H}(\pi_\theta(\cdot|s)) θmaxEa∼πθ[Qϕ(s,a)]+αH(πθ(⋅∣s))
- 转化为损失函数: 将最大化问题转化为最小化负值: L π ( θ ) = − E s [ E a ∼ π θ [ Q ϕ ( s , a ) ] + α H ( π θ ( ⋅ ∣ s ) ) ] \mathcal{L}_\pi(\theta) = -\mathbb{E}_s \left[ \mathbb{E}_{a \sim \pi_\theta} [\mathcal{Q}_\phi(s,a)] + \alpha \mathcal{H}(\pi_\theta(\cdot|s)) \right] Lπ(θ)=−Es[Ea∼πθ[Qϕ(s,a)]+αH(πθ(⋅∣s))]
示例
- 状态 s s s:机械臂接近目标物体。
- 策略输出:
- π θ ( ⋅ ∣ s ) = [ 0.7 , 0.3 ] \pi_\theta(\cdot|s) = [0.7, 0.3] πθ(⋅∣s)=[0.7,0.3](抓取 vs 调整位置)。
- 熵 H = − ( 0.7 log 0.7 + 0.3 log 0.3 ) ≈ 0.61 \mathcal{H} = -(0.7 \log 0.7 + 0.3 \log 0.3) \approx 0.61 H=−(0.7log0.7+0.3log0.3)≈0.61。
- Q 值期望:若 Q ϕ ( s , 抓取 ) = 8.0 \mathcal{Q}_\phi(s, \text{抓取}) = 8.0 Qϕ(s,抓取)=8.0, Q ϕ ( s , 调整 ) = 5.0 \mathcal{Q}_\phi(s, \text{调整}) = 5.0 Qϕ(s,调整)=5.0,则期望 = 0.7 × 8.0 + 0.3 × 5.0 = 7.1 = 0.7 \times 8.0 + 0.3 \times 5.0 = 7.1 =0.7×8.0+0.3×5.0=7.1。
- 损失计算:若 α = 0.2 \alpha = 0.2 α=0.2,则损失 = − ( 7.1 + 0.2 × 0.61 ) ≈ − 7.22 = -(7.1 + 0.2 \times 0.61) \approx -7.22 =−(7.1+0.2×0.61)≈−7.22。
(4) 自适应熵正则化权重 α \alpha α
- 目标熵:预设策略熵的理想值 H target \mathcal{H}_{\text{target}} Htarget(如 H target = − log ( 1 / 动作数 ) \mathcal{H}_{\text{target}} = -\log(1/\text{动作数}) Htarget=−log(1/动作数))。
- 自适应调整:通过优化以下损失动态调整 α \alpha α: L ( α ) = E s [ α ( H ( π θ ( ⋅ ∣ s ) ) − H target ) ] \mathcal{L}(\alpha) = \mathbb{E}_s \left[ \alpha (\mathcal{H}(\pi_\theta(\cdot|s)) - \mathcal{H}_{\text{target}}) \right] L(α)=Es[α(H(πθ(⋅∣s))−Htarget)]
- 效果:
- 若当前熵 < H target < \mathcal{H}_{\text{target}} <Htarget,增大 α \alpha α 以加强探索。
- 若熵 > H target > \mathcal{H}_{\text{target}} >Htarget,减小 α \alpha α 以专注利用。
1.3 RLPD 的训练流程
- 初始化:
- Q 网络 Q ϕ \mathcal{Q}_\phi Qϕ、策略网络 π θ \pi_\theta πθ、目标网络 Q ϕ ˉ \mathcal{Q}_{\bar{\phi}} Qϕˉ( ϕ ˉ ← ϕ \bar{\phi} \leftarrow \phi ϕˉ←ϕ)。
- 先验数据集 D prior \mathcal{D}_{\text{prior}} Dprior 和在线缓冲区 D online \mathcal{D}_{\text{online}} Donline。
- 循环训练:
- 数据收集:策略 π θ \pi_\theta πθ 与环境交互,数据存入 D online \mathcal{D}_{\text{online}} Donline。
- 混合采样:从 D prior \mathcal{D}_{\text{prior}} Dprior 和 D online \mathcal{D}_{\text{online}} Donline 各采样 50% 数据组成批次。
- Q 函数更新:按公式 (1) 计算梯度并更新 ϕ \phi ϕ。
- 策略更新:按公式 (2) 计算梯度并更新 θ \theta θ。
- 目标网络更新:缓慢更新 ϕ ˉ ← τ ϕ + ( 1 − τ ) ϕ ˉ \bar{\phi} \leftarrow \tau \phi + (1-\tau)\bar{\phi} ϕˉ←τϕ+(1−τ)ϕˉ( τ ≪ 1 \tau \ll 1 τ≪1)。
- 调整 α \alpha α:根据熵偏差更新 α \alpha α。
2. 什么是 RLPD?
2.1 RLPD 的定义与特点
RLPD 是由 Ball 等人在 2023 年提出的强化学习算法,其全称为 Reinforcement Learning with Prior Data。核心创新点包括:
- 混合数据训练:同时利用先验数据和在线数据,提升样本效率。
- 熵正则化策略优化:通过自适应熵项平衡探索与利用。
- 目标网络稳定训练:减少 Q 值估计的波动。
2.2 RLPD vs 其他算法
算法 数据使用 探索机制 适用场景 DQN 纯在线数据 ε-贪心 离散动作空间(如游戏) SAC 纯在线数据 熵正则化 连续动作空间(如机器人控制) CQL 纯离线数据 保守 Q 值估计 离线强化学习 RLPD 混合先验与在线数据 熵正则化 + 自适应α 在线+离线混合任务 2.3 示例:自动驾驶策略训练
- 先验数据:人类驾驶员的 10,000 条安全驾驶记录(状态:车速、路况;动作:转向、刹车)。
- 在线数据:当前策略在模拟器中尝试驾驶生成的 500 条记录(含探索性动作)。
- RLPD 训练:
- 每个批次混合 50% 人类数据和 50% 模拟数据。
- Q 网络学习人类驾驶的高价值动作(如平稳转向)。
- 策略网络在熵正则化下探索新的驾驶策略(如紧急避障)。
- 自适应 α \alpha α 在训练初期鼓励探索,后期专注利用。
总结
- RLPD 通过混合先验与在线数据、熵正则化策略优化和目标网络技术,实现了高效稳定的强化学习训练。
- 关键公式:
- Q 函数损失(公式 1)确保值估计贴近贝尔曼方程。
- 策略损失(公式 2)平衡 Q 值最大化和探索性。
- 应用场景:机器人控制、自动驾驶、游戏 AI 等需结合历史经验与在线学习的任务。
3.2. 系统概览
我们的系统由三个主要组件组成:执行器进程(actor process)、学习器进程(learner process)以及位于学习器进程中的回放缓冲区(replay buffer),所有组件都以分布式方式运行,如图2所示。
执行器进程通过在机器人上执行当前策略与环境交互,并将数据回传至回放缓冲区。环境被设计为模块化,可灵活配置各种设备。这包括支持多摄像头的集成、输入设备(如用于远程操作的SpaceMouse)的连接,以及控制不同类型控制器的可变数量的机器人手臂的能力。需要实现一个奖励函数来评估任务的成功与否,该函数通过人类示范离线训练完成。在执行器进程中,人类可以通过SpaceMouse干预机器人,从而接管强化学习策略对机器人的控制。
我们使用了两个回放缓冲区:
- 示范缓冲区(demo buffer):用于存储离线的人类示范数据,通常数量在20到30之间;
- RL缓冲区(RL buffer):用于存储在线策略生成的数据。
学习器进程从示范缓冲区和RL回放缓冲区中均匀采样数据,使用RLPD优化策略,并定期将更新后的策略发送至执行器进程。在本节的剩余部分,我们将详细介绍针对每个组件所做的设计选择。
图2:HIL-SERL 概览
该图展示了HIL-SERL的架构,该架构由三个主要组件组成:执行器进程(actor process)、学习器进程(learner process)和回放缓冲区(replay buffers)。这些组件通过异步通信促进高效的数据流。
执行器进程从学习器进程接收更新后的策略参数,与环境交互,并将收集的交互数据发送至回放缓冲区。环境设计为模块化,支持多种外部设备和多个机器人手臂。人类操作员可以通过远程操作工具(如SpaceMouse)进行干预。
学习器进程从两个回放缓冲区中均匀采样数据,并使用RLPD更新策略。当需要夹爪控制时,还会通过DQN额外训练一个抓取评价器(grasp critic)。
3.3. 系统设计选择
所提出系统的样本效率至关重要,因为每分钟的训练数据采集都会带来一定的成本。因此,训练时间必须保持在实际可接受的范围内,尤其是在处理如图像等高维输入时。此外,下游的机器人系统必须能够适配强化学习策略,以确保学习过程的顺畅和高效。例如,实际的机器人低级控制器需要经过精心设计,特别是对于大多数需要精准接触的任务中,机器人会与环境中的物体发生物理交互。
这个控制器不仅需要具备足够的精确性,还必须足够安全,以便在训练过程中强化学习算法能够通过随机动作进行探索。因此,为了开发一个能够在真实世界中执行高效样本策略学习的系统,我们做出了以下设计选择。
3.3.1. 预训练的视觉骨干网络
为了提高训练过程的效率,我们使用了预训练的视觉骨干网络来处理图像数据。这种方法在计算机视觉领域已成为常见实践,因为它能够增强模型的鲁棒性和泛化能力(Radford et al., 2021; Dosovitskiy et al., 2021; Kolesnikov et al., 2020);而在强化学习中,这种方法还带来了额外的好处,例如优化稳定性和探索效率(Yang and Wang, 2019; Du et al., 2020),使其在真实世界机器人强化学习训练中尤为有利。
我们的神经网络架构(如图2所示)使用相同的预训练视觉骨干网络处理来自多台摄像头的图像。具体来说,我们使用了ResNet-10模型(He et al., 2015),该模型在ImageNet数据集上进行过预训练(Deng et al., 2009),以生成输出嵌入。这些嵌入随后被连接起来,并进一步与处理后的本体感知信息结合,从而促进了更高效、更有效的学习过程。
1. 什么是预训练的视觉骨干网络? 预训练的视觉骨干网络(Pretrained Visual Backbone Network)指的是在大规模数据集(如ImageNet)上经过预训练的深度神经网络,这些网络专门用于从图像中提取有意义的特征。它们作为 “骨干” 部分(Backbone),为下游任务(如目标检测、图像分类、机器人视觉等)提供高质量的特征表示,而无需从零开始训练整个网络。
预训练的视觉骨干网络就是“使用以前训练好的模型权重,不重新训练,只保留该模型的特征提取部分然后和别的东西进行嫁接融合”。
为什么要使用预训练的骨干网络? 在深度学习领域,从零开始训练一个视觉模型通常需要:
- 大量的数据(例如,ImageNet包含1400多万张标注的图片)
- 庞大的计算资源(通常需要多张GPU或TPU进行长时间训练)
- 长时间的收敛过程(训练深度神经网络可能需要数天甚至数周)
相比之下,使用预训练的骨干网络可以:
- 加速训练:预训练模型已经学到了通用的视觉特征,如边缘、纹理、形状等,下游任务只需要微调(Fine-tuning)或在其基础上添加新的层。
- 提高模型的泛化能力:在大规模数据集上训练的骨干网络通常能捕捉到更鲁棒的特征,即使在较小的数据集上也能表现良好。
- 减少计算成本:相比从头训练整个模型,使用预训练的骨干网络能显著降低计算资源的需求。
举例:预训练的 ResNet-10 文中提到使用 ResNet-10 作为视觉骨干网络。ResNet(Residual Network)是一种深度神经网络架构,由何恺明等人在2015年提出(He et al., 2015)。它的核心思想是残差学习,通过引入跳跃连接(skip connections)来缓解深度神经网络训练中的梯度消失问题。
- ResNet-10 是 ResNet 系列中较浅的版本,适用于计算资源有限的任务。例如,在机器人强化学习中,计算通常是实时进行的,因此较浅的网络结构可以提高计算效率,同时保持较好的特征提取能力。
- 预训练方式:ResNet-10 在 ImageNet 数据集(Deng et al., 2009)上进行了训练,能够识别 1000 个类别的物体,如猫、狗、汽车等。在新的任务(如机器人感知)中,我们可以利用它提取低级和中级视觉特征,而不需要从头训练整个网络。
2. 预训练视觉骨干网络的应用
(1) 在计算机视觉中的应用 在计算机视觉任务中,预训练的视觉骨干网络已成为标准做法,主要用于:
- 图像分类(Image Classification):如 ResNet、VGG、EfficientNet 等模型被用于分类任务,能够在小数据集上快速适配。
- 目标检测(Object Detection):如 Faster R-CNN、YOLO 等框架通常使用 ResNet、MobileNet 作为特征提取器。
- 图像分割(Image Segmentation):如 U-Net、DeepLabV3+ 依赖预训练的骨干网络来提取像素级特征。
举例 假设你要训练一个猫狗分类器:
- 方案 1(从头训练):你需要从零开始训练一个深度网络,可能需要数十万张猫狗图片,以及大量计算资源。
- 方案 2(使用预训练模型):你可以使用 ResNet-10(在 ImageNet 预训练),然后只需在猫狗数据集上进行微调(Fine-tuning),只训练最后几层。这样可以大大减少训练时间,同时提高模型性能。
(2) 在强化学习中的应用 强化学习(Reinforcement Learning, RL)不同于传统的计算机视觉任务,它需要一个智能体在环境中进行交互,通过试错学习最优策略。预训练的视觉骨干网络在强化学习中具有以下优势:
- 优化稳定性(Optimization Stability):深度强化学习通常需要从像素级图像中学习策略,预训练网络可以减少梯度震荡,使训练更稳定(Yang and Wang, 2019)。
- 提高探索效率(Exploration Efficiency):强化学习中的探索(Exploration)通常需要大量的数据。预训练的视觉模型能更快提取关键特征,减少随机探索的成本(Du et al., 2020)。
- 适用于机器人学习:在真实世界机器人应用中,数据收集成本高,使用预训练的视觉模型能显著减少对大规模训练数据的需求。
举例 假设我们要训练一个自动驾驶机器人:
- 方案 1(无预训练):机器人从随机像素输入开始学习驾驶,需要数百万次训练迭代才能学到有效的特征(如车道、行人、交通标志)。
- 方案 2(使用预训练):如果使用 ResNet-10 作为视觉骨干网络,机器人可以直接利用已学到的视觉特征(如边缘、物体轮廓),然后仅需学习决策层,大大提高学习效率。
3. 论文中神经网络架构的介绍 文中提到,预训练的 ResNet-10 处理来自多个摄像头的图像,并与本体感知信息结合:
- 来自多个摄像头的图像:在机器人学习中,我们通常会使用多个摄像头(如前置摄像头、深度摄像头、侧视摄像头等),这些图像经过 ResNet-10 编码后生成高维嵌入(Embeddings)。
- 嵌入连接(Concatenation):不同摄像头的图像嵌入会被拼接(concatenated),形成一个联合表示,以提供更全面的环境理解。
- 与本体感知信息结合:机器人除了视觉输入,还可能依赖本体感知(Proprioception),即自身状态的反馈,如:
- 机械臂的角度、速度
- 机器人底盘的位置
- 触觉传感器的信息 这些信息与视觉嵌入结合后,形成最终的输入向量,供强化学习的策略网络使用。
总结
- 预训练的视觉骨干网络是指在大规模数据集上预训练的神经网络,用于从图像中提取特征,常用于计算机视觉和强化学习任务。
- 使用预训练的 ResNet-10 可以加速学习,提高稳定性,并减少对大规模数据的依赖,特别适用于机器人强化学习。
- 在强化学习中,视觉骨干网络可以增强探索效率,并结合本体感知信息,提高模型的决策能力。
- 多摄像头融合:论文使用多个摄像头数据,通过 ResNet-10 处理后进行嵌入拼接,并结合机器人自身状态信息,最终输入强化学习策略网络。
3.3.2. 奖励函数
强化学习系统的一个关键部分是奖励函数,它用于指导学习过程并评估策略的质量。尽管已有研究利用奖励塑形(reward shaping)来加速学习过程(Ng et al., 1999; Florensa et al., 2018; 2017),但这一过程通常特定于任务,且设计起来耗时复杂。在一些复杂任务中,进行奖励塑形甚至是不现实的。我们发现,结合稀疏奖励函数、人类示范和人类修正,为各种任务提供了一种简单且有效的设置。
具体而言,我们收集离线数据并为每个任务训练一个二元分类器,该分类器仅在任务完成时授予正奖励,否则奖励为零。
3.3.3. 下游机器人系统
为了适应策略学习过程,我们对下游机器人系统做出了一些特别重要的设计选择。
- 空间泛化:
为了促进空间上的泛化,我们在一个相对坐标系中表示机器人的本体状态,从而实现以自我为中心的表述。具体而言,在每个训练回合开始时,机器人的末端执行器的姿态会在工作空间内的预定义区域中随机化。机器人的本体感知信息是相对于末端执行器初始姿态的坐标系表达的,而策略的动作输出是相对于当前末端执行器坐标系的。这一过程在相对坐标系中模拟了目标物体的移动。因此,即使在训练过程中目标物体发生移动,或者在某些实验中目标被干扰,策略仍然可以成功完成任务。
1. 空间泛化(Spatial Generalization)
💡 核心问题 在机器人学习过程中,如果机器人总是在固定的初始位置训练,它可能会过拟合到这一特定的初始条件。当任务环境发生变化(例如,目标物体的位置变化)时,机器人可能无法成功完成任务。✅ 解决方案:相对坐标系(Self-centered Representation) 为了增强机器人的空间泛化能力,我们使用相对坐标系(relative coordinate system),使机器人始终以自我为中心来表示其状态,而不是依赖于全局坐标。
📌 具体实现步骤
随机化初始位置
- 在每个训练回合开始时,机器人末端执行器的姿态(位置、方向)会在预定义的工作空间范围内随机化。
- 这意味着机器人不会总是从同一个固定位置开始执行任务,而是从不同的随机位置开始。
本体感知信息基于相对坐标系表达
- 机器人不会使用世界坐标系(global coordinate system),而是基于自身的相对坐标系来感知自身状态。
- 例如:
- 如果机器人手臂的末端执行器初始位置是 ( x 0 , y 0 , z 0 ) (x_0, y_0, z_0) (x0,y0,z0),在接下来的动作中,它的坐标不会直接基于世界坐标系,而是基于它的初始位置来表示,如 ( Δ x , Δ y , Δ z ) (\Delta x, \Delta y, \Delta z) (Δx,Δy,Δz)。
策略输出基于当前末端执行器坐标系
- 机器人的强化学习策略不会输出绝对动作,而是输出相对末端执行器当前状态的增量。
- 例如:
- 如果策略决定让末端执行器向前移动 5cm,移动指令是 相对于当前末端执行器的位置 计算的,而不是相对于固定的世界坐标。
如何应对目标物体的移动?
- 由于机器人使用相对坐标系表示自己的位置,它可以轻松适应目标物体的移动。
- 例如:
- 目标物体向右移动了 10cm,机器人不需要重新计算整个环境的坐标变换,而是继续以自身相对坐标更新执行策略。
🔹 举例
- 机器人抓取任务
- 传统方法:机器人在训练时总是从 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 位置开始执行抓取任务。如果测试时目标物体偏移,机器人可能抓不到。
- 空间泛化方法:机器人在训练时,每次开始的位置都是随机的,并且使用相对坐标来感知目标物体的位置。因此,即使目标物体在测试时随机变化,机器人仍然能够泛化,并找到最佳抓取策略。
🎯 关键结论
✅ 使用相对坐标系 可以让机器人更好地适应目标物体的移动,避免对特定坐标的过拟合。
✅ 随机化初始位置 可以让机器人学会更强的泛化能力,而不是仅仅记住固定的动作模式。
- 接触任务:
对于涉及接触的任务,我们在实时层中使用带有参考限制的阻抗控制器(impedance controller),以确保安全性(Luo et al., 2024a)。
2. 接触任务(Contact Tasks)
💡 核心问题 在涉及接触(contact)的任务中,机器人需要和环境进行物理交互(例如,插入、推压、抓取、打磨等)。如果没有适当的控制,机器人可能会:
- 用力过猛,导致损坏目标物体或自身结构。
- 控制不稳定,导致机器人在接触任务中振动或无法完成任务。
✅ 解决方案:阻抗控制(Impedance Control) 阻抗控制(Impedance Control)是一种力/位置混合控制策略,它让机器人在接触物体时可以适应外界环境的变化,而不是刚性地执行一个固定路径。
📌 具体实现步骤
设定阻抗参数
- 机器人末端执行器的阻抗(Impedance)可以通过刚度(stiffness)、阻尼(damping)、惯性(inertia) 参数来调整:
F = K ( x d − x ) + D ( x ˙ d − x ˙ ) + M ( x ¨ d − x ¨ ) F = K(x_d - x) + D(\dot{x}_d - \dot{x}) + M(\ddot{x}_d - \ddot{x}) F=K(xd−x)+D(x˙d−x˙)+M(x¨d−x¨)
- K K K:刚度(控制力的大小)
- D D D:阻尼(防止震荡)
- M M M:惯性(控制加速度)
实时力反馈
- 机器人通过力传感器检测接触力,并根据当前力值调整执行器的动作。
在实时层(low-level controller)实现
- 低级控制层负责执行阻抗控制指令,确保机器人在执行接触任务时不发生危险动作。
🔹 举例
- 机器人打磨任务
- 如果机器人直接沿着固定轨迹打磨,不考虑接触力,它可能会把工件磨坏。
- 使用阻抗控制后,机器人可以根据材料的不同自动调整打磨压力,确保既不会损坏材料,又能均匀打磨。
🎯 关键结论
✅ 阻抗控制使机器人在接触任务中具有柔顺性,可以适应外界环境的变化。
✅ 通过实时调整力反馈,机器人可以保证安全性,不会损坏目标物体或自身。
- 动态任务:
对于动态任务,我们直接在末端执行器坐标系中发送前馈力矩指令以加速机器人手臂。尽管我们没有在加速度上进行闭环控制,但我们发现这种简单的开环控制对于所研究的任务来说已经足够。
3. 动态任务(Dynamic Tasks)
💡 核心问题 在某些任务中,机器人需要高速运动,例如:
- 抓住快速移动的物体(如空中抛接)
- 快速摆动机械臂(如乒乓球机器人)
这些任务的难点在于:
- 机器人需要在短时间内施加合适的力矩以完成加速运动。
- 不能依赖闭环控制,因为延迟可能会影响任务完成度。
✅ 解决方案:前馈力矩指令(Feedforward Torque Commands)
直接在末端执行器坐标系中发送力矩指令
- 机器人不会等到“感知反馈”后才调整力矩,而是基于任务目标直接计算并发送力矩指令。
不进行加速度闭环控制
- 在某些任务中,完全依赖闭环控制可能会导致延迟,因此我们使用开环控制,直接计算并发送加速指令。
🔹 举例
- 机器人接住抛来的球
- 机器人不能等到球接近后再计算轨迹,而是基于物理模拟提前预测球的落点,并提前发送力矩指令,确保机械臂能及时到达指定位置。
🎯 关键结论 ✅ 前馈力矩控制适用于高速运动任务,可以减少控制延迟。 ✅ 虽然是开环控制,但在合适的任务下,这种方法可以实现足够的精度。
总结
概念 解决问题 关键技术 应用场景 空间泛化 适应不同初始位置 相对坐标表示 目标移动、不确定环境 接触任务 安全接触,柔顺控制 阻抗控制 抓取、插入、打磨 动态任务 高速运动,减少延迟 前馈力矩 物体抛接、轨迹跟踪
关于观测表示以及控制器设计的更多细节,请参阅补充材料。
3.3.4. 夹爪控制
对于涉及夹爪控制的任务,我们采用了一个独立的评价网络(critic network)来评估离散的抓取动作。尽管这种方法起初看起来可能会增加额外的负担或显得不太常规,但实际上它在实践中被证明是非常有效的,尤其是在结合人类示范和修正时。在本文涉及的复杂任务中,夹爪动作的离散特性使得用连续分布进行逼近更加困难。通过使用离散动作,我们简化了训练过程,同时提高了强化学习系统的整体有效性。
具体而言,我们在这些任务中解决了两个独立的马尔可夫决策过程(MDP),即 M 1 = { S , A 1 , ρ 1 , P 1 , r , γ } \mathcal{M}_1=\{\mathcal{S},\mathcal{A}_1,\rho_1,\mathcal{P}_1,r,\gamma\} M1={S,A1,ρ1,P1,r,γ}和 M 2 = { S , A 2 , ρ 2 , P 2 , r , γ } \mathcal{M}_2=\{\mathcal{S},\mathcal{A}_2,\rho_2,\mathcal{P}_2,r,\gamma\} M2={S,A2,ρ2,P2,r,γ},其中 A 1 \mathcal{A}_1 A1和 A 2 \mathcal{A}_2 A2分别是连续和离散的动作空间。它们都接收来自环境的相同状态观测信息,例如图像、本体感知、夹爪状态等。离散动作空间 A 2 \mathcal{A}_2 A2包括所有可能的离散动作。例如,对于单个夹爪,这些动作为“打开”、“关闭”和“保持不变”;如果涉及两个夹爪,动作空间则扩展为 3 2 = 9 3^2=9 32=9种组合,涵盖了每个夹爪可能采取的所有动作。
对于 M 2 \mathcal{M}_2 M2的评价网络更新,遵循标准的DQN方法(Mnih et al., 2013),并通过引入目标网络(target network)来稳定训练,如下所示:
L ( θ ) = E s , a , s ′ [ ( r + γ Q θ ′ ( s ′ , arg max a ′ Q θ ( s ′ , a ′ ) ) − Q θ ( s , a ) ) 2 ] (3) \mathcal{L}(\theta)=\mathbb{E}_{s,a,s'}\left[\left(r+\gamma \mathcal{Q}_{\theta'}(s',\arg\max_{a'}\mathcal{Q}_{\theta}(s',a'))-\mathcal{Q}_{\theta}(s,a)\right)^2\right]\tag{3} L(θ)=Es,a,s′[(r+γQθ′(s′,arga′maxQθ(s′,a′))−Qθ(s,a))2](3)
其中, θ ′ \theta' θ′是目标网络的参数,可以通过对当前网络参数进行Polyak平均化获得(van Hasselt et al., 2015)。
在训练或推理过程中,我们首先从 M 1 \mathcal{M}_1 M1的策略中查询连续动作,然后从 M 2 \mathcal{M}_2 M2的评价网络中通过对输出取 arg max \arg\max argmax查询离散动作;随后,将组合后的动作应用到机器人上。
1. 为什么要使用独立的评价网络来评估夹爪动作?
💡 核心问题 在标准的机器人强化学习中,机器人的大部分运动控制(如机械臂的平移、旋转)通常是连续动作,因为机器人可以在连续的空间中移动。然而,夹爪的控制通常是离散的:
- “打开”
- “关闭”
- “保持不变”
如果直接用连续动作空间来逼近夹爪的状态,会导致:
- 计算开销较大,训练难度增加。
- 强化学习算法难以收敛,尤其是在复杂的任务中。
✅ 解决方案:使用一个独立的评价网络(Critic Network)来评估离散的夹爪动作
- 这样可以避免使用连续概率分布来逼近离散动作,提高学习效率。
- 这种方法在结合人类示范和修正时特别有效,因为人类的抓取动作通常也是基于离散决策(打开、关闭)。
2. 双马尔可夫决策过程(Two MDPs)
为了在强化学习中处理连续的机械臂控制和离散的夹爪控制,本文引入了两个独立的马尔可夫决策过程(MDPs),分别处理:
- M 1 \mathcal{M}_1 M1:连续动作空间(机械臂运动)
- M 2 \mathcal{M}_2 M2:离散动作空间(夹爪控制)
📌 定义 马尔可夫决策过程(MDP)通常表示为: M = { S , A , ρ , P , r , γ } \mathcal{M} = \{\mathcal{S}, \mathcal{A}, \rho, \mathcal{P}, r, \gamma\} M={S,A,ρ,P,r,γ} 其中:
- S \mathcal{S} S:状态空间(state space),包含机器人观察到的图像、本体感知、夹爪状态等。
- A \mathcal{A} A:动作空间(action space),分为连续动作空间 A 1 \mathcal{A}_1 A1(机械臂)和离散动作空间 A 2 \mathcal{A}_2 A2(夹爪)。
- ρ \rho ρ:初始状态分布(initial state distribution)。
- P \mathcal{P} P:状态转移概率(state transition function)。
- r r r:奖励函数(reward function)。
- γ \gamma γ:折扣因子(discount factor),控制长期奖励的权重。
📝 具体实现
- 机械臂的运动是连续的,因此其策略采用标准的连续强化学习方法(如 DDPG、PPO)。
- 夹爪的动作是离散的,因此它的策略采用Q-learning 变种,如 DQN。
3. 夹爪的离散动作空间
📌 动作空间 A 2 \mathcal{A}_2 A2 在夹爪任务中,可能的动作包括:
- 单个夹爪:
{"打开", "关闭", "保持不变"}
→ 3 种动作- 双夹爪:
3^2 = 9
种可能的组合动作,例如:
- (打开, 打开)
- (打开, 关闭)
- (关闭, 关闭)
- (保持, 关闭)
- …
为什么使用离散动作空间?
- 夹爪的操作通常是有限状态的,不需要连续的值来表示。
- 使用离散动作可以避免连续动作逼近的误差,提高策略学习的稳定性。
🔹 举例 假设机器人有一个夹爪,在强化学习过程中,它会接收到不同的环境状态,并做出离散决策:
- 状态( s s s):目标物体是否可抓取?
- 可能的动作( a a a):
- 如果目标物体在可抓取区域 → 选择“关闭”
- 如果目标物体不在可抓取区域 → 选择“保持不变”
- 如果目标物体已抓住 → 选择“打开”
- 奖励函数( r r r):
- 如果成功抓取目标物体:+10
- 如果失败:-1
- 如果保持原状态:0
4. 评价网络(Critic Network)及目标网络(Target Network)
📌 DQN 目标函数 DQN(Deep Q-Network)用于估计离散动作的 Q 值,并通过目标网络稳定训练: L ( θ ) = E s , a , s ′ [ ( r + γ Q θ ′ ( s ′ , arg max a ′ Q θ ( s ′ , a ′ ) ) − Q θ ( s , a ) ) 2 ] \mathcal{L}(\theta) = \mathbb{E}_{s,a,s'} \left[\left(r + \gamma \mathcal{Q}_{\theta'}(s', \arg\max_{a'} \mathcal{Q}_{\theta}(s', a')) - \mathcal{Q}_{\theta}(s,a) \right)^2 \right] L(θ)=Es,a,s′[(r+γQθ′(s′,arga′maxQθ(s′,a′))−Qθ(s,a))2] 其中:
- Q θ ( s , a ) \mathcal{Q}_{\theta}(s, a) Qθ(s,a):当前 Q 网络的 Q 值估计。
- Q θ ′ ( s ′ , a ′ ) \mathcal{Q}_{\theta'}(s', a') Qθ′(s′,a′):目标网络的 Q 值估计(稳定训练)。
- θ ′ \theta' θ′ 通过Polyak 平均(soft update)更新: θ ′ ← τ θ + ( 1 − τ ) θ ′ \theta' \leftarrow \tau \theta + (1-\tau) \theta' θ′←τθ+(1−τ)θ′
🔹 目标网络的作用 由于 Q-learning 存在训练不稳定的问题,目标网络使用延迟更新策略来缓解训练过程的震荡,使得训练更加稳定。
5. 训练和推理过程 在强化学习的训练和推理过程中,我们需要同时考虑连续动作 M 1 \mathcal{M}_1 M1 和离散动作 M 2 \mathcal{M}_2 M2,两者结合如下:
- 首先,使用连续控制策略 M 1 \mathcal{M}_1 M1 计算机械臂的运动(如移动到目标物体上方)。
- 然后,用评价网络 M 2 \mathcal{M}_2 M2 计算夹爪的离散动作:
- arg max \arg\max argmax 选择 Q 值最高的动作,即最优的夹爪开闭策略。
- 最后,将连续动作和离散动作组合,执行到机器人上。
6. 总结
概念 作用 关键方法 独立评价网络(Critic Network) 评估夹爪的离散动作,提高训练稳定性 DQN 双 MDP 结构 处理连续机械臂控制和离散夹爪控制 M 1 \mathcal{M}_1 M1(连续), M 2 \mathcal{M}_2 M2(离散) 离散动作空间 A 2 \mathcal{A}_2 A2 适用于夹爪(打开、关闭、保持) 3 种单夹爪动作,9 种双夹爪动作 目标网络(Target Network) 增强 Q-learning 训练稳定性 Polyak 平均更新 ✅ 采用双 MDP 结构,可以同时学习连续控制和离散控制,提高强化学习的稳定性和泛化能力。 ✅ DQN 目标网络可以稳定
Q-learning,提高夹爪控制的准确性。
3.4. 人类在环的强化学习
在完成系统级设计选择后,我们现在描述用于加速学习过程的人类在环机制。从强化学习理论文献中可以明确得知,学习最优策略的样本复杂度与状态空间和动作空间的基数以及任务的时间跨度紧密相关(Jin et al., 2018; 2020; Azar et al., 2012; Kearns and Singh, 1998),前提是有适当的探索策略。这些因素共同决定了可以解决的任务复杂度的“上界”。具体而言,状态/动作空间的规模、任务时间跨度或两者的组合的增加,会导致学习最优策略所需样本数量成比例地上升;最终超过某个阈值,使得在真实世界中训练强化学习策略变得不切实际。
为了应对真实世界机器人强化学习训练中的这一挑战,我们引入了人类在环反馈机制,以指导学习过程并帮助策略更高效地探索。具体来说,在训练过程中,人类操作员会监督机器人并在必要时提供修正动作(如图2所示)。对于从时间步 t 0 t_0 t0到 t N t_N tN的一个自主回合轨迹,人类可以在任意时间步 t i t_i ti(其中 t 0 ≤ t i < t N t_0\leq t_i<t_N t0≤ti<tN)进行干预。在干预期间,人类最多可以控制机器人 N N N个时间步。在单个轨迹中可能会发生多次干预,如图2中的红色段所示。
当人类干预时,他们的动作 a i t v a_{itv} aitv会被应用于机器人,而不是策略的动作 a R L a_{{RL}} aRL。我们将干预数据存储在示范数据缓冲区和强化学习数据缓冲区中。然而,我们仅将策略的转换(即干预前后的状态和动作)添加到强化学习缓冲区中。这种方法在提高策略训练效率方面已被证明是有效的。
这种干预在以下情况下尤为重要:当策略将机器人引导到不可恢复或不理想的状态时,或当机器人陷入局部最优状态而在没有人类帮助的情况下需要大量时间才能克服时。这一过程类似于HG-DAgger(Kelly et al., 2018),在人类接管机器人控制以在策略表现不佳时收集数据的机制上有所借鉴;但我们的方法不同的是,这些数据被用于通过强化学习而非监督学习来优化策略,类似于Luo et al. (2023)。在我们的设置中,人类操作员使用SpaceMouse三维鼠标向机器人提供修正动作。
在训练过程的初始阶段,人类会更频繁地干预以提供修正动作,并随着策略的改进逐渐减少干预的频率。根据我们的经验,当人类操作员在必要时提供具体的修正,而在其他情况下让机器人自行探索时,策略的改进速度会更快。
1. 什么是“人类在环强化学习”?
人类在环强化学习(Human-in-the-loop Reinforcement Learning, HITL-RL) 是指在强化学习(RL)训练过程中,人类能够实时干预机器人,提供示范和修正,从而加速学习并避免不必要的失败。这种方法被广泛应用于机器人控制、自动驾驶、游戏 AI 等领域。💡 为什么需要人类在环? 强化学习在真实世界机器人中的主要挑战:
样本复杂度高:
- 状态空间、动作空间、任务时间跨度增大会导致学习最优策略所需的样本数量指数级增长(Jin et al., 2018; 2020)。
- 在物理世界中采集如此多的数据既昂贵又耗时。
探索效率低:
- 机器人强化学习依赖于“试错”来探索环境,这可能导致大量低效、甚至危险的探索行为。
- 例如,一个机械臂在学习抓取时,可能会多次失败、掉落物体甚至损坏自身。
可能陷入局部最优:
- 机器人可能学会了一种“次优”策略(例如,总是从特定角度抓取某个物体),但没有探索到真正的最优策略。
- 需要人类提供额外示范来跳出局部最优。
✅ 解决方案:人类实时干预
人类监督训练过程
- 在强化学习的训练过程中,人类可以实时观察机器人执行任务。
- 如果机器人犯了错误或陷入局部最优状态,人类可以干预并提供正确的动作指令。
人类提供修正动作
- 当机器人在时间步 t i t_i ti 进入错误状态时,人类可以接管控制,执行一个更优的动作 a i t v a_{itv} aitv。
- 机器人执行 a i t v a_{itv} aitv,而不是原始策略的动作 a R L a_{RL} aRL。
存储和利用人类示范数据
- 这些人类干预的数据会被存储到示范数据缓冲区(用于改进策略)。
- 经过强化学习更新后,策略的质量逐渐提高,人类干预的频率会逐渐减少。
2. 人类干预的数据存储及其工作流程解析
📌 2.1 为什么要存储干预数据?
“我们将干预数据存储在示范数据缓冲区和强化学习数据缓冲区中”
在强化学习中,数据存储和利用是关键。人类的干预数据需要被存储,并以不同的方式被利用:
🔹 两个数据缓冲区
缓冲区 存储内容 作用 示范数据缓冲区(Demonstration Buffer) 人类提供的干预数据(状态 s s s,人类修正的动作 a i t v a_{itv} aitv,奖励 r r r,下一个状态 s ′ s' s′) 用于增强策略的经验,使机器人学会正确的行为 强化学习数据缓冲区(RL Buffer) 机器人策略的执行数据(状态 s s s,机器人策略动作 a R L a_{RL} aRL,奖励 r r r,下一个状态 s ′ s' s′) 用于标准强化学习更新 📌 2.2 干预数据的存储方式 人类的干预数据被存储在两个不同的缓冲区:
- 示范数据缓冲区:存储人类示范的数据,以后可以用作行为克隆(Behavior Cloning, BC)或离线强化学习(Offline RL)。
- 强化学习数据缓冲区:用于标准的 Q-learning 或策略梯度算法。
举例
- 假设强化学习的轨迹如下(时间步 t 0 t_0 t0 到 t N t_N tN):
- 机器人尝试执行抓取任务,执行策略输出的动作 a R L a_{RL} aRL。
- 机器人在 t i t_i ti 进入错误状态(例如,手爪错过了目标)。
- 人类介入,执行动作 a i t v a_{itv} aitv(例如,调整手爪的角度)。
- 存储数据:
- ( s i , a i t v , r i , s i + 1 ) (s_i, a_{itv}, r_i, s_{i+1}) (si,aitv,ri,si+1) 存入示范数据缓冲区。
- ( s i − 1 , a R L , r i − 1 , s i ) (s_{i-1}, a_{RL}, r_{i-1}, s_i) (si−1,aRL,ri−1,si) 继续存入强化学习缓冲区。
- 机器人继续执行策略,直到完成整个回合。
📌 2.3 “仅将策略的转换添加到强化学习缓冲区”
“然而,我们仅将策略的转换(即干预前后的状态和动作)添加到强化学习缓冲区中。”
这句话的意思是:
- 机器人强化学习数据缓冲区不存储人类执行的动作,而只存储机器人执行的动作(即策略 a R L a_{RL} aRL 产生的转换)。
- 人类执行的干预动作 a i t v a_{itv} aitv 只存入示范数据缓冲区,不直接影响标准强化学习更新。
🔹 为什么这样做? 强化学习的目标是让机器人通过自己的策略学习最优行为,而不是直接模仿人类。因此:
- 示范数据缓冲区用于初始化策略(例如,行为克隆)。
- 强化学习缓冲区仅用于机器人自己探索的经验。
- 这样可以避免强化学习完全依赖人类,而是让策略逐渐从示范中学习,再通过 RL 改进。
3. 相关算法:HG-DAgger(Human-Guided Dataset Aggregation)
本文的方法类似于 HG-DAgger(Kelly et al., 2018),但不同之处在于:
- HG-DAgger 主要用于监督学习,机器人直接模仿人类示范。
- 本文方法用于强化学习,人类示范只是为了加速策略学习,而不是直接监督。
HG-DAgger 的流程
- 机器人使用初始策略执行任务。
- 如果机器人犯错,人类接管,并提供正确的动作。
- 机器人存储人类示范数据,并更新自己的策略。
- 随着时间推移,人类干预减少,机器人依赖强化学习优化策略。
🔹 关键区别
- 本文的方法不会直接用人类示范数据训练策略,而是用 RL 进行优化。
- 这避免了机器人过度依赖人类,而是让策略真正学会如何自主决策。
4. 总结
核心概念 解释 人类在环(HITL) 人类在训练过程中可以实时干预机器人,提供修正动作,加速学习。 干预数据存储 干预数据存储在示范数据缓冲区和强化学习缓冲区,分别用于示范学习和强化学习。 示范数据缓冲区 存储人类执行的动作 a i t v a_{itv} aitv,用于未来的示范学习(如行为克隆)。 强化学习缓冲区 仅存储机器人执行的策略 a R L a_{RL} aRL 及其转换,以进行标准强化学习更新。 策略优化 机器人先利用人类示范进行初始训练,然后通过强化学习不断改进。 渐进式减少人类干预 训练初期人类干预较多,随着策略优化,人类干预减少。 ✅ 采用这种方法,强化学习可以在真实世界环境中更高效、更安全地学习最优策略。 🚀
3.5. 训练过程
为了阐明我们系统的训练过程并帮助读者重现实验结果,我们提供了每个实验步骤的详细说明:
首先,我们选择最适合任务的摄像头。腕部摄像头由于提供了以自我为中心的视角,特别有助于策略的空间泛化。然而,如果单靠腕部摄像头无法提供对环境的全局视图,我们还会放置若干侧面摄像头。对于所有摄像头,我们进行图像裁剪以聚焦于感兴趣的区域,并将图像调整为128×128大小,以便神经网络处理。
接下来,我们收集数据以训练奖励分类器,这是定义指导学习过程的奖励函数的关键步骤。通常,我们通过远程操作机器人执行任务,收集200个正样本和1000个负样本。这大约相当于10条人类轨迹,假设每条轨迹耗时约10秒。根据我们的数据收集流程(详见补充代码),通常需要大约5分钟来完成这些数据的采集。此外,为了处理奖励分类器可能存在的假阴性和假阳性问题,我们可能会收集额外的数据。经过训练的奖励分类器通常在评估数据集上的准确率超过95%。
随后,我们收集20-30条人类演示轨迹完成任务,并将这些数据用于初始化离线的示范回放缓冲区。对于每个任务,我们要么编写脚本让机器人执行任务重置动作,要么让人类操作员在每条轨迹开始时手动重置任务,例如在USB拾取插入任务中。
最后,我们开始策略训练过程。在此阶段,如果有必要,人类可以对策略进行干预,直到策略收敛。需要特别注意的是,应避免持续提供长时间的稀疏干预以完成任务。这种干预策略会导致价值函数的过高估计,特别是在训练过程的早期阶段,这可能会导致训练动态的不稳定性。