

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

# AWS DeepRacer 训练算法
<a name="deepracer-how-it-works-reinforcement-learning-algorithm"></a>

**近端策略优化 (PPO) 与柔性动作评价 (SAC)**  
SAC 和 PPO 算法两者同时学习策略和价值函数，但它们的策略在三个明显方面有所不同：


| PPO | SAC | 
| --- | --- | 
|  适用于离散和连续操作空间  |  在连续的操作空间中工作  | 
|  同策略  |  异策略  | 
|  使用熵正则化  |  为最大化目标添加熵  | 

**稳定与数据匮乏的对比**  
在探索环境时，PPO 和 SAC 算法的策略所学到的信息的使用方式有所不同。PPO 使用同策略学习，这意味着它从当前探索环境的策略所做的观察中学习其价值功能。SAC 使用异策略学习，这意味着它可以使用先前策略对环境的探索所得出的观察。同策略外学习和异策略学习之间的权衡通常是稳定性与数据效率。同策略的算法往往更稳定，但需要大量数据，而异策略的算法往往恰恰相反。

**勘探与开采**  
勘探与开采是 RL 面临的关键挑战。算法应该利用以前经验中的已知信息来获得更高的累积奖励，但同时也需要不断探索以获得新的经验，这些经验可用于在未来寻找最优策略。当策略经过多次迭代训练并更多地了解环境时，为给定的观察结果选择操作变得更加确定。但是，如果该策略的探索不够，它很可能会坚持已经学到的信息，即使这些信息没有达到最佳状态。PPO 算法通过使用熵正则化来鼓励探索，从而防止代理收敛到局部最优值。SAC 算法通过在其最大化目标中添加熵，在探索和开发之间取得了非凡的平衡。

**熵**  
在这种情况下，“熵”是对策略不确定性的一种度量，因此它可以被解释为对策略在给定状态下选择行动的信心程度的一种度量。低熵的策略对选择行动非常有信心，而高熵的策略则不确定该选择哪种行动。

SAC 算法的熵最大化策略与 PPO 算法使用熵作为正则化器具有相似的优势。与 PPO 一样，它鼓励更广泛的探索，并通过激励代理选择更高熵的操作来避免向不良的局部最优趋同。与熵调节不同，熵最大化具有独特的优势。它倾向于放弃选择不利行为的策略，这也是 SAC 算法往往比 PPO 更具数据效率的另一个原因。

使用 SAC alpha 超参数调整 SAC 中的熵量。最大 SAC alpha 熵值 (1.0) 有利于探索。最小值 (0.0) 恢复了标准的 RL 目标，抵消了激励探索的熵加成。开始尝试的一个不错的 SAC alpha 值是 0.5。在迭代模型时相应地进行调整。

试用 PPO 和 SAC 算法，尝试它们的超参数，然后在不同的操作空间中使用它们进行探索。