From AlphaGo Zero to 2048阅读报告

0 摘要

游戏2048近年来获得了巨大的普及。游戏允许玩家在屏幕上移动数字(2的幂,如2、4、8、16等),总计至少2048。这是很容易学习发挥,因为它只有4个行动:向上,向下,左,右。然而,很难获得一个大于或等于2048的数字,因为你在当前状态下的每一个动作都会导致数百个不可预测的结果。在本文中,为了提高人工智能(AI)的自学习速度,以及为AI的自动游戏模式获得更高的分数,我们提出了一种类似于AlphaGo Zero到2048游戏的算法,该算法具有独特的奖惩系统。此外,基于带有AlphaBeta剪枝的Minimax算法、Expectiminimax算法和Monte Carlo树搜索(MCTS)的结果,我们得出结论,当应用于游戏2048时,Monte Carlo树搜索优于其他算法。最后,我们证明了人工智能与强化学习可以击败人类在2048游戏中取得的最高分数。

1 引言

我们认为以下三种方法是最流行和最有效的策略:使用Alphaβ修剪的极大极小算法、ExpExax算法和Monte Carlo树搜索(MCTS)。然后我们根据训练AI时为游戏设定的规则设定奖励和惩罚。通过这种方式,2048可以从单人益智游戏衍生到自动AI游戏,这意味着在整个自学习过程中不再需要人类交互。在没有来自人类专家的数据集的情况下训练人工智能,对于开发具有超人技能的人工智能具有重要意义,因为专家数据往往昂贵、不可靠或根本不可用。
本文主要分为三个部分:

  1. 两种奖励和惩罚系统
  2. 三种树搜索算法:
  • 带有alpha-beta修剪的Minimax算法

  • Expectimax算法

  • Monte Carlo树搜索(MCTS)

  1. 上述三种算法结果的比较。

2 两种奖惩制度

2.1 权重矩阵α

我们建立了两个奖惩系统:权重矩阵α是在右上角具有最高值的矩阵,其值呈对角线递减(见图2)。
From AlphaGo Zero to 2048阅读报告_第1张图片

2.2 权重矩阵β

权重矩阵β看起来像一个蛇形形状,玩家沿着路径滑动瓷砖,并将它们合并到同一右上角(见图3)。
From AlphaGo Zero to 2048阅读报告_第2张图片
由于矩阵α在很大程度上不区分瓷砖:两块瓷砖的不同权重可能会因其承载的数字的巨大差异而减弱,因此创建权重矩阵β以扩大权重范围。权重矩阵β呈蛇形)。启发性的做法是,我们希望沿着蛇滑动和合并,将更多的数字放入角落。在尝试了不同权重值的对称和蛇形权重矩阵后,我们发现蛇形权重矩阵的性能最好。

2.3 思考

该论文提出的两种奖惩机制,都是基于动作设计的,因此我们的2048游戏也可以考虑基于动作去设计评估函数,我们游戏中的动作有{上,下,左,右,右上,左上,右下,左下}。

3 三种树搜索算法:MINIMAX算法、EXPECTIMAX算法和带ALPHA-BETA修剪的montecarlo树搜索(MCTS)

3.1 MINIMAX算法

首先,我们解释算法中的符号:
(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) 状态是否为结束状态(游戏结束)
(7) eval(s): evaluation at state s 评估状态s
(8) player(s) ∈ players: the player that controls state s 控制状态的玩家

极大极小算法的数学公式如下所示 :
From AlphaGo Zero to 2048阅读报告_第3张图片

MINMAX是一种悲观算法,即假设对手每一步都会将我方引入从当前看理论上价值最小的格局方向,即对手具有完美决策能力。因此我方的策略应该是选择那些对方所能达到的让我方最差情况中最好的,也就是让对方在完美决策下所对我造成的损失最小。
例如,下方正方形代表我方做决策,三角形代表对手的决策。
From AlphaGo Zero to 2048阅读报告_第4张图片

3.2 EXPECTIMAX算法

接下来,我们从上面的Minimax算法推导出Expectimax算法。区别在于,我们在代理节点和对手节点之间添加了机会节点。
From AlphaGo Zero to 2048阅读报告_第5张图片

3.3 MCTS算法

