From AlphaGo Zero to 2048论文分享

0 摘要

近年来,游戏 2048 获得了巨大的人气 [6]。游戏允许玩家移动屏幕上的数字(2 的幂,例如 2、4、8、16 等),总和至少为 2048。因为它只有 4 个动作,所以很容易上手: 上、下、左、右。但是,很难获得大于或等于 2048 的数字,因为您在当前状态下所做的每个操作都会导致数百个不可预知的结果。在本文中,我们提出了一种用于 AlphaGo Zero 和 2048 游戏的类似算法,具有独特的奖励和惩罚系统,以提高人工智能 (AI) 的自学速度并为 AI的自动播放模式获得更高的分数。此外,基于具有 Alpha-Beta 修剪的 Minimax 算法、Expectiminimax 算法和蒙特卡洛树搜索 (MCTS) 的结果,我们得出结论,蒙特卡洛树搜索在应用于 2048 游戏时优于其他算法。最后,我们表明具有强化学习的人工智能 [9] 可以击败人类在 2048 年游戏中取得的最高分。

1 引言

AlphaGo [10] 是一个玩棋盘游戏 Go [12] 的计算机程序。而且,它是第一个击败职业人类围棋选手的计算机程序,也是第一个击败世界围棋冠军的程序。 AlphaGo 是由 Alphabet Inc. 在伦敦的 Google DeepMind 开发的。它有三个更强大的继任者,称为 AlphaGo Master、AlphaGo Zero 和 AlphaZero [12]。最早的版本 AlphaGo 需要成千上万的人类业余和专业游戏来学习和掌握围棋游戏,而 AlphaGo Zero 是第一个从完全随机的游戏开始,通过与自己玩围棋游戏来学习的版本。已经证明 AlphaGo Zero 比之前的版本 [11] 更好。自从 AlphaGo Zero 广受好评后,人们就开始尝试研究 AlphaGo Zero 的算法/方法,以便将其应用到其他游戏中。在本文中,我们将展示一个可以自动玩游戏 2048 并在合理的运行时间内最大化游戏分数的 AI。
Game 2048 是一款单人益智游戏。 Gabriele Cirulli 是一位意大利用户界面设计师和 Web 开发人员,他创建了这款游戏并于 2014 年 3 月发布了它 [13]。游戏 2048 很简单:给玩家一个 4 × 4 的棋盘,其中每个牌可能包含一个 2 的幂的数字。开始时,只有两个编号的牌,编号为 2 或 4。玩家控制并通过按箭头键更改棋盘,棋盘中的图块会根据玩家移动。例如,如果你按向上键,所有的图块都会向上。如果相邻单元格上的数字匹配,它们将合并;否则,它们将保持在原来的位置(见图 1)。此外,每次移动后,一个新的数字,2 或 4,将均匀地出现在一个空单元格上,配给可以设置。在本文中,我们将 2 和 4 之间的出现比率设置为 9:1。玩家的目标是在 4 × 4 网格上滑动编号的图块,以合并并创建一个编号为 2048 或更大的图块(参见图 1)。当没有空单元格且没有更多有效动作时,游戏结束。如果在游戏结束前棋盘上出现了编号为 2048 的棋子,则玩家获胜。
在这里插入图片描述
图 1:游戏 2048 中的移动示例。左图显示当前状态,右图显示“向上”移动后的下一个状态。 左边有两个 8。 向上移动瓷砖后,底部的 8 将向上移动并与上面相同的数字 8 合并,组合成一个 16。

我们认为以下三种方法是最流行和最有效的策略:带有 alpha-beta 剪枝的 Minimax 算法、Expectimax 算法和 Monte Carlo Tree Search (MCTS)。 然后我们根据我们在训练 AI 时为游戏设置的规则设置奖励和惩罚。 这样一来,2048就可以从单人益智游戏衍生到自动AI游戏,这意味着在整个自学过程中不再需要人机交互。 在没有来自人类专家的数据集的情况下训练人工智能对于开发具有超人技能的人工智能具有重要意义,因为专家数据通常很昂贵、不可靠或根本不可用。

