基准场景“合并”中的仿真参数和奖励计算

时间:2019-06-18 13:41:19

标签: flow-project

我目前正在尝试从您以前的论文中获得关于流程安装的一些结果。我遇到了以下问题,其中我不清楚实验中使用的确切参数以及论文中给出的结果。

对于[1],我希望能够通过从您的仓库运行stabilizing_highway.py来重现结果。 (使用提交“ bc44b21”,尽管我尝试运行当前版本,但找不到与我的问题有关的差异)。 我期望[2]中使用的合并方案是相同的。

我已经在论文/代码中找到差异的地方是:

1)[2](2)中的奖励函数与[1](6)中的奖励函数不同:第一个使用最大值,并在总和的第一部分进行归一化。为什么会有这种差异? 查看代码,我将其解释如下: 根据评估标志,您可以将(a)奖励计算为模拟中所有车辆的平均速度,或者(b)作为[2]中给出的函数(不对速度进行归一化),但将值计算为alpha(代码中的eta2)= 0.1(请参见merge.py,第167行,compute_reward)。我找不到文件中提供的alpha参数,因此我假设使用的是代码版本?

2)我进一步阅读该代码,就好像您是通过遍历模拟中的所有车辆而不仅仅是观察到的车辆来计算代码一样?这对我来说似乎违反直觉,在部分观察到的环境中使用奖励函数通过使用来自完全观察到的状态信息的信息来训练代理...!?

3)这导致下一个问题:您最终想要评估设置了评估标志时给出的奖励,即仿真中所有车辆的平均速度,如[1]的表1所示。这些值是通过在运行可视化工具时可以产生的missions.csv文件中的“速度”列进行平均计算得出的吗?

4)下一个问题是关于[1]和[2]图中的累积收益。在[1]中,图3在合并方案中为cum。回报率最高约为500,而最高[5]的[2]值大约为200000。为什么会有这种差异?使用了不同的奖励功能?请问,您能否同时提供这两个字母的Alpha值并验证哪个版本正确(纸张或代码)?

5)从[1]表1,合并1和2,我也观察到:ES显然具有最高的平均速度值,但是TRPO和PPO具有更好的累积收益。这是否表明40个评估卷不够用以获得代表性平均值?还是最大化培训奖励功能并不一定能给出良好的评估结果?

6)我不清楚其他一些参数: 在[1]图3中,提到了50个卷展栏,而N_ROLLOUTS = 20。您建议使用什么? 在[1] A.2合并中,T = 400,而HORIZON = 600,在[2] C中。仿真讨论的是3600s。查看运行visualizer_rllib.py时在Sumo中产生的重播,仿真在时间120.40终止,该时间与600的HORIZON相匹配,时间步长为0.2s(此信息在[2]中给出)。 因此,我认为在这种情况下,应将地平线设置为比1和代码中的都高得多,而应将其设置为18.000?

感谢任何提示! KR M

[1] Vinitsky,E.,Kreidieh,A.,Le Flem,L.,Kheterpal,N.,Jang,K.,Wu,F.,...&Bayen,A.M.(2018年10月)。混合自主交通中强化学习的基准。在机器人学习大会上(pp。399-409)

[2] Kreidieh,Abdul Rahman,Cathy Wu和Alexandre M. Bayen。 “通过深入的强化学习,在封闭和开放的网络中消散走走停停的浪潮。”在2018年第21届智能交通系统国际会议(ITSC)中,第1475-1480页。 IEEE,2018年。

1 个答案:

答案 0 :(得分:1)

对延误答案表示歉意。

  1. 代码中描述的版本就是所使用的版本。论文[1]是在论文[2]之后编写的(尽管其中一个是较早发表的),我们添加了归一化术语来帮助标准化跨问题的学习率。奖励函数是代码库中使用的函数;评价标志为true对应于实际计算交通统计数据(即速度),而评价标志为false对应于我们在火车时刻使用的奖励函数。

  2. 正如您指出的那样,在奖励功能中使用所有载具是一个错误的假设,我们显然无法访问所有这些数据(尽管您可以想象我们能够通过感应回路)。未来的工作将集中在消除这一假设上。

  3. 您可以这样操作。但是,我们只是通过在训练有素的策略下运行实验,在每一步中存储所有车速,然后在实验结束时计算结果来进行计算。

  4. 不幸的是,两个版本都是“正确的”,正如您所指出的,差异与[2]中添加的“ eta”项和[1]中的规范化有关。

  5. 就像您说的那样,训练奖励功能与测试奖励功能不同,因此,将评估标志关闭可以很好地执行算法。这是我们做出的选择,具有单独的培训和测试功能。欢迎您在训练时使用测试功能!

  6. 两者都应该起作用;我怀疑代码库中的N = 20随着时间的流逝而逐渐流行,因为人们发现50对于这种情况不是必需的。但是,每种RL算法在推出更多产品时效果会更好,因此将N = 50设置不会有任何问题。至于地平线,据我在代码库中所知道的,答案是sim_step为0.5,地平线为750,因此实验应运行375秒。

如果您还有其他问题,请给相应的作者(我)发电子邮件!我很乐意帮助您更详细地解决这一问题。