训练和评估 AWS DeepRacer 模型 - AWS DeepRacer

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

训练和评估 AWS DeepRacer 模型

当您的 AWS DeepRacer 车辆沿赛道自动行驶时,它会通过安装在前方的摄像机捕捉环境状态,并根据观察结果采取行动。您的 AWS DeepRacer 模型是一项将观察结果和行动映射到预期奖励的函数。训练您的模型是要找到或学习最大化预期奖励的函数,这使得经优化的模型能够规定您的车辆可以采取哪些行动(速度和转向角对)以便车辆从头到尾都沿赛道行驶。

在实际应用中,该函数由一个神经网络表示,该网络的训练包括找到给定观察到的环境状态序列下的最佳网络权重和相应的车辆行动。最优性的基本标准由模型的奖励函数描述,该函数鼓励车辆在不造成交通事故或违规的情况下合法而有效地行驶。简单的奖励函数可以返回 0(如果车辆在赛道上)、-1(如果车辆不在赛道上)和 +1(如果车辆到达终点)。利用此奖励函数,车辆会因离开赛道而收到惩罚,并因到达目的地而获得奖励。如果时间或速度不是问题,这可能是一个很出色的奖励函数。

假设您想让车辆在不偏离直线赛道的情况下尽可能快速地行驶。当车辆加速和减速时,车辆可左右转向以避开障碍物或保持在赛道内。在高速行驶时转向过大很容易导致车辆偏离赛道。转向过小可能无法帮助避免与障碍物或其他车辆相撞。一般来说,最佳操作是以较低的速度进行较大的转向或沿较锐利的曲线较小转向。为了鼓励这种行为,您的奖励函数必须分配一个正分数来奖励高速下的较小转向,或分配一个负分数来惩罚高速下的大转向。类似地,奖励函数可以对沿着更直的路线加速或接近障碍物时减速返回正奖励。

奖励函数是您的 AWS DeepRacer 模型的一个重要部分。在训练您的 AWS DeepRacer 模型时,必须提供奖励函数。训练涉及在赛道上从起点到终点的重复情节。在一个情节中,代理将与赛道交互以通过最大化预期的累积奖励来了解最佳的行动方案。最后,训练将产生一个强化学习模型。在训练之后,代理通过对模型运行推断来实施自动驾驶,以在任何给定状态下采取最佳行动。这可以使用虚拟代理在模拟环境中完成,也可以使用物理代理(例如 AWS DeepRacer 比例车辆)在真实环境中完成。

要在实践中训练强化学习模型,您必须选择一种学习算法。目前,AWS DeepRacer 控制台仅支持近端策略优化 (PPO) 和 Soft Actor Critic (SAC) 算法。然后,您可以选择支持所选算法的深度学习框架,除非您想从头开始编写。AWS DeepRacer 与 SageMaker 集成,使一些流行的深度学习框架(例如 TensorFlow)可以随时在 AWS DeepRacer 控制台中使用。使用框架可以简化训练作业的配置和执行,并使您能够专注于创建和增强特定于您的问题的奖励函数。

训练强化学习模型是一个迭代过程。首先,定义一个奖励函数来一次性覆盖代理在环境中的所有重要行为,这是很有挑战性的。其次,通常会调整超参数以确保令人满意的训练绩效。两者都需要试验。谨慎的做法是从简单的奖励函数开始,然后逐步增强。AWS DeepRacer 使您能够克隆经过训练的模型,然后使用它来启动下一轮训练,从而简化了这一迭代过程。在每次迭代中,您可以向奖励函数引入一个或多个更复杂的处理方法来处理之前忽略的变量,也可以系统地调整超参数直到结果收敛。

与机器学习中的一般实践一样,您必须先评估一个训练后的强化学习模型以确定其有效性,然后再将它部署到物理代理以在实际情况中运行推理。对于自动驾驶,评估可以基于车辆从开始到结束在指定赛道上停留的频率或车辆在不偏离赛道的情况下完成路线的速度。AWS DeepRacer 模拟允许您运行评估并发布性能指标,以便在排行榜上与其他 AWS DeepRacer 用户训练的模型进行比较。