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对模型后果影响的过程。
本篇作者
赵安蓓
亚马逊云科技解决方案架构师
负责基于亚马逊云科技云平台的解决方案征询和设计,尤其在大数据分析与建模畛域有着丰盛的实践经验。