黑白棋中人工神经网络的输出

Output of Artificial Neural Network in Othello

我正在使用人工神经网络实现黑白棋。当我阅读文档(here,第 19 页)时,我不明白某些要点。 他们计算输出: image 我不知道他们是否计算过,我的 AI 如何知道游戏中的合法动作以选择最佳合法动作。该输出只是一个浮点数(我认为是)以及如何使用它?

好消息

非常简单:神经网络 (NN) 是一个价值网络(而不是策略网络)。该价值网络将棋盘状态作为输入并计算一些描述该位置有多好的分数。它是所有基于 Minimax 的游戏 AI 的基本构建块,通常称为评估函数。 (策略网络输出会给出所有可能动作的概率分布)

所以 NN 给你这个分数。然后,您可以将此分数与您选择的某些算法结合起来。 Minimax(几乎所有国际象棋 AI)和 MCTS(AlphaGo)是最常见的。

Minimax 的基本思想:下棋,对手下棋,(重复),用你的神经网络评估 -> 对所有可能的组合执行此操作并用 Minimax 传播。使用此 NN 只能走几步(半步),但它对奥赛罗来说非常强大,而且很容易实现。

MCTS 的基本思想:玩随机移动,玩随机移动,(重复),直到游戏结束 -> build-winner 统计。现在比较所有可能的“第一步”动作的平均分数。选择最好的。 (更难将神经网络纳入启发式。)

你提到的计算只是神经网络中定义激活和密集层的经典规则。

坏消息

我没读过论文,但困难的是训练和准备你的神经网络。您需要提供一些数据。也许它会受到监督(如果你有历史游戏;更容易),也许不受监督(Q-learning 和 co.)。如果没有经验,这将很难做到。

我想我知道了所有需要的理论,但我还是没能在其他一些(随机)游戏中做到这一点,因为自相关和协有很多问题,也需要很多超参数调整.

结论

这个项目比较复杂,坑也很多。请确保您了解要尝试的算法。看起来你有点缺少基础知识。博弈论 (Minimax),AI/Learning-Theory(MCTS、马尔可夫决策过程、Q 学习...),NN(NN 的基本内部结构)。