我正在使用策略梯度训练我的网络并将损失定义为:
self.loss = -tf.reduce_mean(tf.log(OUTPUT_NN)* self.REWARDS))
self.opt = tf.train.AdamOptimizer(self.lr).minimize(self.loss)
我不明白的是,损失函数有时是正的,有时是负的。我不明白信号中的这种翻转。对我来说,它应该总是负数,因为我前面有减号tf.reduce_mean.
例子:
Train-> Reward: 0.257782, Hit Ration: 0.500564, True Positive: 0.433404, True Negative: 0.578182, loss: 6.698527
Train-> Reward: 0.257782, Hit Ration: 0.500564, True Positive: 0.433404, True Negative: 0.578182, loss: -11.804675
这是可能的还是我在我的代码中做错了什么?
谢谢。