为棋盘游戏设计状态表示

人工智能 神经网络 强化学习 楷模
2021-11-09 01:26:47

我正在尝试编写自玩 RL(NN + MCTS http://web.stanford.edu/~surag/posts/alphazero.html)来“解决”棋盘游戏。但是,我在设计相同的棋盘游戏时遇到了困难(NN 的输入层)。

1) 如果游戏中有大约 10-100 个单元格可以被任何扑克牌占据,那么表示每个单元格的最佳方式是什么。进行一次热编码并为单个单元格([0, 0, 1, ..., 0])获取 52 个节点,或者只需将 card_id 除以卡片总数并为每个单元格获取单个节点([0.0576... ])?

2)通过添加可以从其他节点派生的额外输入来帮助 NN 是好还是坏的做法?例如,想象一下红牌最多的人获胜的游戏。输入是 10 张卡片,我正在添加新的输入节点(红卡数量)来强调它。这会导致积极的结果还是做类似的事情是不好的?

3)通过创建额外的输入来说明哪些卡现在可用,哪些不可用,是否有助于减少非法移动的数量并提高 NN 的性能?

0个回答
没有发现任何回复~