OpenAI 模拟可以用于现实世界的应用吗?

人工智能 机器学习 强化学习 应用 开放式 控制理论
2021-11-02 22:22:23

我知道经典的控制系统已经被用来解决倒立摆-倒立摆的问题。

但是我看到现在人们也用机器学习技术来解决这个问题——倒立摆的机器学习

我看到了一段视频,介绍了如何在 openAI gym 上应用一种称为强化学习的机器学习技术——OpenAI gym 强化学习

我的问题是,我可以使用这个模拟并用它来训练控制器以实现倒立摆的实际应用吗?

1个回答

通常,您可以使用模拟来为现实世界的应用程序准备和训练控制器。机器人技术的一个很好的例子是通过强化学习实现自主直升机飞行,其中强化学习代理在实际使用之前在直升机动力学模型上进行了训练。通常,在这种情况下,由于 RL 的试错性质,进行此类工作是为了避免代价高昂的失败——如果错误代价高昂,例如坠毁直升机,那么理想情况下,代理会在模拟中执行检查以避免它,通过计划或其他一些虚拟环境,而不是在现实世界中。

完成模拟训练然后转移到现实世界的主要障碍是模拟的保真度。模拟的物理特性,包括物理量的测量、时间步长的大小、随机性/噪声量,应该在模拟和目标真实世界环境之间匹配。如果它们不匹配,那么学习代理可以生成一个在模拟中有效的策略,但在现实中却失败了。

对于自主直升机,研究人员使用来自控制真实直升机的人类操作员的数据来帮助生成用于模拟的预测模型。

你可以对 Open AI Gym 环境做同样的事情吗?不幸的是,可能不会。主要问题是使用的单元在大多数环境中是固定的,不太可能与任何特定的现实世界中的同类系统实现密切相关。此外,物理通常被简化——对于 CartPole 来说可能是一个小问题,但对于像 LunarLander 这样忽略所用燃料重量并且是 3D 环境的 2D 模拟的环境来说,这是一个更重要的问题。

因此,例如,在 CartPole 环境中,以下值是固定的:

  • 时间步长
  • 推车质量
  • 要平衡的杆的质量和长度
  • 推车电机推动的力

您可以使用几种方法来解决此问题:

  1. 制作一个新版本的环境并对其进行调整,以使值与您要训练的真实环境相匹配。请注意,这可能仍然受到限制,因为物理模型仍然非常简单,并且可能无法考虑推车电机的实际运行特性。

  2. 按原样使用 CartPole 环境,不是直接训练控制器,而是选择超参数,例如神经网络大小、学习率等。这将产生一个你有理由相信的学习代理可以学习具有状态表示的策略和目标系统的一般行为。然后你在物理系统中再次“真正地”训练。

您可以结合这些想法,从模拟中创建最佳猜测控制器,然后通过在真实系统上继续训练,在真实环境中对其进行改进。