Amazon DeepRacer 是一款专门为帮忙开发人员进行强化学习(Reinforcement learning)实际而开发的 1 /18 比例的齐全主动驾驶赛车。Amazon DeepRacer 为开发人员提供了一种学习强化学习的简略办法,用新的强化学习算法和模仿到实在域传输办法进行试验,并在事实世界中体验强化学习。开发人员能够在在线模拟器中训练、评估和调整强化学习模型,将他们的模型部署到 Amazon DeepRacer 上,从而取得事实世界的主动驾驶教训,并加入 Amazon DeepRacer League 的较量。
在开启 Amazon DeepRacer 之旅之前,咱们首先在 Amazon DeepRacer 线上模拟器中进行模型训练。一般而言,在训练实现后,咱们须要追溯训练过程中 agent 的静止状况,并进行针对性剖析,能力优化强化学习外围 reward function 设计。在本文中,咱们将会论述针对训练过程静止日志剖析的操作步骤,并针对剖析后果进行 reward function 的调优与调优后比照。
关上 Amazon DeepRacer 控制台,点击 Reinforcement learning—Your models,抉择对应模型。
在 Training 下,点击 Download logs。
解压模型文件后,咱们会看到如下层级:
其中 logs 下为训练过程日志,metrics 下为训练过程指标,sim-trace 下为每个 iteration 下的 trace 以及对应 award 的记录。咱们有多种形式对于过程数据进行剖析,这里次要剖析不同 reward function 对于 sim-trace 的影响。
为了对立进行剖析,首先须要将所有 training-simtrace 下的 csv 进行 concat,脚本如下图所示:
运行后,在 $OutFileName 门路下生成新的.csv 文件。之后,咱们将训练日志按 episode 来进行划分,顺次查看在训练不同阶段的 reward 以及对应的 action 变动:
Waypoint 限度 reward function 下 train log 可视化。
上图所示是一个进行了部分 waypoint 限度的 reward function 下的 0 -10% episode 与 90%-100% episode 的 reward 记录,能够看到,在该 reward 下,模型疾速收敛,并且迅速获取到较高 reward 记录。
all_wheels_on_track,速度与转向限定 reward function 下 train log 可视化。
不同的 reward function 下 reward 散布不同,上图所示对于 all_wheels_on_track,速度与转向进行了限定的训练 log 展现,该图中 reward 峰值间断且平均,然而在间断过弯时候因为没有 waypoint 限度容易出界,即上图中的黄色区域。
Steer
throttle
Waypoint 限度的 reward function 下的 reward 散布整体平均,然而如果咱们将 feature 换为 steer 或者 throttle, 如上图所示,能够看到,因为 reward 并没有对于间断 action 的处分,action 特地是 throttle 在训练过程中呈不间断状态。Throttle 的不连续性不会影响 completion_percentage,然而会影响速度,在竞速较量中难以拿到优良问题。
针对这一问题,咱们在 reward function 中额定减少了对于间断 action 的 reward, 之后新的 log 如下图所示:
Steer
能够看到,在限度了转向与速度后,尽管动作变得更间断,然而原有 waypoint 的限度被弱化,整体线路不再顺畅,特地是在左下角局部,呈现了异样的弯道,这在实体赛会存在出圈的危险。同时,剖析 log 不难看出,算法收敛也显著变慢。可见,Reward 设置须要综合思考多方面的因素,并留给算法足够的优化空间,并不一定限度越多,成果越好。
强化学习的 reward function 设计须要继续进行优化。特地是在实体赛中,遇到的 sim2real gap 会带来额定的调整。继续可视化训练过程 log 的过程,也是咱们逐渐了解不同 reward function 对模型后果影响的过程。
本篇作者
赵安蓓
亚马逊云科技解决方案架构师
负责基于亚马逊云科技云平台的解决方案征询和设计,尤其在大数据分析与建模畛域有着丰盛的实践经验。