水平位置控制强化学习延迟问题

Constant Delayed MDP (CDMDP)

  1. 它的问题在于之前默认在训练过程,agent做出动作之后,环境的state立刻做出了相对于动作的改变,reward也是针对于该action的。

  2. 而CDMDP中,要么是action会被延迟才有作用,要么是环境的state和reward要延迟。总之都是在t时刻,Atcion_t和State_t、Reward_t不是对应的关系。针对我们的情况state_t和reward_t是和action_t-50对应的。

  3. 之前游戏的例子、围棋的例子三者都是对应的,只是设置奖励是需要在最后给予大的奖励。

  4. CDMDP也是强化学习为什么在真实世界中应用较少的一个原因,现实世界中延迟是很常见的,而基于虚拟器创建的模型在面对现实的延迟之后性能会变得很差。

1. Just ignore the delay

假设CDMDP就是MDP,需要延迟时间较短。

按照韩楚的论文,延迟在2ms-5ms,之前都用的5ms,改为2ms后效果依然不好

2. Reconstruct the MDP from the CDMDP (Augmented approach)

参考:Markov Decision Processes With Delays andAsynchronous Cost Collection

3. Predicting the delayed observation

使用一个预测模型P来预测延迟之后的状态。 参考:

  1. Learning and planning in envs with delayed feedback, (2008)[5]

  2. At Human Speed: Deep RL with action delay, (2018)[6]

RecurrentPPO

  1. Recurrent PPO 是一种基于 PPO 的变体,它引入了循环神经网络(RNN)以处理时序数据和状态之间的时序关系。

  2. Recurrent PPO 通常用于处理需要考虑先前状态的任务,例如部分可观察的环境或需要记忆的序列性任务。

  3. RNN 在 Recurrent PPO 中用于捕捉状态之间的时序依赖性,以帮助智能体更好地理解环境的动态性,并在长时间跨度内进行决策。

  4. 效果还不行

pcsvp BUG

  1. 在没有连接jupyter的情况下,运行两次以上后,报错:无法识别 update_on_minor_steps 参数;

  2. 定制模块不能显示icon

  3. 定制模块多个参数的情况下,重写的set_parameters函数只被调用了一次(除了针对update_on minor_step参数),且前端的参数无法传入后端。


本文章使用limfx的vscode插件快速发布