蒙特卡罗树搜索算法训练一个神经网络,该网络将游戏2048的状态s作为输入,并输出移动概率和一个值 ( p , v ) (p,v) pv。标量值v代表状态s的“优点”。在AZG中, v v v代表从状态中获胜的概率,但由于我们只有一名玩家,它也是预期当前游戏结果与使用当前网络的平均结果之间的比率。这样,高于1的值是好的,低于1的值不是那么好(见图4[1])。
From AlphaGo Zero to 2048阅读报告_第6张图片
在每个状态下,执行MCT,并构建一棵树,根节点是初始状态 s 0 s_{0} s0。对于树中的每个状态 s s s,有四条边 ( s , a ) (s,a) sa对应于可能的移动,每条边包含统计信息:
(1) N ( s , a ) N (s, a) N(s,a) - number of times action has been taken from
state s 状态s采取行动a的总次数
(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的先验概率
该算法迭代三个阶段 :

  1. 选择:每次迭代从 s 0 s_{0} s0开始,在模拟到达叶节点 s L s_{L} sL时结束。每次t时,根据搜索树中的统计信息选择移动。
    U ( s , a ) = P ( s , a ) ∑ b N ( s , b ) 1 + N ( s , a ) . U(s,a)=P(s,a)\frac {\sqrt {\sum_{b}N(s,b) } }{1+N(s,a)}. U(s,a)=P(s,a)1+N(s,a)bN(s,b) .
    ∑ b N ( s , b ) \sum_{b}N(s,b) bN(s,b):树中所有状态采取动作次数之和
  2. 扩展和评估:使用当前的神经网络评估叶节点 s L s_{L} sL。展开叶节点,将每条边( s L s_{L} sL a a a)初始化为 N = 0 、 W = 0 、 Q = 0 、 P = p a N=0、W=0、Q=0、P=pa N=0W=0Q=0P=pa。然后备份值 v v v.
  3. 反向传播:在反向过程中更新边缘统计信息。
    N ( s , a ) = N ( s , a ) + 1 N(s,a)=N(s,a)+1 N(s,a)=N(s,a)+1
    W ( s , a ) = W ( s , a ) + v W(s,a)=W(s,a)+v W(s,a)=W(s,a)+v
    Q ( s , a ) = W ( s , a ) / N ( s , a ) Q(s,a)=W(s,a)/N(s,a) Q(s,a)=W(s,a)/N(s,a)
    例子:
    首先,输入状态 s 0 s_{0} s0,神经网络输出 ( p , v ) (p,v) (p,v),假设L=1,即搜索在 s 1 s_{1} s1时结束.
    因为2048有四个动作{上,下,左,右},所以神经网络的输出 ( p , v ) (p,v) (p,v)也是四个,分别对应四个动作的
    ( p , v ) (p,v) (p,v).
    U ( s 0 , 上 ) = P ( s 0 , 上 ) 1 1 + 1 U(s_{0},上)=P(s_{0},上)\frac {\sqrt 1 }{1+1} U(s0,)=P(s0,)1+11
    U ( s 0 , 下 ) = P ( s 0 , 下 ) 1 1 + 1 U(s_{0},下)=P(s_{0},下)\frac {\sqrt 1 }{1+1} U(s0,)=P(s0,)1+11
    U ( s 0 , 左 ) = P ( s 0 , 左 ) 1 1 + 1 U(s_{0},左)=P(s_{0},左)\frac {\sqrt 1 }{1+1} U(s0,)=P(s0,)1+11
    U ( s 0 , 右 ) = P ( s 0 , 右 ) 1 1 + 1 U(s_{0},右)=P(s_{0},右)\frac {\sqrt 1 }{1+1} U(s0,)=P(s0,)1+11
    假设 P ( s 0 , 上 ) P(s_{0},上) P(s0,)的值最大且对应的 v = 10 v=10 v=10.
    From AlphaGo Zero to 2048阅读报告_第7张图片

From AlphaGo Zero to 2048阅读报告_第8张图片

3.4 Alpha-Beta剪枝

我们注意到,更大的深度会导致搜索树的维度爆炸。此外,整个树搜索算法探索树的一些不必要部分。因此,我们在所有三种树搜索算法中都实现了Alpha-Beta修剪,以防止这些问题。Alpha-Beta修剪估计两个值:Alpha(增益的下限)和Beta(增益的上限)。在任何情况下,如果beta小于alpha,则会修剪其余子树。
Max层只改变 α \alpha α,取max(自己,下一层 α \alpha α,下一层 β \beta β)。
Min层只改变 β \beta β,取min(自己,下一层 α \alpha α,下一层 β \beta β)。
α 和 β \alpha 和\beta αβ的值传递,先左子树,返回父节点,再右子树。
α ≥ β \alpha \geq \beta αβ时进行剪枝, α 初 始 值 为 − ∞ , β 为 + ∞ \alpha 初始值为-\infty,\beta为+\infty α,β+

你可能感兴趣的:(日报,深度学习)