文章目录
操作空间
在强化学习中,代理与环境交互时可用的所有有效动作或选择的集合称为操作空间。在 AWS DeepRacer 控制台中,您可以在离散或连续操作空间中训练代理。
离散操作空间
离散操作空间表示座席针对有限集中每个状态的所有可能操作。对于 AWS DeepRacer,这意味着,对于每种不同的环境情况,代理的神经网络会根据摄像头和(可选)LiDAR 传感器的输入选择车辆的速度和方向。选择仅限于预定义的转向角度和油门值组合。
AWS DeepRacer 汽车位于离散动作空间接近转弯的车辆可以选择加速或折断,然后左转、右转或走海峡。这些操作被定义为转向角度和速度的组合,为代理创建了 0-9 选项菜单。例如,0 可以表示-30 度和 0.4 米/秒,1 可以表示-30 度和 0.8 米/秒,2 可以表示-15 度和 0.4 米/秒,3 可以表示-15 度和 0.8 米/秒,依此类推至 9。负度将车向右转动,正度向左转动车辆,0 保持车轮直。
AWS DeepRacer 默认离散操作空间包含以下操作:
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 度的转向角向左转、向右转或直行.
离散与连续
使用连续动作空间的好处在于您可以编写奖励函数来训练模型,以激励轨道上特定点的速度/转向操作,从而优化性能。从一系列操作中进行挑选还可以产生速度和转向值平稳变化的潜力,在训练有素的模型中,可以在现实生活条件下产生更好的结果。
在离散操作空间设置中,将座席的选择限制为有限数量的预定义操作,让您有责任了解这些操作的影响,并根据环境(赛道、赛车格式)和奖励功能定义它们。但是,在连续操作空间设置中,座席学习从您通过培训提供的最小/最大范围中选择最佳速度和转向值。
虽然为模型提供一系列值以供选择似乎是更好的选择,但代理人必须经过更长的训练才能学会选择最佳操作。成功也取决于奖励函数定义。
奖励函数
当代理探索环境时,代理学习了一个值函数。值函数可帮助您的代理在观察环境后判断所采取的操作有多好。值函数使用您在 AWS DeepRacer 控制台中编写的奖励函数来对操作进行评分。例如,在 AWS DeepRacer 控制台的跟随中心线示例奖励功能中,好的操作将使代理保持在轨道中心附近,并且得分高于不良操作,这将使代理远离轨道中心。
随着时间的推移,值函数可帮助代理学习增加总奖励的策略。最佳策略或最佳策略将在代理探索环境所花费的时间与利用或最佳利用策略通过经验学到的内容所花费的时间之间取得平衡。
在按照中心线AWS DeepRacer 示例奖励函数示例,代理会首先采取随机操作来探索环境,这意味着它不能在轨道中心做很好的工作。随着时间的推移,代理开始了解哪些动作保持它靠近中心线,但如果它通过继续采取随机动作这样做,它将需要很长的时间来学习在轨道的中心附近的整个圈。因此,随着策略开始学习良好的操作,代理开始使用这些操作,而不是采取随机操作。但是,如果它总是使用或利用这些良好的操作,代理将不会做任何新的发现,因为它不再在探索环境。这种权衡通常被称为 RL 中的勘探与开发问题。
尝试默认动作空间和示例奖励函数。一旦你探索了它们,通过设计你自己的自定义操作空间和自定义奖励函数。
训练算法
近端策略优化 (PPO) 与 Soft Actor Critic (SAC)
SAC 和 PPO 算法同时学习策略和价值函数,但它们的策略在三个显着方面有所不同:
稳定与数据饥饿
PPO 和 SAC 算法的策略在探索环境时学习的信息的利用方式不同。PPO 使用在策略学习,这意味着它从当前策略探索环境的观察中学习其价值函数。SAC 使用离策略学习,这意味着它可以使用先前策略对环境的探索所做的观察。off-policy 和 on-policy 学习之间的权衡通常是稳定性与数据效率。On-policy 算法往往更稳定,但数据饥渴,
探索与开发
探索与开发是强化学习的一个关键挑战。算法应该利用先前经验中的已知信息来获得更高的累积奖励,但它也需要探索以获得可用于在未来寻找最佳策略的新经验。随着策略经过多次迭代训练并了解更多关于环境的信息,对于给定观察选择动作变得更加确定。然而,如果策略没有充分探索,它可能会坚持已经学习的信息,即使它不是最佳状态。PPO 算法通过使用熵正则化来鼓励探索,这可以防止代理收敛到局部最优。SAC 算法通过向其最大化目标添加熵,在探索和利用之间取得了特殊的平衡。
熵
在这种情况下,“熵”是对政策不确定性的衡量,因此它可以解释为衡量政策对给定状态选择行动的信心程度的衡量标准。低熵的策略对选择动作非常有信心,而高熵的策略不确定选择哪个动作。
SAC 算法的熵最大化策略与 PPO 算法使用熵作为正则化器具有相似的优势。与 PPO 一样,它鼓励更广泛的探索,并通过激励代理选择具有更高熵的动作来避免收敛到糟糕的局部最优。与熵调节不同,熵最大化具有独特的优势。它倾向于放弃选择无希望行为的策略,这也是 SAC 算法比 PPO 更具有数据效率的另一个原因。
使用 SAC alpha 超参数调整 SAC 中的熵量。最大 SAC alpha 熵值 (1.0) 有利于探索。最小值 (0.0) 恢复了标准 RL 目标并抵消了激励探索的熵奖励。开始试验的一个好的 SAC alpha 值是 0.5。在迭代模型时进行相应的调整。
尝试 PPO 和 SAC 算法,试验它们的超参数,并在不同的动作空间中探索它们。