DRL-code-pytorch icon indicating copy to clipboard operation
DRL-code-pytorch copied to clipboard

PPO代码存在critic loss无限增长的问题

Open BroOfBallSis opened this issue 2 years ago • 4 comments

使用此处的PPO代码,训练时总是发现critic loss不断增长,甚至会增长到1e18的数量级; 经比较其他地方的PPO代码,怀疑是此处的PPO代码在计算target_value时使用了当前的critic网络来计算batch中state的value, 因此导致值估计越推越高; 将代码改为在replay buffer中存入记录的同时存入state的值估计,而不是在计算target_value时计算state的值估计, critic loss无限增长的问题得到解决。

BroOfBallSis avatar May 14 '23 05:05 BroOfBallSis

您好,有做结果的保存吗?

Ethan21435 avatar May 14 '23 08:05 Ethan21435

@BroOfBallSis 请问,你改动后,性能有没有提升呢,critic loss有时确实会出现这种问题,但是只要expected return是上升趋势我觉得还ok

RisingAuroras avatar Jun 08 '23 03:06 RisingAuroras

是的 PPO_discrete 的update函数存在问题

futalemontea avatar Mar 11 '24 13:03 futalemontea

你好,能否要下您的修正代码?

使用此处的PPO代码,训练时总是发现critic loss不断增长,甚至会增长到1e18的数量级; 经比较其他地方的PPO代码,怀疑是此处的PPO代码在计算target_value时使用了当前的critic网络来计算batch中state的value, 因此导致值估计越推越高; 将代码改为在replay buffer中存入记录的同时存入state的值估计,而不是在计算target_value时计算state的值估计, critic loss无限增长的问题得到解决。

Starlight0798 avatar Jun 01 '24 07:06 Starlight0798