我想创建一个可以玩 5-in-a-row/Gomoku 的 AI。我想为此使用强化学习。
我使用带有基线的策略梯度方法,即 REINFORCE。对于价值和策略函数的近似,我使用了神经网络。它具有卷积层和全连接层。除输出之外的所有层都是共享的。策略的输出层有(板的大小)输出单元和softmax。所以它是随机的。
但是,如果网络产生非常高的无效动作概率怎么办?一个无效的动作是当代理想要检查一个包含一个X
或的方块O
时。我认为它可能会停留在那种游戏状态。
我应该如何处理这种情况?
我的猜测是使用actor-critic方法。对于无效的动作,我们应该给予负奖励并将转牌传给对手。