在上一篇文章中,我演示了如何设计一个基于策略的强化学习agent来解决CartPole任务。在本文中,我们将从另一个角度重新审视这个问题——如何构建仿真环境来提升agent在当前环境下的性能。
如果你还没有阅读本系列之前的文章并且还是强化学习的初学者,我推荐你按照顺序来阅读,文末有之前文章的链接。
仿真环境是什么,我们为什么要引入仿真环境?在上图中,仿真环境是一个用于模拟真实世界中的动态问题的神经网络。拿我们之前CartPole的问题来说,我们需要一个可以根据之前的位置和行动来预测木棒下次位置的模型。在学习得到一个精确的模型之后,我们每次就可以直接用模型来训练我们的agent而不是必须放在真实环境中训练。当然如果原始的环境就是仿真得到的(像CartPole就模拟了真实世界中的物理情景),我们就不必再这样做了。
与计算机模拟不同,真实环境的部署需要时间,而且真实世界中的物理法则也使得环境初始化等一系列操作的可行性大幅下降。相反地,通过模型来模拟环境可以节省时间和成本,agent也可以“假想”自己就在真实环境中运动,我们可以直接在这个虚拟的环境中训练决策网络。只要我们的模拟环境足够优秀,agent即使完全在虚拟环境中训练也可以在真实环境中达到很好的性能。