PaddlePaddle / PARL

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

关于PPO的loss计算公式疑问 #907

Closed IverYangg closed 2 years ago

IverYangg commented 2 years ago

torch版本的PPO示例中 loss = value_loss self.value_loss_coef + action_loss - dist_entropy self.entropy_coef 请问一下,这个公式是符合原论文的公式介绍的,但是,原论文也说如果policy网络和value网络是通过一个神经网络共享参数,就得把policy的损失函数和value的损失函数加在一起。但是在parl的算法实现上,存在了critic和actor两个不同的网络,那么用这个公式作为目标函数还成立么?

TomorrowIsAnOtherDay commented 2 years ago

这个是不影响的,你从梯度回传的公式上推导下,就可以发现,求导后,梯度是分别回传给value网络和policy网络的,如果他们底层的参数共享,那相当于这次计算loss,更新了两次这个模型,如果他们底层参数不共享,相当于分别更新两个单独的网络。

IverYangg commented 2 years ago

非常感谢回复!!!