论文主要分为三个部分:

  1. 两种奖惩制度
  2. 三种树搜索算法:
    a) 带有 alpha-beta-pruning 的 Minimax 算法
    b) Expectimax 算法
    c) 蒙特卡洛树搜索 (MCTS)
  3. 上述三种算法的结果比较。

2 两种奖惩制度

我们设置了两种奖惩系统:一种使用权重矩阵α,另一种使用权重矩阵β。 权重矩阵 α 是一个在右上角具有最高值且其值沿对角线递减的矩阵(见图 2)。 权重矩阵 β 看起来像一个贪食蛇形状,玩家沿着路径滑动图块并将它们合并到同一个右上角(参见图 3)。
在这里插入图片描述
Figure 2: Weight Matrix α
在这里插入图片描述
图 3:左:横向贪食蛇形状的权重矩阵 β; 右图:水平-垂直贪食蛇形状的权重矩阵 β

根据我们的实验,将具有接近值的图块放在一起通常会导致更多可能的合并。 显然,单次滑动可以合并两个相同编号的图块,同时按升序或降序管理不同的图块,这可以帮助图块以后连续合并。 从直觉上可以看出,将具有接近值的图块放置在彼此附近通常会导致更多可能的合并。 对于相同编号的图块,单次滑动即可合并; 对于不同编号的图块,按升序或降序排列是合理的,这样它们就可以连续合并。 因此,它似乎试图使用在一个角上具有最高权重并沿对角线递减的矩阵 α。
由于矩阵 α 并没有在很大程度上区分图块:两个图块的不同权重可能会因它们承载的数量差异而减弱,因此创建权重矩阵 β 以扩大权重范围。 权重矩阵 β 是贪食蛇形的(见图 3)。 启发式是我们期望沿着贪食蛇的滑动和合并将更大的数字放在角落里。 在尝试了具有各种权重值的对称和贪食蛇形权重矩阵后,我们发现贪食蛇形权重矩阵的性能最好。

3 三种树搜索算法

游戏2048可以被视为两人游戏,人类玩家与计算机对战。 轮到人类通过选择四个基本方向之一来移动棋盘:上、下、左或右; 然后,计算机扮演在其中一个空单元格中随机放置一个数字 2 或 4 的角色。 因此,Minimax 算法首先引起了我们的注意,因为它是一种在包含两个玩家的游戏中广泛使用的决策规则。
将 Minimax 算法应用于 2048 游戏时,计算机扮演对手角色,只需以 9:1 的概率比放置 2 或 4 的新图块。 首先,我们解释算法中的符号:
(1) players:agent,opponent 代理人,对手
(2) s: the grid board that reflects the current state 反映当前状态的网格板
(3) a: the action taken 采取的行动
(4) actions(s): possible actions at state s 状态 s 的可能动作
(5) result(s, a): resulting state if action a is chosen at state s 如果在状态 s 选择动作 a,则结果状态
(6) isEnd(s): whether s is an end state (the game is over) s是否为结束状态(游戏结束)
(7) eval(s): evaluation at state s 状态 s 的评估
(8) player(s) ∈ players: the player that controls state s 控制状态 s 的玩家
(9) totalScore(s): the score at the end of the game 比赛结束时的比分
(10) d: the current depth of the search tree 搜索树的当前深度
Minimax算法的数学公式如下:
在这里插入图片描述
玩家可以从每一轮中的四个动作中选择一个,即,动作a∈{上,下,左,右}。 动作a随机将2或4放入当前棋盘的空格子中。 当达到最大深度或导致游戏结束时,每轮评估函数将重新调整每个turn作为当前分数。
接下来,我们从上面的Mini-Max算法派生了Expectimax算法。 不同之处在于我们在代理节点和对手节点之间添加了机会节点。 因此,当我们将启发式和域知识添加到我们的评估功能时,当AI到达最后一个深度级别时,或者游戏结束时,算法的伪代码如下:
在这里插入图片描述
在这里插入图片描述
Expectimax算法具有一些缺点,例如要分析的移动次数快速增加深度,并且计算功率限制了算法可以走的深度。 因此,我们尝试了第三种方法:蒙特卡罗树搜索。 蒙特卡罗树搜索的基本思想是基于强盗(Bandit-based)的方法。 一名球员需要选择K个动作中的某个动作,并通过不断选择最佳移动来最大化累积奖励。 一旦玩家选择,此动作的真正奖励将取决于随后可能的移动。
蒙特卡罗树搜索算法列举了将游戏2048的状态S作为输入的神经网络作为输入,并输出移动概率和值(P,V)。 标量值V表示状态s的“善良”。 在AZG,v代表了从这个状态获胜的概率,但由于我们只有一个玩家,它也是使用当前网络的预期当前游戏结果和平均结果之间的比率。 这样,大于1的值为良好,低于1的值不是那么好(见图4 [1])。
在这里插入图片描述
Figure 4: MCTS
在每个状态下,执行 MCTS,并构建一棵树,根节点为初始状态 s0s_0s0。 对于树中的每个状态 sss,有四个边(s,a)(s, a)(s,a) 对应于可能的移动,每个边包含统计信息:

  • (1) N(s,a)N(s, a)N(s,a) - number of times action has been taken from state s 从状态
    s 采取行动的次数
  • (2) W(s,a)W (s, a)W(s,a) - total value of move a from state s 从状态 s 移动
    a 的总值
  • (3) Q(s,a)Q(s, a)Q(s,a) - mean value of move a from state s 从状态 s 移动 a 的平均值
  • (4) P(s,a)P(s, a)P(s,a) - prior probability of selection move a 选择移动a的先验概率

