通常,在使用线性函数逼近的策略梯度方法中,softmax方法使用以下公式来计算选择动作一种的概率。这里,权重是θ,特征ϕ是当前状态s和一组动作一种一个动作的函数。
π(θ ,a )= eθ φ (小号,一)∑b ∈ 甲Ëθ φ (小号,b )
为了消除非法举动,可以将一系列行动限制为仅合法的行动,因此大号È 克一升(甲)。
π(θ ,a )= eθ φ (小号,一)∑b ∈ 大号 ë克一升(甲)Ëθ φ (小号,b ),一∈ 大号 ë克一升(甲)
在伪代码中,公式可能如下所示:
action_probs = Agent.getActionProbs(state)
legal_actions = filterLegalActions(state, action_probs)
best_legal_action = softmax(legal_actions)
无论使用线性函数还是非线性函数逼近(您的神经网络),其想法都是在计算softmax时仅使用合法移动。这种方法意味着座席只会给出有效的举动,如果您以后想要更改游戏,这是很好的,并且动作受限选择之间的价值差异会更容易被座席区分。随着可能采取的行动数量减少,它也会更快。