Keras 强化学习策略梯度两种不同的带奖励的更新方法?

Keras 强化学习策略梯度两种不同的带奖励的更新方法?,keras,reinforcement-learning,Keras,Reinforcement Learning,我在看政策梯度的两个不同例子,想知道为什么有两种不同的方法来获得优势函数。 其中一个将优势直接转化为折扣奖励 advantages[i][self.actions[i]] = discounted_rewards[i] 直接传递给分类交叉熵 另一个有 loss = tf.reduce_mean(neg_log_prob * self.tf_vt) 然后他试图最小化(tf_vt只是折扣报酬,计算方法与上面的方法相同) 第一种方法不应该是 advantages[i][self.actions[i

我在看政策梯度的两个不同例子,想知道为什么有两种不同的方法来获得优势函数。 其中一个将优势直接转化为折扣奖励

advantages[i][self.actions[i]] = discounted_rewards[i]
直接传递给分类交叉熵

另一个有

loss = tf.reduce_mean(neg_log_prob * self.tf_vt)
然后他试图最小化(tf_vt只是折扣报酬,计算方法与上面的方法相同)

第一种方法不应该是

advantages[i][self.actions[i]] = probability_from_softmax * discounted_rewards[i]

如果它们是一样的?还是我误解了这里手动计算负对数概率的区别?

我认为是一样的。他们只是用两种不同的方式写作。第一个定义计算优势函数,而第二个定义直接计算损失。优势函数只是给出了与平均回报(价值)相比,该特定回报的优势程度。如果提供的值为零,则得到第一个定义。现在,需要计算损失。因此,分类交叉熵给出了对数概率乘以优势。在第二个定义中,整个过程都是手动完成的

因此,与DQN相比,损失为(TD目标预测)^2,加固损失是多少?原始算法是θ← θ + α∇θlogπθ(st,at)vt第二,因为它只设置了奖赏所采取的行动,其他人在交叉熵期间会受到它的影响吗?e、 g.为什么没有设置[i][self.actions[i]]=softmax[i]的优点,这有点像DQN算法的优点?我会将Enhanced与监督学习算法进行比较。损失是行动概率乘以奖励,类似于监督损失(按奖励加权)。在您的第二个问题中,损失是更新保单网络。因此,政策网络需要知道的是,对于给定的州,应该采取什么样的最佳行动。我理解您将其与DQN混淆,但在这种情况下,您直接从状态转换为操作,而不更新Q值。