该算法迭代三个阶段(最初 1600 次):

  • (1) 选择:每次迭代从 s0s_0s0 开始,并在模拟到达叶节点 sLs_LsL 时结束。 在每个时间 ttt,根据搜索树中的统计信息选择一个移动。
    U(s,a)=P(s,a)∑bN(s,b)1+N(s,a)(1)U(s, a)=P(s, a) \frac{\sqrt{\sum_{b} N(s, b)}}{1+N(s, a)} \tag1U(s,a)=P(s,a)1+N(s,a)bN(s,b)(1)

此搜索控制策略最初更喜欢高概率和低访问计数的操作,但渐近地更喜欢具有高动作值的动作。

  • (2) 扩展和评估:使用当前神经网络进行评估叶节点sLs_LsL 。 叶节点被扩展,每个边缘(sLs_LsLaaa)初始化为N=0,W=0,Q=0,P=paN = 0,W = 0,Q = 0,P = paN=0W=0Q=0P=pa。 然后备份值vvv

-(3) 反向传播:边缘统计信息在反向传播中更新。

N(s,a)=N(s,a)+1,W(s,a)=W(s,a)+v,Q(s,a)=W(s,a)/N(s,a).N(s, a) = N(s, a) + 1, \\W (s, a) = W (s, a) +v, \\Q(s, a) = W (s, a)/N(s, a).N(s,a)=N(s,a)+1,W(s,a)=W(s,a)+v,Q(s,a)=W(s,a)/N(s,a).

一旦迭代完成,计算概率。 下一步移动只是最大选择。 在其训练阶段,AGZ按分布进行抽样。 我们使用了一个确定性的选择,因为2048游戏存在如此多的随机性。

我们注意到,更深入的深度导致搜索树的维度爆炸。 此外,整个树搜索算法探讨了树的一些不必要的部分。 因此,我们在所有三种树搜索算法中实现了Alpha-Beta修剪,以防止这些问题。Alpha-Beta修剪估计两个值:Alpha(增益的较低限制)和Beta(增益的上限)。 在任何情况下,在Beta小于Alpha的情况下,将修剪其余的子树。

