连续时间拟合值迭代用于鲁棒策略
1. 引言
在机器人控制中,获取最大化奖励的最优控制输入是一个关键问题。解决哈密顿-雅可比-贝尔曼(HJB)方程是实现这一目标的一种方法,因为它表达了最优性的充分必要条件。HJB方程的解给出了最优价值函数,该函数可以用于检索每个状态下的最优行动。然而,求解HJB方程的传统方法通常依赖于离散网格上的偏微分方程求解器,这在连续时间强化学习问题中显得不切实际。为了解决这一问题,研究人员提出了使用机器学习工具集中的黑箱函数近似和回归技术,通过随机采样的数据来解决HJB方程。
本文提出了一种新的方法——连续拟合值迭代(cFVI)和鲁棒拟合值迭代(rFVI),通过值迭代解决HJB和HJI微分方程。这些算法适用于连续状态和动作空间,无需基于网格的采样。与以往方法不同,本文的方法扩展了最优策略的推导,适用于更广泛的奖励函数类别,并引入了最优对手的概念。此外,本文还使用值迭代而不是回归技术来解决这些方程,从而获得更可靠的优化结果。
2. 算法概述
2.1 连续拟合值迭代(cFVI)
cFVI是一种基于值迭代的算法,用于解决连续状态和动作的HJB问题。该算法利用了控制仿射动态和可分离奖励的特点,以封闭形式获得最优策略。具体来说,cFVI使用深度网络作为价值函数近似,并通过值迭代逐步优化价值函数。由于其解析解的存在,cFVI可以高效地解决HJB方程,而不需要在每一步计算最优动作,这在离散动作中是难以实现的。
2.2 鲁棒拟合值迭代(rFVI)
rFVI与cFVI类似,但解决了哈密顿-雅可比-艾萨克斯(HJI)方程。HJI方程引入了一个额外的对手,试图最小化奖励。因此,rFVI获得的策略和价值函数对对手的干扰具有鲁棒性。这种最坏情况的优化方法在模拟到现实的转移实验中表现尤为出色,因为对手的存在模拟了环境参数的变化,从而提高了策略的鲁棒性。
3. 推导过程
3.1 最优策略推导
为了有效地解决HJB和HJI方程,必须有一种有效的方法来解决关于动作的最大化问题。在离散动作的情况下,可以通过评估每个动作并选择最高价值的动作来解决这个优化问题。然而,在连续动作的情况下,无法评估每个动作,数值解决优化问题在每个状态下计算量过大。因此,需要一个解析解来解决优化问题。
定理 4.1
如果动态是控制仿射的(公式4.6),奖励与状态和动作是可分离的(公式4.5),并且动作成本
g
是正定的且严格凸的,那么连续时间最优策略描述如下:
[ \pi^ (x) = \nabla \tilde{g}_c(B(x)^\top \nabla_x V^ ) ]
其中
$\tilde{g}$
是
$g$
的凸共轭,而
$\nabla_x V^*$
是当前价值函数
$V^*$
相对于系统状态的雅可比。
证明:
1. 从HJB方程开始,并代入控制仿射动态,得到:
[ u^ = \arg \max_u u^\top B^\top \nabla_x V^ - g_c(u) ]
-
由于
$g_c$是严格凸的,因此$\nabla g_c(u) = w$是可逆的,即$u = [\nabla g_c]^{-1}(w) = \nabla \tilde{g}_c(w)$,其中$\tilde{g}_c$是$g_c$的凸共轭。 -
最优动作由解析解给出:
[ u^ = \nabla \tilde{g}_c(B^\top \nabla_x V^ ) ]
3.2 最优对手推导
为了有效地解决HJI方程,不仅需要解析形式的最优策略,还需要最优对手。最优对手试图最小化奖励,从而使得策略对环境变化具有鲁棒性。
定理 4.2
如果动态是控制仿射的(公式4.6),奖励与状态和动作是可分离的(公式4.5),并且动作成本
$g$
是正定的且严格凸的,那么连续时间的最优策略和最优对手可以闭式计算得出。
[ \pi^
(x) = \nabla \tilde{g}(B(x)^\top \nabla_x V^
) ]
[ \xi_i^
= -h (\partial f_c(\cdot) / \partial \xi_i^\top \nabla_x V^
) ]
对于状态对手
$\xi_x$
:
[ \xi_x^ = -\alpha \frac{\nabla_x V^ }{|\nabla_x V^*|^2} ]
对于动作对手
$\xi_u$
:
[ \xi_u^ = -\alpha \frac{B(x)^\top \nabla_x V^ }{|B(x)^\top \nabla_x V^*|^2} ]
4. 实验结果
为了验证cFVI和rFVI的有效性,本文进行了多项非线性控制实验,应用cFVI和rFVI来控制欠驱动系统。模拟到现实实验通过将学习到的策略转移到物理系统来测试策略的鲁棒性,并将其性能与标准的深度强化学习方法进行比较。
4.1 控制性能
三个动力系统(摆杆车、Furuta摆锤和卡特波尔)的学习曲线如图4.2所示。定量比较总结在表4.3中。DP cFVI、DP rFVI和RTDP cFVI获得了执行摆动并平衡摆锤的策略。只有RTDP rFVI没有获得成功的策略。
| 算法 | $\mu$ | $\theta$ | 模拟摆杆车成功 (%) | 模拟摆杆车回报 ($\mu \pm 2\sigma$) | 模拟Furuta摆锤成功 (%) | 模拟Furuta摆锤回报 ($\mu \pm 2\sigma$) |
|---|---|---|---|---|---|---|
| DP rFVI | $\delta(\theta)$ | 100.0 | -032.7 ± 000.3 | 100.0 | -041.3 ± 010.8 | |
| DP cFVI | $\delta(\theta)$ | 100.0 | -030.5 ± 000.8 | 100.0 | -027.7 ± 001.6 | |
| RTDP cFVI | $U$ | $\delta(\theta)$ | 100.0 | -031.1 ± 001.4 | 100.0 | -040.1 ± 002.7 |
| SAC | $N$ | $U(\theta)$ | 100.0 | -031.1 ± 000.1 | 100.0 | -029.3 ± 001.5 |
4.2 策略差异
cFVI和rFVI获得的策略之间存在显著差异。主要区别在于rFVI收敛到一个更刚性的策略,即在系统状态偏离最优轨迹时,rFVI施加更高的动作。这种行为是由于对手的存在,对手频繁地扰动系统状态以离开最优轨迹。例如,图4.1展示了rFVI和cFVI在Furuta摆锤上的价值函数和策略的最优解。cFVI策略的颜色渐变较为平滑,而rFVI策略的颜色渐变在最大动作之间变化突然,接近bang-bang控制。
graph TD;
A[开始] --> B[初始化价值函数];
B --> C[计算目标价值函数];
C --> D[更新价值函数];
D --> E[检查收敛性];
E --> F[收敛,结束];
E --> G[未收敛,继续];
G --> C;
4.3 N-步骤值目标
为了进一步提高拟合值迭代的收敛速度,使用了指数加权的n步价值函数目标。这个价值目标被描述为:
[ V_{\text{tar}}(x_t) = \int_0^T \beta \exp(-\beta t) R_t \, dt + \exp(-\beta T) R_T ]
其中
$R_t$
是奖励累积,
$\beta$
是指数衰减常数。这种方法类似于PPO中的广义优势估计(GAE),通过离散资格迹的连续时间对应物来加速收敛。
4.4 数据集
公式4.21使用数据集
$D$
来拟合价值函数。这个数据集可以是固定的,也可以是包含当前策略访问过的状态的回放记忆。对于固定数据集,数据集可以来自之前的的学习过程,或者从状态域中均匀采样。对于实时动态规划(RTDP),数据集是包含当前策略访问过的状态的回放记忆。在这种情况下,策略的探索非常重要,因为策略需要覆盖状态空间以发现高奖励配置。
4. 实验结果(续)
4.5 可接受集合的影响
实验结果显示,可接受集合的大小对策略的性能有显著影响。对于具有有界信号能量的对手,增加
$\alpha$
会略微降低通过DP rFVI获得的奖励,因为由此产生的策略更加保守。例如,图4.5展示了DP rFVI和RTDP rFVI在不同对手振幅下的学习曲线。随着
$\alpha$
的增加,对手变得更加强大,DP rFVI的性能略有下降,而RTDP rFVI在较大
$\alpha$
时无法完成任务。特别是对于Furuta摆锤,由于其质量低,对手的存在使得策略更难收敛。
| 对手类型 | 动态模型 |
最优动作
$u_k$
|
最优对手
$\xi_k$
|
|---|---|---|---|
| 状态扰动 |
a(x) + B(x)u + \xi
|
∇\tilde{g}(B(x)^\top ∇x V)
|
-α ∇x V / \|∇x V\|^2
|
| 动作扰动 |
a(x) + B(x)(u + \xi)
|
∇\tilde{g}(B(x)^\top ∇x V)
|
-α B(x)^\top ∇x V / \|B(x)^\top ∇x V\|^2
|
| 模型扰动 |
a(x; θ + \xi) + B(x; θ + \xi)u
|
∇\tilde{g}(B(x)^\top ∇x V)
|
-Δν sign(z_θ) + μν
|
| 观测扰动 |
a(x + \xi) + B(x + \xi)u
|
∇\tilde{g}(B(x)^\top ∇x V)
|
-α \|z_o\|^2
|
4.6 网络架构的影响
不同网络架构的学习曲线如图4.4所示。使用正弦/余弦变换对连续旋转关节进行局部二次网络架构表现最为可靠。虽然标准的MLP配合特征变换对于摆锤和Furuta摆锤表现良好,但对于摆杆车则表现不佳。局部二次网络架构通过限制可表示的价值函数假设空间,提高了学习速度和性能。
4.7 Sim2Real 转移
Sim2Real转移的结果总结在图4.6和表4.3中。cFVI和rFVI都可以转移到物理系统并成功完成摆动任务。在标准的Furuta摆锤上,cFVI获得的奖励高于rFVI,因为rFVI使用了更高的动作。在标准的卡特波尔上,rFVI的奖励和成功率都高于cFVI。当改变摆锤的质量时,rFVI策略表现得更加稳健,能够可靠地完成摆动任务。因此,rFVI在物理参数变化时,状态奖励几乎保持不变,而动作成本有所增加。
graph TD;
A[开始] --> B[初始化价值函数];
B --> C[计算目标价值函数];
C --> D[更新价值函数];
D --> E[检查收敛性];
E --> F[收敛,结束];
E --> G[未收敛,继续];
G --> C;
5. 讨论
5.1 最坏情况优化
最坏情况优化提高了策略的鲁棒性,但也可能导致过于保守的策略。例如,策略的高刚性使得策略更容易受到小时间延迟的影响,导致在Furuta摆锤上观察到的振荡。因此,最坏情况优化是一把双刃剑,根据系统的情况,可能会有益或引起额外的问题。为了缓解这一问题,可以通过数据学习可接受集合的大小,从而避免手动调整。离线规划与在线对物理系统的评估交织在一起,每次迭代中获得的现实世界数据用于更新可接受集合,直到接近一个能够解决问题但不过于保守的策略。
5.2 状态分布和维度
实验表明,状态分布显著影响策略的鲁棒性和性能。对于Sim2Real转移,只有具有均匀初始状态分布的基线实现了成功转移到物理环境。动态规划变体从完整的状态域中均匀采样,表现得比实时动态规划变体要好得多。然而,动态规划方法无法扩展到高维系统,因为对于这样的系统,采样完整的状态域变得不可行。对于高维系统,用于训练cFVI和rFVI的数据集
$D$
将过于稀疏,无法学习到有价值的近似价值函数。因此,关于高奖励状态的信息无法传播到相关状态,梯度上升会过度拟合到虚假的解决方案,并且无法解决问题。
5.3 探索
为了改进RTDP变体并扩展到更高维系统,必须改进探索机制,因为算法有时无法发现最优解。特别是对于rFVI,对手的存在阻止了发现最优解,策略会收敛到悲观解。解决这个问题的一种方法是使用模型预测控制进行探索。在这种情况下,可以在线优化动作序列,并仅将最优策略的动作用作先验。这有助于在高频采样下进行有效的探索,从而避免平均化探索噪声的问题。
6. 未来工作
6.1 学习动态模型
虽然cFVI和rFVI可以学习动态模型,但这些方法目前只能应用于无接触系统,并需要观察广义坐标。未来的工作应尝试将这些方法扩展到接触丰富的任务。例如,可以将分析接触模型与DiffNEA结合,以处理多接触问题,并使用可学习的表示形式来表示网格。此外,对于DeLaN,可以将接触建模为推动穿透物体的势场,以扩展其应用范围。
6.2 学习鲁棒策略
自适应可接受集合
最坏情况优化虽然提高了鲁棒性,但可能导致过于保守的策略。为了避免手动调整可接受集合并防止过于保守的策略,可以从物理系统的数据中学习可接受集合的大小。这种方法类似于现有的领域随机化方法,通过从数据中学习随机化参数的分布来提高性能。具体步骤如下:
-
初始化可接受集合
$\alpha$。 - 使用cFVI或rFVI学习策略。
- 将策略应用于物理系统,收集现实世界数据。
-
使用现实世界数据更新可接受集合
$\alpha$。 - 重复步骤2-4,直到策略足够稳健。
改进探索机制
为了扩展到更高维系统,必须改进探索机制。一种方法是结合乐观偏见的在线规划,忽略对手的影响,以探索状态空间的重要区域。此外,可以使用价值函数集合的探索性不确定性来确定未充分探索的区域,并向这些区域添加奖励奖金。具体步骤如下:
-
初始化价值函数
$V$。 -
使用价值函数
$V$计算目标价值函数$V_{\text{tar}}$。 -
更新价值函数
$V$以最小化目标价值函数与近似值之间的$p$-范数。 - 使用模型预测控制进行探索,优化动作序列。
- 将最优策略的动作用作先验,指导探索。
- 重复步骤2-5,直到策略收敛。
7. 总结
cFVI和rFVI是两种新颖的算法,通过值迭代解决HJB和HJI微分方程,适用于连续状态和动作空间。实验结果表明,这两种算法可以学习到最优策略,并且在物理系统上的表现优于标准的深度强化学习方法。rFVI策略在面对物理参数变化时尤为稳健,能够可靠地完成任务。尽管这些算法在当前应用中表现出色,但仍有一些局限性需要在未来的工作中加以改进,如自适应可接受集合和改进的探索机制。通过这些改进,可以进一步提升cFVI和rFVI的性能,使其在更广泛的任务中应用。
超级会员免费看
1862

被折叠的 条评论
为什么被折叠?



