AWS DeepRacer 行动空间和奖励函数
AWS DeepRacer 行动空间和奖励函数
代理 - Agent(人工智能体,虚拟或者物理实体)
动作空间
在强化学习中,代理与环境交互时可用的所有有效动作或选择的集合称为动作空间。在 AWS DeepRacer 控制台中,您可以在离散或连续的操作空间中训练代理。
离散的动作空间
离散的动作空间表示代理在有限集合中每种状态下可能发生的所有动作。对于 AWS DeepRacer 而言,这意味着对于每种逐渐不同的环境情况,代理的神经网络会根据其摄像头和(可选)LiDAR 传感器的输入为汽车选择速度和方向。选择仅限于一组预定义的转向角度和油门值组合。
临近转弯的离散动作空间中的 AWS DeepRacer 汽车可以选择加速或刹车,然后向左、向右或直行。这些动作被定义为转向角度和速度的组合,为代理创建一个选项菜单,即 0-9。例如,0 可以表示 -30 度和 0.4 m/s,1 可以表示 -30 度和 0.8 m/s,2 可以表示 -15 度和 0.4 m/s,3 可以表示 -15 度和 0.8 m/s,依此类推,直到 9。负度使汽车向右转,正角度使汽车向左转,0 度使车轮保持笔直。
AWS DeepRacer 默认离散操作空间包含以下操作:
AWS DeepRacer 默认离散操作空间
操作数量 | 操控方向 | 速度 |
---|---|---|
0 | -30 度 | 0.4 米/秒 |
1 | -30 度 | 0.8 米/秒 |
2 | -15 度 | 0.4 米/秒 |
3 | -15 度 | 0.8 米/秒 |
4 | 0 度 | 0.4 米/秒 |
5 | 0 度 | 0.8 米/秒 |
6 | 15 度 | 0.4 米/秒 |
7 | 15 度 | 0.8 米/秒 |
8 | 30 度 | 0.4 米/秒 |
9 | 30 度 | 0.8 米/秒 |
持续的行动空间
连续操作空间允许代理从每种状态的一系列值中选择一项操作。就像离散的动作空间一样,这意味着对于每种逐渐不同的环境情况,代理的神经网络会根据其摄像头和(可选)LiDAR 传感器的输入为汽车选择速度和方向。但是,在连续操作空间中,您可以定义代理从中选择操作的选项范围。
在此示例中,连续动作空间中接近转弯的 AWS DeepRacer 汽车可以选择 0.75 m/s 到 4 m/s 的速度,然后通过选择 -20 到 20 度的转向角度向左、向右或向斜行驶。
离散与连续
使用连续动作空间的好处是,你可以编写奖励函数,训练模型,激励赛道上特定点的速度/转向动作,从而优化性能。从一系列动作中进行选择还可能使速度和转向值平稳变化,在训练有素的模型中,这些变化可能会在现实生活条件下产生更好的结果。
在离散动作空间设置中,将代理人的选择限制在有限数量的预定义动作上,这使你有责任了解这些动作的影响,并根据环境(赛道、赛车形式)和奖励函数对其进行定义。但是,在连续动作空间设置中,代理学会从你通过训练提供的最小/最大边界中选择最佳速度和转向值。
尽管提供一系列值供模型选择似乎是更好的选择,但代理人必须训练更长的时间才能学会选择最佳动作。成功还取决于奖励函数的定义。
奖励函数
当代理探索环境时,代理学习价值函数。价值函数可帮助您的代理在观察环境后判断所采取的操作有多好。value 函数使用您在 AWS DeepRacer 控制台中编写的奖励函数对操作进行评分。例如,在 AWS DeepRacer 控制台的 follow the centres line 样本奖励函数中,良好的动作会使代理保持在轨道中心附近,并且得分要高于不良动作,后者会使代理远离轨道中心。
随着时间的推移,价值函数可以帮助代理学习增加总奖励的政策。最佳或最佳策略将在代理花在探索环境上的时间与利用或充分利用策略从经验中学到的知识所花费的时间之间取得平衡。
在 follow the center line AWS DeepRacer 示例奖励函数示例中,代理首先采取随机操作来探索环境,这意味着它在保持赛道中心方面做得不太好。随着时间的推移,代理开始了解哪些动作使其保持在中心线附近,但是如果它通过继续采取随机动作来做到这一点,则需要很长时间才能学会在整圈内保持在赛道中心附近。因此,当政策开始学习好的行动时,代理开始使用这些行动,而不是采取随机行动。但是,如果它总是使用或利用良好的行为,则该代理将不会做出任何新发现,因为它不再在探索环境。这种权衡通常被称为 RL 中的勘探与开发问题。
尝试使用默认的动作空间和示例奖励函数。探索完所有内容后,通过设计自己的自定义操作空间和自定义奖励功能,将您的知识付诸实践。