PaddlePaddle / PARL

A high-performance distributed training framework for Reinforcement Learning
https://parl.readthedocs.io/
Apache License 2.0
3.22k stars 816 forks source link

关于PPO算法计算gae的疑问 #959

Closed IverYangg closed 1 year ago

IverYangg commented 1 year ago

defcomputereturn

你好,请问在计算gae时,假如当前时刻是env._max_episode_steps == self.env._elapsed_steps,也就是当前的一个episode中,step已经到了最大步数,那么此时的mask和bad_mask都是0,第105行和106行这里,最后一个状态的gae为什么是0呢?为什么不这样计算gae = delta + gamma * gae_lambda * self.masks[step + 1] * gae * self.bad_masks[step + 1]

IverYangg commented 1 year ago

还有一个问题想请教一下,就是在每一个episode结束,有以下三种情况,第一是在没有达到一个episode规定的最大步数的时候,因为任务失败了,没能继续进行下去,因此,reset环境,第二种情况是成功的完成了任务,也没有达到episode规定的最大步数,第三种情况,如果作为mujoco的hopper环境来讲,任务没有所谓成功而结束,只是步数达到了规定的最大步数,这个时候最后一个step的时候,获得了新的观测值和基于这个新的环境的一个value,这中情况下,计算advantage是否要区别与前两种情况?