无效操作的Policy Gradient(REINFORCE)

问题描述 投票:1回答:1

目前我正在尝试为游戏实施REINFORCE策略梯度方法(使用神经网络)。现在很明显,在某些状态下某些行为是无效的(如果没有火箭发射器,则不能发射火箭发射器!)。

我试图掩盖softmax输出(动作概率),因此这只是来自有效动作的样本。这样工作正常(或看起来如此),但是经过几次训练后,不再选择这些动作(对于某些输入组合,这些节点的所有输出都变为0)。有趣的是,在这些情况下,某些行动节点(无效行动)似乎给出1(100%概率)。

这导致了一个巨大的问题,因为我将不得不随意选择要执行的动作,这显然不会很好。还有其他方法可以解决这个问题吗?

附:我通过将“label”设置为具有折扣奖励值的所选操作节点来更新网络,而其余操作为0,然后在Keras中执行categorical_crossentropy。

policy reinforcement-learning
1个回答
2
投票

我最终使用了两种不同的方法,但它们都遵循应用无效动作掩码的方法。

一种是在从策略梯度获得softmax值之后使用掩码,然后将剩余动作的概率和样本归一化。

第二种方法是在logit层之后应用掩码,这更简单并且似乎具有更好的效果(尽管我没有进行任何定量测量来证明这一点)。

© www.soinside.com 2019 - 2024. All rights reserved.