【问题标题】:Limit RNN legal output for each time step限制每个时间步的 RNN 合法输出
【发布时间】:2021-03-30 10:28:07
【问题描述】:

我正在尝试让 RNN 预测纸牌游戏的动作。在每个时间步中,只有某些动作是合法的(即某些动作在某些情况下不能进行)。

因此,在游戏中的任何给定点,12 步中的一步都是正确的。每一步都被标记为 0 到 11 范围内的 int。在大多数情况下,只有其中的一部分实际上是合法的移动。所以说我尝试训练模型,它预测例如在某种情况下移动 4,但是此时只有移动 2、3 和 9 是合法的。进行此移动后,允许下一个时间步长使用不同的子集。如何让它仅从移动的子集进行预测?

我还没有到编码模型的地步,但我打算在 Python 中使用 Keras/TensorFlow LSTM 来做到这一点。

如果你能在这里指出一个好的方向,我会很高兴!

【问题讨论】:

    标签: python tensorflow keras lstm recurrent-neural-network


    【解决方案1】:

    您可以添加掩码作为调用模型的参数。

    但最简单的方法是将预测作为所有移动的概率,然后忽略那些不允许的移动。

    【讨论】:

    • 谢谢,是的,最后一个提示也是我正在考虑的。这让我对训练有点担心,因为经常接受概率较低的答案可能会使预测不准确。但是,考虑到它,它甚至可能会加强这些情况下的选择,所以我认为值得一试。
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多