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