亚马逊云科技DeepRacer模型训练指南及标准硬件配置流程

时间:2023-04-13 13:51:05 来源:今日头条

  原标题:亚马逊云科技DeepRacer模型训练指南及标准硬件配置流程

  Amazon DeepRacer介绍

  Amazon DeepRacer是一个综合性的学习系统,可供各个水平的用户用来学习和探索强化学习以及试验和构建自动驾驶应用程序。

  DeepRacer可分为两个主要部分:

  Amazon DeepRacer Console:在线训练和评估强化学习模型在模拟自动驾驶环境;

  Amazon DeepRacer车辆:1/18比例的RC车辆,导入训练好的Amazon DeepRacer模型上运行推理用于自动驾驶。

  本文从两个主要部分讨论DeepRacer的使用:

  DeepRacer在线训练:从奖励函数、赛车知识和强化学习参数3个方向出发,优化模型线上及线下的性能;

  DeepRacer物理赛车:提供DeepRacer硬件使用过程中的标准流程,避免错误的配置流程导致性能不佳,包括:初次开箱配置、再次使用时的检查流程,以及debug流程。

  奖励函数基本思想

  DeepRacer底层技术基于强化学习,在强化学习中,agent(智能体)学习的目标被表示为reward(收益),收益通过environment(环境)传递给agent reward在每个时间点上是一个标量。而agent的目标,是最大化收到的总体reward。因此,与计算机中的贪心算法不同,强化学习的agent的目标并非最大化当前的reward,而是最大化长期reward的累计公式。

  在DeepRacer训练中,模拟器通过给agent返回reward来与其交互,而agent根据reward来更新自己的策略。在《Reinforcement learning: An introduction》一书中,reward由状态,动作和下一个状态共同决定。

  在强化学习项目中,reward function的设计是其中重点,也是最耗费时间的部分,因为在提高agent能力的同时,还要避免agent投机取巧,找到提高奖励值的方法。

  使用上面的奖励函数,通常可以训练出一个比较稳定的模型,然而DeepRacer竞赛评判的标准除了稳定,还关注速度,因此,我们可以将更多的params提供的参数用上。

  强化学习的参数理解

  深度强化学习算法

  DeepRacer的底层算法是深度强化学习,其中可以选择的算法有两个,我们可以根据训练的时间和赛道类型选择合适的模型:

  PPO(Proximal Policy Optimization):基于Policy Gradient的思想,是主流的深度强化学习算法之一。PPO对样本的利用效率较低,训练时需要大量样本,鲁棒性较高,对超参数不敏感,收敛效果较好。

  SAC(Soft Actor-Critic):基于DDPG的思想,与PPO相比,对样本的利用程度更高,所需要的样本数更少。但SAC鲁棒性较低,对超参数敏感,收敛效果较差。

  超参数

  深度强化学习的底层是神经网络结合强化学习,因此我们可以配置的超参数分为2大类:

  强化学习超参数

  神经网络超参数

  深度学习参数的简介如下:

  Gradient descent batch size:从经验缓冲区中随机采样的最近车辆经验数,用于更新基础深度学习神经网络权重。

  Number of epochs:在梯度下降期间,遍历训练数据(经验缓冲区的随机样本)以更新神经网络权重的次数。

  Learning rate:更新权重时,新权重的占比。

  Entropy:不确定性概率,模型有一定概率选择随机探索。

  Discount factor:未来奖励对预期奖励的影响程度。

  Loss type:损失函数的类型。分为Mean squared error loss(均方误差损失)和Huber loss(Huber损失)类型。

  Number of experience episodes between each policy-updating iteration:经验缓冲区的大小,用于记录过去的经验。

  根据以上超参数的定义,有如下调参建议:

  如果奖励函数过于激进,导致模型不易收敛,可以尝试降低learning rate或选择huber loss,让学习的过程更加平滑;

  如果模型在过弯时反应不够灵敏,或转弯时机总是比较晚,可以尝试提高discount factor,让模型更注重远期奖励;

  反之,如果模型在过弯时过于灵敏,过早转弯,可以尝试降低discount factor,避免模型过于关注远期奖励,同时,也可以使用waypoints来解决;

  Reward的延迟也要在discount factor的设置中考虑,如果reward设置的的延迟较高时,可以适当提高discount factor值;而reward实时性较好时,可以降低discount factor值;

  Batch size与epoch越大,模型在训练的权重更新则越平滑。但如果Batch size或epoch过大,会导致训练速度降低及收敛至局部最优,因此可以联合调试Batch size和epoch的值;

  适当增加经验缓冲区大小,会提升模型的收敛的稳定性,如果模型始终不收敛或性能震动较大,可以尝试适当增加经验缓冲区的大小;

  与PPO模型相比,在使用SAC模型时,建议使用更高的epoch来缓解算法本身对超参数敏感的问题;

  如果模型训练过程中的性能提升过于缓慢,可以适当增加entropy值,提升模型随机探索的可能性;

  如果模型的性能提升过于缓慢或变动较小,可以适当增加entropy值;反之,如果模型在收敛过程中震荡较大,可以适当降低entropy值。

  Action Space

  Action space指的是agent可选的动作范围,在DeepRacer训练配置中,可以选择下面两种action space:

  Continuous action space:连续动作空间,提供速度和转角的上下限,agent可在范围中寻找合适的值;

  Discrete action space:离散动作空间,提供action的组合(速度+转角)。

  通常情况下,continuous action space较难收敛,需要更多的训练时间和更精细的奖励函数配置。

投稿:chuanbeiol@163.com
点击展开全文

你遇到过鬼打墙吗,科学家给出了合理的解释!