大多数强化学习代理都是在模拟环境中训练的。目标是在(通常)相同的环境中最大化性能,最好是使用最少的交互。拥有良好的环境模型可以使用规划,从而大大提高采样效率!
为什么在这些情况下不使用模拟进行规划?它是环境的采样模型,对吧?难道我们不能在每个或某些状态尝试多个动作,按照当前的政策向前看几个步骤,最后选择结果最好的动作吗?与策略梯度更新相比,这不应该让我们更快地找到更好的动作吗?
在这种情况下,我们的环境和模型是相同的,这似乎是问题所在。还是再次责备维数的旧诅咒?请帮我弄清楚,我错过了什么。
大多数强化学习代理都是在模拟环境中训练的。目标是在(通常)相同的环境中最大化性能,最好是使用最少的交互。拥有良好的环境模型可以使用规划,从而大大提高采样效率!
为什么在这些情况下不使用模拟进行规划?它是环境的采样模型,对吧?难道我们不能在每个或某些状态尝试多个动作,按照当前的政策向前看几个步骤,最后选择结果最好的动作吗?与策略梯度更新相比,这不应该让我们更快地找到更好的动作吗?
在这种情况下,我们的环境和模型是相同的,这似乎是问题所在。还是再次责备维数的旧诅咒?请帮我弄清楚,我错过了什么。
我将从机器人领域给出一个观点。没错,大多数 RL 智能体都接受过模拟训练,尤其是针对研究论文的训练,因为它允许研究人员在理论上在通用环境中对他们的方法进行基准测试。许多环境严格作为新算法的测试平台而存在,甚至无法在物理上实现,例如HalfCheetah。理论上,您可以让一个单独的模拟器运行在您用作规划模型的另一个进程中,然后“真正的”模拟器就是您的环境。但实际上,这只是您最终真正想要的模拟设置,即在真实世界环境中拥有真实世界的代理。
您所描述的内容可能非常有用,但有一个重要的警告:模拟器实际上需要成为真实环境的良好模型。对于机器人技术和许多其他有趣的领域来说,这是一项艰巨的任务。获得忠实复制真实世界环境的物理模拟器可能会很棘手,因为可能需要准确的摩擦系数、质量和质心、恢复系数、材料特性、接触模型等。通常,模拟器对于现实世界环境的近似过于粗糙,无法用作规划器。
但这并不意味着我们已经完全被淹没了。本文使用高度并行化的模拟器来搜索与现实世界非常接近的模拟参数。有趣的是,它甚至不一定要找到正确的真实世界值,例如摩擦系数等,但它会找到参数的值,这些参数综合起来会产生与真实世界经验相匹配的模拟。模拟越能接近现实世界中发生的事情,使用模拟器进行任务规划就越可行。我认为随着GPU 优化物理模拟器的出现我们将看到,即使对于现实世界的代理,模拟器也是一个更有用的工具,因为您可以并行尝试许多不同的事情,以了解计划的动作序列的可能结果是什么。
与策略梯度更新相比,这不应该让我们更快地找到更好的动作吗?
这取决于模拟的性质。如果仿真将汽车建模为一个三平面中的自由度(希望它不撞到任何东西并垂直推进),与用于模拟最小阻力路径的模拟相比,可以非常快速地求解固体运动的三个常微分方程在波涛汹涌的海上航行,必须求解流体动力学方程,这需要大量资源。好吧,船所需的响应时间比汽车长得多,是的,但是要进行预测性计算,需要大量的计算能力。
问题是普遍性。不过我完全同意,但理想情况下,找到的策略将推广到模型未见过的更复杂的环境。你也可以在一个新场景上运行一个规划器,但问题是它对实时的计算要求太高了。