在利用蛇形权重矩阵βββ的人启发式时,我们只考虑一些最重要的空图块,它们对它们具有更高的权重。 经过具有最小值(深度,空图块的数目,4)或(深度,空图块的数目,6)的几个图块后,这些界限通常更靠近在一起。 只要α和β的范围内存在一些重叠,这种会聚不是问题。 在评估节点时,我们可能会发现它已经移动了其中一个界限,使得α和β之间不再存在任何重叠。此时,我们知道此节点永远不会导致我们将考虑的解决方案路径,因此我们可能会停止处理此节点。 换句话说,我们停止生成其子节点,然后返回其父节点并完成这个子树修剪。

在这里插入图片描述

4 具有Alpha-Beta修剪的Minimax算法

2048游戏具有离散状态空间,其包含完美的信息。它也是棋盘和跳棋等转向的游戏。因此,我们可以使用alpha-beta修剪应用于Minimax Search,这已被证明在这种类型的游戏上工作。单调性启发式试图确保图块的值沿左/右和上/下方向呈增加或减小。这个启发式唯一表明了许多其他人提到的直觉,那么高价值的图块应该被聚集在一个角落里。它通常会阻止孤立的较小值图块,并将游戏板组织得非常好,较小的图块级联并填充较大的图块。独自启发式倾向于创建一个结构,其中相邻的图块的值下降。然而,为了合并,相邻的图块需要显然是相同的价值。因此,平滑性启发式只是测量相邻图块之间的值差异,以便最小化这一计数。最后,免费图块太少有惩罚,因为当游戏板变得过于狭窄时,选择可以快速耗尽。
表1说明了具有alpha-beta修剪的Minimax算法的结果。
在这里插入图片描述

4.1 Expectimax Optimization预期优化

AI需要10ms到200ms以执行移动,具体取决于游戏板位置的复杂性。 此期望算法有四种启发式方法:

  • (1)为开放方块授予“奖金”
  • (2)在边缘上有大值的授予“奖金”
  • (3)在级别增加时对增加的非单调行和列进行惩罚,因为大量的非单调行大幅影响了得分。
  • (4)除了打开空间之外,第二启发式计算潜在合并的数量(相邻的等值)。

通过远程控制运行100次后,预期算法的结果如表2所示。
在这里插入图片描述
基于表2中的结果,观察到深度2, 3和4的平均分数分别为11279,16766和59436,并且每个深度的实现最大得分为31924,33940和59436。 AI永远不会获得至少一次2048图块。 这场比赛花费了27830次移动,超过96分钟,平均每秒4.8次移动。 最初,存在两个启发式方法:为开放方块授予“奖金”,并且在边缘上具有大值。

4.2 Monte Carlo Tree Search蒙特卡洛树搜索

如果我们从随机初始化的神经网络开始,所实现的模拟器的分数在500到4000的范围内。这些分数类似于随机播放的结果。 训练进行了10个小时。 当我们在蒙特卡罗树中使用100种模拟时,总共进行66个训练周期。 所有16个模拟器组合的都能每秒执行大约7个移动。 在所有66个周期中,新的训练模型能够用旧的权重击败神经网络四次。 最好的得分为2638。
在Monte Carlo树中使用50模拟时,32个游戏模拟器能够每秒执行大约40个移动。 在10小时的游戏和训练期间,完成了334个训练周期,并且新版本的初始模型实现了一个更好的中位数得分两倍。
在开发和测试过程中,中性网络的参数大多保持不变,同时仅尝试不同的学习率和残留层的量。 其他参数,如网络所在的样本数量在每个训练周期上训练,也试图播放评估模型的游戏量以实现更好的结果。 遗憾的是,尝试的组合都无法在游戏玩法的10小时内从自行播放中改进模型,并且在训练过程中的结果与随机初始化网络所实现的结果类似。 蒙特卡罗树搜索的结果已显示在表3。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算的概念_近500亿资金汹涌出逃!云计算概念龙头抛压沉重,科技股资金出逃名单出炉...

数据是个宝数据宝炒股少烦恼两市主力资金全天净流出492.93亿元。科技股今日资金集中流出,云计算概念浪潮信息流出资金超9亿元。受假日外围市场不振影响,A股三大指数低开后弱势震荡,最终集体小幅收跌。截至收盘,沪指下跌0.61%&…

