人工智能学习的最佳/最简单模块?

2024-10-09 03:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了this

我怎样才能让人工智能学会从零开始玩游戏?举个小例子,假设AI玩21点,打折所有的劈叉,牌堆里的牌等等,AI可以打也可以站,它不知道它会做什么,直到它开始输掉比赛,它应该知道打得太多会让你输,站得太早也会输。我读到这叫做强化学习。但我不知道如何实现它,使用什么模块等等。。。在

我应该从哪里开始?在

我的最终目标是创造一种游戏,用户和人工智能玩,不是一个对另一个,而是两个对抗游戏机制本身[不是合作],双方都学习玩。游戏每隔一段时间就会改变,新的机制会出现,使得游戏对玩家和人工智能来说都更加困难。人工智能既可以通过玩游戏来学习,也可以通过观看玩家输赢来学习。我不想让电脑学习太快,我想让两者都在同一个“地面”…也许最后一个层次将是玩家可以玩的对抗人工智能。我是要去正确的地方还是应该尝试其他方法?在

编辑:我觉得这太宽泛了。{SCIA2,我可能会找到一些关于大脑的模块,所以我也会有帮助。前两个我真的不知道如何开始它,对于像我这样的新手来说,文档非常不清楚,neurolab我还没有尝试过,因为我不知道什么是人工神经网络(ANN)以及它如何帮助我,最后一个,更具体的强化学习没有任何文档。在


Tags: 模块用户文档游戏玩家this人工智能ai
1条回答
网友
1楼 · 发布于 2024-10-09 03:25:03

虽然这不是一个完整的答案,但基本原则是:

如果结果不可预测,则当前状态+可能的移动=结果。因此,对于游戏中的任何给定状态(在有一定数量/组合的牌,可能与其他有许多未知牌的组合,或者某些卡牌自上次洗牌后出现)而言,你可以做很多可能的动作(打、站)。然后你可以尝试其中任何一个,记录下结果是好是坏(或介于两者之间)。下一次当你看到相同的当前状态时,你会看到哪一个可能的移动给了你目前为止最好的统计结果(随机性百分比)。在

哪里出去了

如果你有多个移动,并且你直到最后才得到一个实际的结果,你将记录到目前为止所有的(状态+尝试的移动);一旦你得到一个结果,你就把它应用到每一步。在

一旦这样做了,你就可以玩大量的游戏,而且它应该会越来越好。在

诀窍通常是找出构成“状态”的要素。可能的状态越多,在人工智能变得好之前必须玩的游戏就越多,你的数据库也就越大。在21点游戏中,你可能有一个状态就是牌数的总和(这给你20个状态),或者它可能包括其中有多少张是a(我猜大概是40个状态);它可能包括其他玩家有多少张牌;它可能包括你手上的确切数值,但不包括套装(如果你有4张a,你就知道没有其他人有a),或者可能包括(对于21点毫无意义)订购一套牌。在

在某些情况下,“状态”可能更抽象。例如,在国际象棋中,有许多可能的“状态”来学习它们,我们必须抽象。我不知道通常用什么来做这件事;也许是什么在攻击什么,什么在防守什么,有多少个方格被多少个棋子所覆盖,哪些棋子用什么来防守等等;或者

你可能还想考虑什么是“好”和“坏”的结果。你可能会认为,对于21点来说,赢是好的,输是坏的,这就是它的全部。然而,除了失败,还有一些事情需要避免:做出无效的举动。在21点的例子中,假设你的人工智能不知道规则,如果你有一双以外的任何一只手的话,那么分开是比失败更糟糕的事情。如果你认为这是一个“损失”,它最终会得到提示,停止这样做。在

相关问题 更多 >

    热门问题