le-liang / MARLspectrumSharingV2X

Spectrum sharing in vehicular networks based on multi-agent reinforcement learning, IEEE Journal on Selected Areas in Communications
226 stars 93 forks source link

关于SARL测试性能稳定性的问题 #7

Closed zhiwei-roy-0803 closed 3 years ago

zhiwei-roy-0803 commented 3 years ago

梁老师您好,

    最近我在学习您V2X资源分配相关的代码,但是我跑您的SARL代码的时候发现利用训练好的模型进行测试的时候每一次测试模型的性能方差很大,有点时候V2V链路成功率在90%以上,有的时候又跌到50%左右,V2I链路的容量也变化很大,不知道您在做实验的时候是不是也发现了这一点,当然我注释了您代码中锁定随机数种子的部分。我怀疑是每一次车辆撒点的位置与车辆的速度影响比较大,也就是模型在测试时遇到的链路与训练时差别比较大导致了这个问题,但是我增加训练的轮数似乎也没有解决这个测试稳定性的问题,希望与您就这个问题进行一些交流!
le-liang commented 3 years ago

梁老师您好,

    最近我在学习您V2X资源分配相关的代码,但是我跑您的SARL代码的时候发现利用训练好的模型进行测试的时候每一次测试模型的性能方差很大,有点时候V2V链路成功率在90%以上,有的时候又跌到50%左右,V2I链路的容量也变化很大,不知道您在做实验的时候是不是也发现了这一点,当然我注释了您代码中锁定随机数种子的部分。我怀疑是每一次车辆撒点的位置与车辆的速度影响比较大,也就是模型在测试时遇到的链路与训练时差别比较大导致了这个问题,但是我增加训练的轮数似乎也没有解决这个测试稳定性的问题,希望与您就这个问题进行一些交流!

原则上而言,经过较长时间的训练,agent应该能够利用 channel, interference power, queue length等信息分配资源,而不过分依赖于车辆的位置和速度。代码中固定随机种子,是为了实验可重复,但应该不会使 test 和 train的环境是一样的,原则上而言注释掉应该不会有太大影响。当然环境发生巨大改变,应该会带来算法性能的恶化。SARL的原始代码在这里,可以两边对比着看,多调一调,DNN有些结果确实容易出人意料: https://github.com/haoyye/ResourceAllocationReinforcementLearning