我正在尝试为 PyTorch 中的软 Q-learning、actor-critic 策略梯度算法实现自定义损失函数。这来自以下论文Learning from Imperfect Demonstrations。该算法的结构类似于深度 q 学习,因为我们使用网络来估计 Q 值,并且我们使用目标网络来稳定结果。然而,与 DQN 不同,我们通过以下方式从 Q(s) 计算 V(s):
这很简单,可以使用 PyTorch 进行计算。我的主要问题与如何设置损失函数有关。部分更新方程表示为:
请注意,Q_hat 来自目标网络。我怎样才能将这样的东西放入损失函数中?我可以计算 V 和 Q 的值,但在这种情况下如何处理梯度?如果有人可以向我指出一个类似的例子,那将不胜感激。