
AWS DeepRacer 是一款 1/18 比例的四轮驱动车,配备大量车载硬件和软件。从 re:Invent 2018 大会,再到 AWS 全球峰会,您都将有机会亲身体验 DeepRacer。在这些活动中,您可以使用强化学习训练一个模型,然后让其驶上赛道参加比赛。每圈速度最快的赛车手及其圈速都显示在我们的排行榜上。

全新的 DeepRacer League 虚拟赛道
今天,我们推出了 AWS DeepRacer League 虚拟赛道。您可以在线构建、训练和评估强化学习模型,并在线参与竞赛,赢取精彩大奖,所有这些都可以在 DeepRacer 控制台上轻松完成!
我们从全球各地著名的赛道中汲取灵感,每个月都会增加一条新赛道,这样您就可以优化模型,拓宽技能。每月排行榜上排名靠前的参赛者将赢得参加 AWS re:Invent 2019 的免费大礼包,在这次大会上,他们将参加联赛淘汰赛,并有机会赢得冠军奖杯!
全新的 DeepRacer 控制台
我们现已在美国东部(弗吉尼亚北部)区域推出 DeepRacer 控制台。您可以使用该控制台构建和训练 DeepRacer 模型,并在虚拟赛道中参加比赛,同时亲自动手体验强化学习。按照动手实验 DeepRacer 研讨会所用 DeepRacer 实验室中的步骤,我打开控制台并单击开始使用:

控制台向我提供了模型训练过程概览,然后要求我创建训练和评估模型所需的 AWS 资源。我查看信息并单击创建资源以继续操作:

这些资源数分钟内便创建完成(在此期间,我可以单击了解强化学习来详细了解强化学习)。我单击创建模型以继续操作:

我为模型输入名称和说明:

然后我选取一条赛道(在整个虚拟联赛期间会出现更多赛道):

现在我为模型定义“操作空间”。这是我的模型可以执行的一组离散操作。选择增加选项数量的值通常会提高模型质量,但会延长训练时间:

接下来,我为模型定义奖励函数。该函数在整个训练过程中评估车辆的当前状态,并返回一个奖励值,以指示模型的性能状况(奖励值越高表示性能越强)。我可以按原样使用三个预定义模型中的一个(单击奖励函数示例可显示这三个模型),对其进行自定义,也可以从头构建一个模型。我将使用 Prevent zig-zag 开始体验,这是一个 Z 字形行为罚分的奖励函数示例:

奖励函数采用 Python 3 编写而成,能够访问描述赛车位置和状态的参数(track_width、distance_from_center、all_wheels_on_track 等),还可以提供有关赛道的信息。
我还控制一组影响整体训练性能的超参数。由于我不了解这些超参数(实话实说),我将接受所有默认值:

要了解有关超参数的更多信息,请阅读系统地调整超参数。
最后,我指定训练作业的时限,并单击开始训练。一般情况下,简单模型会在 90 到 120 分钟内收敛,但这在很大程度上取决于最高速度和奖励函数。

训练作业正在初始化(大约需要 6 分钟),我可以在控制台中跟踪进度:

训练作业使用 AWS RoboMaker,因此我也可以从 RoboMaker 控制台进行监控。例如,我可以打开 Gazebo 窗口,看着赛车,并实时观看训练过程:

需要注意的一点是:更改训练环境(通过直接操作 Gazebo)将对训练运行产生负面影响,很可能使其变得无用。
随着训练的进行,如果赛车正在学习如何不偏离赛道,奖励图就会向上并向右移动(就像我们在 Amazon 经常说的那样):

如果该图变平或急剧下降,并一直保持此状态,说明您的奖励函数没有奖励所需的行为,或者有些其他设置造成阻碍。然而,小不忍则乱大谋,在通往顶峰的路上,偶尔也会有退步。训练结束后,在新模型最终完成和存储的过程中会有一小段时间的暂停,然后就可以通过运行模拟来评估模型了。为此,我单击开始评估:

我可以在任何可用的赛道上评估模型。使用一条赛道进行训练,使用另一条赛道进行评估,这种方法可以更好地确保模型的通用性,并确保它未过拟合以至于它只能在一条赛道行驶。然而,使用同一条赛道进行训练和测试是一种开始评估的好方法,我打算就这样做。我选择椭圆赛道和 3 次试验,然后单击开始评估:

RoboMaker 模拟器启动,评估费用按小时计,如上图所述。当模拟完成时,将显示结果(圈速):

此时,我可以在另一条赛道上评估我的模型,后退一步并优化模型,然后重新评估,也可以将模型提交到当月虚拟赛道,加入 DeepRacer League。为此,我单击提交到虚拟比赛,输入赛车手名称,选择一个模型,同意条款和条件,然后单击提交模型:

提交后,我的模型将在季前赛道上进行评估,我的圈速用于将我排列在虚拟赛道排行榜上。
注意事项
以下是需要了解的有关 AWS DeepRacer 和 AWS DeepRacer League 的一些事项:
AWS 资源 – Amazon SageMaker 用于训练模型,然后它会将模型存储在 Amazon Simple Storage Service (S3) 中。AWS RoboMaker 提供用于进行训练和评估的虚拟赛道环境。AWS CloudFormation 堆栈用于创建 Amazon Virtual Private Cloud,包括子网、路由表、弹性 IP 地址和 NAT 网关。
费用 – 可以免费使用 DeepRacer 控制台。一旦您开始训练第一个模型,便会获得 SageMaker 和 RoboMaker 的服务积分,让您可以使用这些服务免费进行 10 个小时的训练。这些积分在月末申请,有效期为 30 天,并纳入 AWS 免费套餐。DeepRacer 架构使用一个 NAT 网关,会收取使用费。您的账户将自动收到服务积分,用于抵消此费用,因此您的账户上会显示零支出。
DeepRacer 赛车 – 现在可以预订 DeepRacer 赛车了! 从 2019 年 7 月开始,将可以邮寄至美国地址。
作者介绍:
Jeff Barr
AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。
本文转载自 AWS 技术博客。
原文链接:
评论