训练您的第一个 AWS DeepRacer 模型
本演练演示了如何使用 AWS DeepRacer 控制台训练您的第一个模型。
使用 AWS DeepRacer 控制台训练强化学习模型
了解如何在 AWS DeepRacer 控制台中找到 “创建模型” 按钮,开始您的模型训练之旅。
训练强化学习模型
- 如果这是您第一次使用 AWS DeepRacer,请从服务登录页面选择创建模型,或者在主导航窗格的 “强化学习” 标题下选择 “开始”。
在强化学习入门页面的步骤 2:创建模型下,选择创建模型。
或者,在主导航窗格的强化学习标题下选择您的模型。在 Your models (您的模型) 页面上,选择 Create model
(创建模型)。
指定模型名称和环境
为您的模型命名,并学习如何选择适合您的仿真轨道。
指定模型名称和环境
- 在创建模型页面的训练详细信息下,输入模型的名称。
- 或者,添加培训任务描述。
- 要了解添加可选标签的更多信息,请参阅Tagging。
在环境模拟下,选择一条轨道作为您的 AWS DeepRacer 代理的培训环境。在 “轨道方向” 下,选择 “顺时针” 或
“逆时针”。然后选择下一步。
第一次运行时,请选择具有简单形状和平滑转弯的赛道。在以后的迭代中,您可以选择更复杂的赛道来逐步改进模型。要为特定赛车活动训练模型,请选择最类似于活动赛道的赛道。
- 选择 Next (下一步)。
选择比赛类型和训练算法
AWS DeepRacer 控制台有三种竞赛类型和两种训练算法可供选择。了解哪些适合您的技能水平和训练目标。
选择比赛类型和训练算法
在创建模型页面的竞赛类型下,选择计时赛、物体回避或 Head-to-bot。
对于您的第一次跑步,我们建议选择计时赛。有关针对该竞赛类型优化代理传感器配置的指导,请参阅为计时赛量身定制 AWS DeepRacer
培训。
或者,在以后的运行中,选择物体避让绕过放置在所选轨道上固定或随机位置的静止障碍物。有关更多信息,请参阅为避物竞赛量身定制 AWS
DeepRacer 训练:
- a. 选择 Fixed Location 可在轨道两条车道上的用户指定位置生成盒子,或选择 “随机位置”
生成在训练模拟的每一集开始时随机分布在两条车道上的物体。 - b. 接下来,为轨道上的对象数量选择一个值。
- c. 如果选择“固定位置”,则可以调整每个对象在轨道上的位置。对于车道布局,请在内部车道和外部车道之间进行选择。默认情况下,对象均匀分布在轨道上。要更改物体起点和终点线之间的距离,请在起点和终点之间的位置
(%) 字段中输入 7 到 90 之间的距离的百分比。
或者,要想进行更雄心勃勃的跑步,可以选择 H read-to-bot ac ing
与最多四辆以恒定速度行驶的机器人车辆竞速。要了解更多信息,请参阅 为 head-to-bot 比赛量身定制 AWS DeepRacer
训练。
- 在 “选择机器人载具的数量” 下,选择你希望你的代理训练多少个机器人载具。
- 接下来,选择您希望机器人车辆在轨道上行驶的速度(以毫米每秒为单位)。
- (可选)选中 “启用换道” 复选框,让机器人载具能够每 1-5 秒随机更改车道。
- 在训练算法和超参数下,选择软角色批判算法 (SAC) 或近端策略优化 (PPO) 算法。在 AWS DeepRacer 控制台中,SAC
模型必须在持续的操作空间中进行训练。PPO 模型可以在连续或离散的动作空间中训练。 在训练算法和超参数下,按原样使用默认的超参数值。
稍后,为了提高训练性能,请展开 Hyperparameters (超参数) 并按如下所示修改默认超参数值:
- 对于 Gradient descent batch size (梯度下降批大小),选择可用选项。
- 对于 Number of epochs (纪元数),设置有效值。
- 对于 Learning rate (学习速率),设置有效值。
- 对于 SAC 阿尔法值(仅限 SAC 算法),设置有效值。
- 对于 Entropy (熵),设置有效值。
- 对于Discount factor (折扣系数),设置有效值。
- 对于 Loss type (损耗类型),选择可用选项。
- 对于 Number of experience episodes between each policy-updating
iteration (每次策略更新迭代之间的经验情节数),设置有效值。
有关超级参数的更多信息,请参阅系统地调整超参数。
- 选择下一步。
定义动作空间
在 “定义动作空间” 页面上,如果您选择使用 Soft Actor Critic (SAC) 算法进行训练,则您的默认动作空间是连续动作空间。如果您选择使用近端策略优化 (PPO) 算法进行训练,请在连续动作空间和离散动作空间之间进行选择。要详细了解每种动作空间和算法如何塑造代理的训练体验,请参阅AWS DeepRacer 行动空间和奖励功能。
定义连续动作空间(SAC 或 PPO 算法)
- 在 “定义连续动作空间” 下,选择左转向角度范围和右转向角度范围的角度。
尝试为每个转向角度范围输入不同的角度,并观察范围变化的可视化效果,以在动态扇区图上表示您的选择。
- 在 “速度” 下,输入代理的最小和最大速度,以毫米每秒为单位。
注意您的更改是如何反映在动态扇区图上的。
- 可选)选择 “重置为默认值” 以清除不需要的值。我们鼓励在图表上尝试不同的值来进行实验和学习。
- 选择下一步。
定义离散动作空间(仅限 PPO 算法)
- 从下拉列表中选择转向角度粒度值。
- 为代理的最大转向角度选择 1 到 30 度之间的值。
- 在下拉列表的 Speed(精度)选择一个选择一个选择一个选择一个选择一个选择一
- 为代理的最大速度选择 0.1-4 之间的以毫米每秒为单位的值。
- 使用操作列表上的默认操作设置,或者,也可以选择开启高级配置来微调设置。如果在调整值后选择 “以前配置” 或关闭 “高级配置”,则会丢失所做的更改。
- a. 在转向角度列中输入一个介于 -30 和 30 之间的度值。
- b. 在 “速度” 列中输入一个介于 0.1 到 4 之间的值(以毫米/秒为单位),最多可执行九个动作。
- c. (可选)选择添加操作以增加操作列表中的行数。
- 选择下一步。
选择一辆选择一辆车
了解如何开始使用虚拟汽车。每月参加公开组比赛,赚取新的定制汽车、油漆和改装工作。
选择虚拟汽车
- 在选择车辆外壳和传感器配置页面上,选择与您的竞赛类型和行动空间兼容的外壳。如果你的车库里没有匹配的汽车,请前往主导航窗格的 “强化学习” 标题下的 “你的车库” 创建一辆车。
对于计时赛训练,你只需要The DeepRacer O riginal的默认传感器配置和单镜头摄像头,但只要动作空间匹配,所有其他外壳和传感器配置就可以正常工作。有关更多信息,请参阅为计时赛量身定制 AWS DeepRacer 培训:
对于物体避开训练,立体摄像头很有帮助,但单个摄像头也可以用于避开固定位置的静止障碍物。LiDAR 传感器是可选的。请参阅AWS DeepRacer 行动空间和奖励功能。
对于 Head-to-bot 训练,除了单个摄像头或立体摄像头外,LiDAR 单元最适合在通过其他移动车辆时检测和避开盲点。要了解更多信息,请参阅 为 head-to-bot 比赛量身定制 AWS DeepRacer 训练。
- 选择下一步。
自定义您的奖励功能
奖励功能是强化学习的核心。学会用它来激励你的汽车(代理人)在探索赛道(环境)时采取具体行动。就像鼓励和劝阻宠物的某些行为一样,你可以使用这个工具来鼓励你的汽车尽可能快地完成一圈,并阻止它驶出赛道或与物体碰撞。
自定义您的奖励功能
- 在Create model (创建模型) 页面上的Reward function (奖励函数) 下,按原样使用第一个模型的默认奖励函数示例。
稍后,您可以通过选择 Reward function examples (奖励函数示例) 来选择另一个示例函数,然后选择 Use code (使用代码) 接受选定的奖励函数。
有四个示例函数可供您开始。它们说明了如何跟随轨道中心(默认)、如何将代理保持在轨道边界内、如何防止曲折行驶,以及如何避免撞上静止的障碍物或其他移动的车辆。
要了解有关奖励函数的更多信息,请参阅AWS DeepRacer 奖励函数参考。
- 在停止条件下,保持默认的最大时间值不变,或者设置一个新值来终止训练作业,以帮助防止长时间运行(以及可能失控的)训练作业。
在训练的早期阶段进行试验时,您应该从此参数的较小的值开始,然后逐渐延长训练的时间。
- 在 “自动提交到 AWS” 下 DeepRacer,默认情况下,在完成培训并有机会赢取奖品后 DeepRacer 自动将此模型提交到 A WS。或者,您可以通过选择复选标记来选择不输入您的模型。
- 在联赛要求下,选择您的居住国并选中复选框接受条款和条件。
- 选择创建模型开始创建模型并配置训练作业实例。
- 提交后,等待训练作业完成初始化,然后运行。
初始化过程需要几分钟才能从 “初始化” 更改为 “进行中”。
- 观看 Reward graph (奖励图) 和 Simulation video stream (模拟视频流) 以了解训练作业的进度。您可以每隔一段时间选择 Reward graph (奖励图) 旁边的刷新按钮来刷新 Reward graph (奖励图),直到训练作业完成。
训练作业在AWS云端运行,因此您无需保持 AWS DeepRacer 控制台处于打开状态。在作业进行期间,您可以随时返回控制台检查您的模型。
如果模拟视频直播窗口或奖励图表显示无响应,请刷新浏览器页面以更新训练进度。