iphone8plus屏幕尺寸_百思买在苹果发布会前列出了一款“iPhone SE Plus”屏幕保护保护膜...

百思买旗下品牌Insignia在苹果“时光飞逝”发布会活动前几个小时,在其网站上开始销售一款名叫“iPhone SE Plus”的屏幕保护贴,尽管预计苹果不会活动上发布任何iPhone。更大的iPhone SE过去一直被各路泄露好手提到,不过普遍认为它会在2021年初…

英文写作句子积累

0 摘要 In this paper, another strategy to learn from multi-label data is studied, where label-specific features are exploited to benefit the discrimination of different class labels. Accordingly, an intuitive yet effective algorithm named LIFT, i.e. multi…

手机qq和电脑qq怎么同步消息_手机QQ接入华为HMS!停止运行也能接收消息

腾讯昨日发布了安卓手机QQ 8.4.10正式版,带来了视频包厢、图片提取文字即时翻译、同时扫描多个二维码等新玩法、新功能。据网友@皮蛋棒棒糖发现,新版手机QQ已经悄然接入了华为HMS移动服务框架,基于华为提供…

安卓手机软件开发_无代码手机app软件开发,让人人都是专业开发工程师

点击上方蓝色字关注我们~近期,谷歌发布了自己的无代码在线app开发平台,这款全新工具旨在让任何一个人都可以轻松进行手机app软件开发。这样的动作无疑指引着安卓软件开发的未来。🙊1无代码开发手机app其实由来已久,业内反复讨论了…

AD19 add pins to nets错误_《英雄联盟手游》错误代码问题大全 LOL的错误代码都是什么意思...

英雄联盟手游上线引起广泛的关注,但是有些玩家在进入游戏的时候出现了代码报错的问题,那么针对这些不同的错误代码要如何解决呢?100036 请求超时,网络不好或者加速器速度不够,换个好点的网络或者加速器 10075 100036 账号没有在p…

Linux编程基础 1:初识Linux

0 学分、课时、成绩组成 本课程3学分(包含上机项目) 理论课时24,上机课时24 考核方式介绍及各项所占比重 1 知识准备 计算机网络基础:OSI模型,TCP/IP协议相关知识 C语言与数据结构相关的知识:指针&…

Linux编程基础 2.1:Linux文件系统与操作

1 文件I/O open() read() write() lseek() close() 1.1 open函数 #include <fcntl.h> int open(const char *pathname, int flags[, mode_t mode);open函数参数说明&#xff1a; pathname&#xff1a;待打开文件的文件路径名&#xff1b;flags&#xff1a;访问模式&a…

主成分分析法_探索主成分分析法

主成分分析法 (Principal Component Analysis, PCA) 是一种数据压缩法&#xff0c;可以从数据中提取重要的部分并排除不重要的部分&#xff0c;是奇异值分解 (Singular Value Decomposition, SVD) 的重要应用。SVD 是线性代数的一个亮点。 是一个 的列阵&#xff0c;矩阵秩 &am…

android 插入耳机 使用自身mic录音_这样选用麦克风,耳机降噪效果会更好

降噪耳机已经越来越普及&#xff0c;降噪耳机要想实现好的降噪效果面临很多挑战&#xff0c;其中如何正确选用麦克风又是一项具有重要影响的基础工作。本文目的旨在帮助读者正确选用麦克风以实现更好的耳机降噪性能&#xff0c;当然也可以帮助您更好地了解降噪耳机原理与实现方…

心电图 python_ST段凹面型向上抬高,一定是早期复极?心电图读图第201期

病 历 回 顾一名48岁男性患者&#xff0c;有20年吸烟史。打壁球时出现胸骨后闷痛。他被迫中止并休息。其胸痛仍未缓解&#xff0c;同伴把他送至附近急诊室并做了下列心电图。问题&#xff1a;心电图有何显示&#xff1f;可能的诊断是什么&#xff1f;可能受累的冠脉&#xff1f…

