Questions tagged «game-ai»

4
在强化学习中如何处理无效动作?
我想创建一个可以玩五行/五子棋的AI。正如我在标题中提到的那样,我想为此使用强化学习。 我将策略渐变方法(即REINFORCE)与基线一起使用。对于价值和政策函数的近似,我使用了神经网络。它具有卷积和完全连接的层。除输出外,所有层都是共享的。该策略的输出层具有8 × 8 = 648×8=648 \times 8=64(单板的大小)输出单元,并在其上具有softmax。因此它是随机的。但是,如果网络产生无效移动的可能性很高,该怎么办?无效的举动是当代理要检查其中有一个“ X”或“ O”的正方形时。我认为它可能会停留在该游戏状态中。 您能为这个问题推荐任何解决方案吗? 我的猜测是使用演员批评方法。对于无效的举动,我们应该给予负奖励,并将转牌转移给对手。


2
神经网络的输入/输出编码,以学习基于网格的游戏
我正在写一个简单的玩具游戏,目的是在其上训练深层神经网络。游戏规则大致如下: 游戏的棋盘由六边形单元组成。 两位玩家都拥有相同的棋子集合,他们可以选择自由放置在棋盘上。 根据彼此的位置和配置放置不同类型的棋子奖励积分(或减少对手的积分)。 得分更高的人获胜。 还有其他规则(关于转弯,件数和类型等),但是在此问题中它们并不重要。我想设计一个深度神经网络,该网络可以通过与自身竞争来反复学习。我的问题是关于输入和输出的表示。尤其是: 由于碎片的模式很重要,所以我一直认为至少要有一些卷积层。电路板可以有各种尺寸,但原则上非常小(在我的测试中为6x10,可以通过几个单元进行扩展)。是否有意义?我可以使用哪种池? 如何代表双方?在这篇关于go的论文中,作者使用了两种输入矩阵,一种用于白宝石,另一种用于黑宝石。在这种情况下也可以工作吗?但是请记住,我有不同类型的片段,例如A,B,C和D。我应该使用2x4输入矩阵吗?对我来说,它似乎很稀疏,效率很低。我担心卷积层将无法正常工作。 我认为输出结果可能是代表董事会位置的矩阵上的概率分布,以及指示要播放的部分的概率单独数组。不过,我也需要代表的能力通过交替之际,这是非常重要的。如何在不降低其在其他概率中的重要性的情况下做到这一点? 而且最重要的是,我是否只强制执行获胜举动还是执行失举?实施获胜的举动很容易,因为我只是将所需的概率设置为1。但是当失败时,我该怎么办?将该移动概率设置为0,将所有其他概率设置为相同值?另外,即使最终得分差异与输出的含义相违背,通过最终得分差异实施移动是否有意义? 另外,我在node.js中开发了游戏引擎,并考虑将Synaptic用作框架,但是我不确定它是否可以与卷积网络一起工作(我怀疑是否有办法固定与本地感知领域相关的权重)。关于与节点兼容的其他库的任何建议?

2
AlphaZero是AGI的一个例子吗?
根据DeepMind 在arxiv.org上的研究论文: 在本文中,我们将类似但完全通用的算法(称为AlphaZero)应用于国际象棋和将棋以及围棋游戏,除了游戏规则外,没有任何其他领域知识,这证明了通用强化学习该算法可以在许多具有挑战性的领域中实现超人性能。 这是否意味着AlphaZero是AGI(人工通用情报)的一个例子?

3
如何为基于回合的棋盘游戏训练神经网络?
我想知道如何训练基于神经的棋盘游戏,如井字游戏,国际象棋,风险游戏或其他基于轮的游戏的神经网络。通过推论游戏状态作为输入并使用输出作为当前玩家的举动,通过推论得出下一步行动似乎是很直接的。但是,为此目的训练AI似乎不是那么简单,因为: 如果一招好还是不好,可能没有评级,因此训练单举似乎不是正确的选择 使用整个游戏的所有游戏状态(输入)和移动(输出)来训练神经网络,这似乎不是正确的选择,因为并非输掉的游戏中的所有移动都不好 所以我想知道如何为基于回合的棋盘游戏训练神经网络?我想使用张量流为井字游戏创建神经网络。

4
神经网络可以解决距离的概念吗?
想象一个游戏,它是一个黑屏,一个红色像素和一个蓝色像素。将这个游戏交给人类,他们将首先看到按下箭头键将移动红色像素。他们将尝试的下一件事是将红色像素移动到蓝色像素。 将此游戏交给AI,它将随机移动红色像素,直到一百万次尝试之后,它意外移动到蓝色像素上以获得奖励。如果AI具有红色和蓝色像素之间的距离的某种概念,则它可能会尝试最小化该距离。 如果不对距离的概念进行实际编程,那么如果我们拿游戏中的像素作为像素,我们是否可以计算出一个数字(例如“熵”),那么当像素相距较远而与彼此靠近时,该数字会更低吗?它应与其他像素配置一起使用。例如具有三个像素的游戏,其中一个像素好,一个像素坏。只是为了让神经网络更了解屏幕的外观?然后给NN一个目标,例如“尝试最小化董事会的熵并尝试获得奖励”。 在当前的研究中有什么与此类似的东西吗?

1
关于在象棋这样的游戏中应用强化学习的一些疑问
我发明了象棋的棋盘游戏。我建立了一个引擎,使其可以自主播放。引擎基本上是决策树。由以下人员组成: 一个搜索功能,可以在每个节点找到所有可能的合法举动 评估功能,可为棋盘位置分配一个数值(正数表示第一个玩家获得优势,负数表示第二个玩家赢得胜利) Alphabeta修剪negamax算法 有关此引擎的主要问题是评估功能的优化确实很棘手。我不知道要考虑哪些因素以及要考虑的权重。我认为改善引擎的唯一方法是,每次因数和权重的不同组合进行尝试时都要迭代游戏。但是,这在计算上似乎是一项艰巨的壮举(我可以不使用深度学习而向后传播吗?)。 我想使用强化学习,通过与自己对战来改善引擎。我一直在阅读有关该主题的文章,但我仍然很困惑。 在游戏中,输赢(1或0)部分还有什么其他奖励?如果我使用其他奖励,例如每次评估函数的输出,该如何实现呢?如何修改评估函数,以在迭代后获得更好的回报?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.