我目前正在强化学习的背景下学习有关“政策梯度下降”的知识。 TL; DR,我的问题是:“在下面的情况下,对奖励函数的约束(在理论和实践上是什么?什么是好的奖励函数?”)
详细信息:
我想实现一个神经网络,该网络应该学会使用Policy Gradient Descent玩简单的棋盘游戏。我将忽略NN的细节,因为它们无关紧要。据我了解,Policy Gradient Descent的损失函数是对数可能性为负:loss = - avg(r * log(p))
我现在的问题是如何定义奖励r
?由于游戏可以具有3种不同的结果:获胜,失败或平局-似乎为获胜奖励1,为平局奖励0,为损失奖励-1(以及那些导致这些结果的行动的折价)自然的选择。
但是,我在数学上有疑问:
赢赏:1 -这似乎很有意义。概率越接近1,对于梯度逐渐减小的获胜动作来说,这应该将概率推向1。
抽奖奖励:0 -这似乎没有道理。这样只会抵消等式中的任何概率,并且不可能进行学习(因为梯度应始终为0)。
亏损奖励:-1 -这应该是可行的。对于涉及损失的移动,它应将概率推向0。但是,与获胜案例相比,我担心坡度的不对称性。概率越接近0,则梯度越陡。我担心这将对避免损失的政策产生极大的偏见-致使获胜信号根本无关紧要。
答案 0 :(得分:1)
您处在正确的轨道上。但是,我相信您正在将奖励与行动概率相混淆。在平局的情况下,它得知情节结束时奖励本身为零。但是,在发生损失的情况下,损失函数是折现奖励(应为-1)乘以行动概率。因此,它将使您更多地朝着以胜利告终而远离损失,以平局告终的行动落在中间的行动。直观地讲,它与监督式深度学习非常相似,只是附加了一个加权参数(奖励)。
此外,我相信Google DeepMind的这篇论文对您会有所帮助:https://arxiv.org/abs/1712.01815。 他们实际上是在谈论使用RL解决象棋问题。