Amazon DeepRacer训练日志分析范例与强化学习Reward Function设计

3181008bc4bf8edf6f0db54ffac417ab.gif

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,选择对应模型。

3f45d4431d2e740eeb68f3b718f1e5b5.png

在Training下,点击Download logs。

e7d37e61a34f2cb64bad73fa94c86975.png

解压模型文件后,我们会看到如下层级:

8ba7185145b55325f1253c9736fbf282.png

其中logs下为训练过程日志,metrics下为训练过程指标,sim-trace下为每个iteration下的trace以及对应award的记录。我们有多种方式对于过程数据进行分析,这里主要分析不同reward function对于sim-trace的影响。

为了统一进行分析,首先需要将所有training-simtrace下的csv进行concat,脚本如下图所示:

f6aa016e087e9d97187f378a267a3d63.png

运行后,在$OutFileName路径下生成新的.csv文件。之后,我们将训练日志按episode来进行划分,依次查看在训练不同阶段的reward以及对应的action变化:

ddb8db4981ab5451c81abae2b3f3cee9.png

d7e5c88f7d4526c93c125a722eb1913b.png

Waypoint限制reward function下train log 可视化。

上图所示是一个进行了局部waypoint限制的reward function下的0-10% episode与90%-100% episode的reward记录,可以看到,在该reward下,模型快速收敛,并且迅速获取到较高reward记录。

519848e5ea4906aac248e27ce859fbb9.png

all_wheels_on_track,速度与转向限定reward function下train log 可视化。

不同的reward function下reward分布不同,上图所示对于all_wheels_on_track,速度与转向进行了限定的训练log展示,该图中reward峰值连续且均匀,但是在连续过弯时候因为没有waypoint限制容易出界,即上图中的黄色区域。

fd4861ece0eed629bf358b3e348df474.png

Steer

e0df6d9f4855a71e967a69901f777160.png

throttle

Waypoint限制的reward function下的reward分布整体均匀,但是如果我们将feature换为steer或者throttle, 如上图所示,可以看到,由于reward并没有对于连续action的奖励,action特别是throttle在训练过程中呈不连续状态。Throttle的不连续性不会影响completion_percentage,但是会影响速度,在竞速比赛中难以拿到优秀成绩。

针对这一问题,我们在reward function中额外增加了对于连续action的reward, 之后新的log如下图所示:

069accfe894e46094e665392d9ece209.png

Steer

dca9724d0ce318d77d79afde433cfb32.png

可以看到,在限制了转向与速度后,虽然动作变得更连续,但是原有waypoint的限制被弱化,整体线路不再顺畅,特别是在左下角部分,出现了异常的弯道,这在实体赛会存在出圈的风险。同时,分析log不难看出,算法收敛也显著变慢。可见,Reward设置需要综合考虑多方面的因素,并留给算法足够的优化空间,并不一定限制越多,效果越好。

强化学习的reward function设计需要持续进行优化。特别是在实体赛中,遇到的sim2real gap会带来额外的调整。持续可视化训练过程log的过程,也是我们逐步理解不同reward function对模型结果影响的过程。

本篇作者

c45153bde64558146ae68ee0d9dc39c2.png

赵安蓓

亚马逊云科技解决方案架构师

负责基于亚马逊云科技云平台的解决方案咨询和设计,尤其在大数据分析与建模领域有着丰富的实践经验。

0d50200d0ff2456a0f81b4933fd84776.gif

120aaab820d7105d259acc90e4a7fba8.gif

听说,点完下面4个按钮

就不会碰到bug了!

e1a9bb3f1f098ebdd12a86d4f6318425.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值