我一般来说是pytorch和ML的新手,因此希望在这里针对我的情况获得一些建议。我有一个带有多个输出节点的神经网络,代表代理可以采取的尝试获得奖励的选项。目标是让神经网络预测采用每个选项的预期价值。
让我感到困惑的是,在我在线阅读的大多数教程中,训练数据都包含每个输出节点的目标。但是,由于我的代理仅收到针对执行该操作的奖励,因此我只知道一个输出节点的目标。仅对一个输出节点进行反向传播的首选/有效方法是什么?
(我尝试过的一件事是,在训练中,将目标值设置为观察到的输入的预测值,并仅更新我们知道其实际值的目标值。这个想法是,另一方的损失是输出节点应该为0,因为每个节点的目标和预测值都相同。通过手动分配y_target[i][output_node] = rewards[i]
来更新这些值似乎已将目标张量的grad_fn从AddmmBackwards更改为CopySlices,我不确定是不是问题