2016-11-27 51 views
1

Actor Mimic论文讨论了如何实施一个动作屏蔽程序。我引用如何实现动作遮罩?

在玩某些游戏,我们 屏蔽掉AMN动作输出无效的那场比赛,并采取SOFTMAX了唯一有效行动的子集

没有人有一个想法关于如何在Tensorflow中实现这个动作掩码?在特定情况下,如何才能将softmax仅用于指定的操作子集?

回答

2

假设您有一个包含1和0的有效状态张量。

is_valid = [1, 0, 1, ...]

,然后你必须要在其上采取了添加Softmax那些是有效的值的动作张量。你可以做以下事情。

(tf.exp(actions) * is_valid)/(tf.reduce_sum(tf.exp(actions) * is_valid) + epsilon)

在这种情况下is_valid在总和屏蔽掉无效的值。为了数值的稳定性,我还会在该部分添加一个小的epsilon,这样您就不会被零除。