Linux编程基础 3.1:进程控制

1 进程相关概念 1.1 进程和程序 程序&#xff1a;编译好的二进制文件&#xff0c;在磁盘上&#xff0c;不占用系统资源&#xff08;cpu、内存、打开的文件、设备、锁…&#xff09;进程&#xff1a;一个抽象的概念&#xff0c;与操作系统原理联系紧密。进程是活跃的程序&…

nlp mrc的损失是什么_田渊栋从数学上证明ICLR最佳论文“彩票假设”,强化学习和NLP也适用...

新智元报道 来源&#xff1a;Facebook AI作者&#xff1a;Ari Morcos、田渊栋 编辑&#xff1a;肖琴【新智元导读】ICLR 2019最佳论文提出的“彩票假设”能够将神经网络缩小10-100倍&#xff0c;而不损失性能。Facebook田渊栋团队的最新研究发现了第一个确定的证据&#xff0…

Linux编程基础 3.2:exec函数族

2 exec函数族 使用fork()函数创建的子进程&#xff0c;其中包含的程序代码完全相同&#xff0c;只能根据fork()函数的返回值&#xff0c;执行不同的代码分支。 由exec函数族中的函数&#xff0c;则可以根据指定的文件名或路径&#xff0c;找到可执行文件。 fork&#xff1a;子…

corel产品注册样机安装代码_为你的产品创建一个高逼格的宣传片

大家好&#xff0c;我是独立开发者Larry&#xff5e;当我们的产品或功能发布的时候&#xff0c;一定想要一套高大上的宣传图或宣传视频&#xff0c;不幸的是&#xff0c;由于预算限制、时间排期以及技术门槛等一系列原因&#xff0c;我们不得不降低要求…今天就给大家推荐一个在…

单代号网络图计算例题_如何把横道图转化成双代号网络图?

横道图一般都是用Project或者表格做的&#xff0c;下面就用斑马进度计划软件介绍一下怎么将横道图转化为双代号网络图使用工具&#xff1a;广联达斑马进度计划&#xff0c;点击进入官网下载使用Excel表格绘制的横道图&#xff0c;如何快速转化成网络图打开斑马进度计划软件&…

excel表格不够怎么添加_excel怎么添加筛选

常用的表格处理软件就是excel表格&#xff0c;有时候一些excel上面会有很多不同类型的东西需要筛选以便更能方便寻找&#xff0c;那么excel怎么添加筛选呢&#xff1f;小编跟大家详细介绍。excel怎么添加筛选步骤1&#xff1a;首先&#xff0c;打开一篇你需要选择的Excel步骤2&…

createsemaphore 异常_浅析SPC之异常分析

未来能源的短缺及资源匮乏&#xff0c;导致各国都在寻求替代能源以避免发生无资源可用的情况。汽油替代能源—生质酒精由此得到了广泛的应用。生质酒精属于生质燃料(Biofuel)的一种&#xff0c;是由生物或化学转换成生物质(biomass)而取得的原料。它能够延长零件的使用寿命&…

苹果5越狱教程_unc0ver5.2.0安装方法 iOS13.5用Cydia Impactor或AltStore越狱教程

unc0ver5.2.0是最新更新出来的越狱手机系统&#xff0c;这次的更新不仅仅只是修复了系统的稳定性&#xff0c;大家在更新之后可以支持iOS13.5.5Beta/iOS13.6Beta的使用&#xff0c;所有使用苹果手机的用户想要使用的话可以看下面的详细安装教程&#xff0c;为大家介绍详细的操作…

# 定义四边形_【四边形系列专题】 特殊平行四边形之矩形

点击上方蓝字关注我们【四边形系列专题】特殊平行四边形之矩形TSQ中学数学微信&#xff1a;TSQmaths一、知识网络二、重难突破知识点一 矩形的性质及应用1、定义&#xff1a;有一个角是直角的平行四边形叫做矩形&#xff0e;注意&#xff1a;1、对称性&#xff1a;矩形是轴对称…