AlphaGo与蒙特卡罗树搜索

2016年 AlphaGo 横空出世,在AI界和围棋界掀起了一阵腥风血雨。宝刀一出,无数围棋高手如樊麾,李世石,柯洁等人先后被斩于马下。

正所谓:十步杀一人,千里不留行。事了拂衣去,深藏功与名。

AlphaGo 使用的技术有深度神经网络树搜索,这篇文章主要介绍一下树搜索。

简单的说 Monte-Carlo Tree Search(MCTS)的意思就是讲蒙特卡罗抽样的思想用到树搜索上。在我了解到MCTS思想背后的简单和暴力之后,在棋类领域机器打败人类是必然的事情。但我认为这仅仅能说明机器的计算水平很高,这是AI领域进步的一小步,现在的AI离真正的智能还很远。

[2016, Mastering the game of Go with deep neural networks and tree search - DeepMind]
对于人工智能来说,围棋一直被视为最具挑战性的经典游戏,这是由于其巨大的搜索空间以及难于评估的棋盘盘面和走子。这里我们介绍了一个新方法:使用价值网络 (value networks )来评估棋盘盘面和使用策略网络 (policy networks )来选择走子。为了训练这些深度神经网络,我们将有监督学习(从人类职业比赛中学习)和增强学习(从自我对抗的比赛中学习)创新地结合在一起。在没有使用任何前瞻搜索的情况下,这些神经网络的水平已经相当于最先进的使用蒙特卡罗树搜索(MCTS: Monte Carlo tree search)的程序,这些程序模拟了成千上万的随机的自我对抗盘局。我们还提出了一种将蒙特卡罗仿真和价值网络以及策略网络结合起来的新搜索算法。使用该搜索算法后, AlphaGo 在和其他围棋程序的对弈中,赢了 99.8%的盘局,并且以 5 比 0 击败了欧洲围棋冠军。这是计算机程序首次在全尺寸的围棋对抗中击败职业围棋选手,这个壮举以前被认为是至少十年以后才会发生。

[知乎]Alphago打败的可不是李世石抑或全人类,而是围棋这项智力运动千百年来演变发展积攒而出的人类自信。

多臂赌博机问题

这里又要介绍一个新的概念了:Multi-Arm Bandit Problem 多臂赌博机问题。

设想我们身处在一个赌城中,面前是多台赌博机,但我们不知道每台赌博机输或者赢的概率。那我们怎么能在给定一定的次数,例如玩100次,获得最大的收益呢?

本能的最简单想法是,我们将每台机器都试w次(例如10次),统计每台机器拉动10次拉杆的最终收益,选择收益最大的拉杆一直拉。。。

那么请问这样的做法是能保证最大收益么? 实际上这是一个两难的境地(exploration-exploitation),一方面我们要尝试了解哪台机器会有最大的收益,另一方面我们要牺牲潜在的收益来多尝试。

以上就是多臂赌博机问题。

多臂赌博机问题

马尔可夫决策过程

我们要求解的问题是Markov Decision Processes(马尔可夫决策过程)。

什么是Markov Decision Processes呢?

MDPs

An MDP has four components: S, A, Pr, Pt :

  • finite state set S
  • finite action set A
  • Transition distribution Pr(s’ | s, a)
    Probability of going to state s’ after taking action a in state s
    First-order Markov model
  • Bounded reward distribution Pr(r | s, a)
    Probability of receiving immediate reward r after taking action a in state s
    First-order Markov model

给定一个MDP,我们希望计算出一个策略,计算这个策略可以是online或者offline的。
一个策略是状态到动作的随机映射。

π:S → A
π(s) is action to do at state s
specifies a continuously reactive controller

怎么衡量策略的好坏呢?

我们实际上是使用一个值函数,最优的策略是所有状态获得回报(reward)最大的那个策略。

MDP问题规模比较小的时候,可以使用值迭代或者策略迭代求解。

但我们对有指数级别的状态空间的MDP问题感兴趣。传统的方法对于这类问题就无能为力了。例如象棋,围棋。

蒙特卡罗与马尔可夫决策过程

蒙特卡罗思想即抽样的思想深深的影响了各个领域。那么我们可以用抽样的思想求解MDPs问题么?

是的,我们可以。

不是状态空间大么? 我们用随机模拟的思想求解MDP。

前后提出了以下算法:

UniformBandit Algorithm

UniformBandit Algorithm (NaiveBandit from [Even-Dar et. al., 2002])在2002年,提出了朴素赌博机算法。

思想:

  • 拉动每个拉杆w次
  • 返回平均奖励最大的拉杆


    image.png

Policy Rollout Algorithm

思想:

  • 对于每个动作,执行simQ w次
  • 选择平均奖励最大的simQ对应的动作。

Multi-Stage Rollout

篇幅原因,不做详细介绍。

总结一下上面的算法,虽然好用,但是效率不高,也不能保证最优或者接近最优。

接下来有人提出了Sparse Sampling 算法。

Sparse Sampling

是Kearns在2002年提出的,这个算法是可以保证最优的。

image.png

但是这个算法的问题是建立的搜索树是指数级增长的。

Each state generates kw new states
(w states for each of k bandits)
• Total # of states in tree (kw)^h

  • 好消息
    这个算法振奋人心的是我们可以获得近似最优,同时这个规划算法的运行时间不依赖于状态空间的大小!

  • 坏消息
    但是搜索树值指数级的。

  • 实际应用
    我们使用较小的h。降低指数级的增长。

Sparse Sampling 不太好用的原因是,它浪费掉时间探索树前景不好的部分。它把资源都平均的分配给了每一个状态。

Sparse Sampling Search Tree

我们能否平衡exploitation 和 exploration呢?

UCB1算法

在2002年Auer提出了 UCB1 算法解决多臂赌博机问题。

UCB1(Upper Confidence Bound)上置信区间,这是概率论中的一个概念,意思是估计未知参数的可信程度,以区间的形式给出。有时我们仅仅关心上限或者下限。这就提出了单侧置信上限或者下限的概念。

简单的说这个算法,平衡了exploitation 和 exploration。在保证一定收益的同时,又不放弃潜在的收益。

ucb1

UCT算法

在2006年Kocsis & Szepesvári提出了将UCB1的思想用在解决树搜索的想法,提出了UCT(Upper Confidence with Tree-based Search)。

UCT

算法图中的常数C是一个经验值,根据实际可以进行调整。

之前的抽样算法没有提出抽样的策略,对应于一个状态可用的每个动作都是随机抽样执行的。一个好的抽样策略应该进一步探索有前景的动作,和剪枝不好的动作。

蒙特卡洛树搜索(MCTS: Monte-Carlo tree search)利用蒙特卡洛 rollouts 来评估每个盘面在搜索树中的值。运行越多的仿真,搜索树变得越大,相对值也越准确。用于在搜索过程选择动作的策略也随着时间推移而提高,该策略是通过选择有更高值的子树实现的。逐渐地,策略收敛到最优方案,评估也收敛到最优值函数。目前最强的围棋程序是基于MCTS 的,并通过训练成能预测专业选手的走子来得以加强 。这些策略用于将搜索收窄到一束最有可能的动作,并在下棋时采样动作。该方法达到了很高的业余选手的水平。但是,这些以前的工作局限于肤浅的策略,或值函数是基于输入特征的线性组合 。

UCT建立的搜索树如下:

非对称的搜索树

UCT的重点是:

UCT

在2006年以后,学者又陆续提出了UCT算法的很多改进。这里先不做介绍了。UCT的来源和主要思想在这篇文章中已经介绍清楚了。

AlphaGo 与 MCTS

AlphaGo基于深度神经网络和MCTS在围棋领域打败了人类世界冠军。下面简要介绍一下这是如何实现的。

在围棋领域仅仅通过使用MCTS算法,因为问题的复杂性,在水平上是超过打败人类的。我认为在围棋领域通过深度神经网络和MCTS的结合有效减少了搜索时间。

1 Supervised Learning of Policy Networks
使用有监督学习训练策略网络。策略网络输出的是落子的概率分布。该网络预测专业选手走子的准确率为57.7%


image.png

2 Reinforcement Learning of Policy Networks
使用强化学习改善第一步训练的策略网络。使用RL策略和SL策略网络对抗时,RL策略网络赢得了80%的棋局。


image.png

3 Reinforcement Learning of Value Networks
价值网络的增强学习。
训练最后一步关注盘面落子的评估,估计一个值函数来预测盘面s的结果。价值网络和策略网络的架构类似,但输出的是一个预测,而非概率分布。

4 Searching with Policy and Value Networks
AlphaGo将策略和价值网络结合到MCTS算法。

动作的选择:
image.png

image.png
image.png

当前盘面的下一落子的盘面位置SL,由策略网络处理,得到先验概率,叶节点价值的估计由价值网络和随机仿真决定。
image.png

结语

近年来围棋领域最大的突破是MCTS思想的引入。

对于人工智能来说,围棋在许多方面都是经典的难题:富有挑战的决策任务,棘手的搜索空间等等。

在2016年的Mastering the game of Go with deep neural networks and tree search - DeepMind一文中,提出了策略或值函数直接进行近似估值似乎不可行,提出了策略网络以及价值网络结合的思想。

基于这个思想AlphaGo 最终达到了围棋的职业水准,这也给其他看起来不可触及的人工智能领域达到人类的水平带来了希望。

启示

基于计算机视觉的深度神经网络和蒙特卡洛树搜索,终于在围棋领域打败的人类。
给我们的启示是关于搜索问题,我们还能否提出更加优秀的算法?

参考资料

[1] 概率论与数理统计

[2] L. Kocsis and C. Szepesvári, “Bandit based monte-carlo planning,” Proc. ECML, pp. 282–203, 2006.

[3] C. B. Browne et al., “A Survey of Monte Carlo Tree Search Methods,” Comput. Intell. AI Games, IEEE Trans., vol. 4, no. 1, pp. 1–43, 2012

[4] CS188: Artificial Intelligence https://edge.edx.org/courses/course-v1:Berkeley+CS188+SP17/info

[5] Monte-Carlo Planning: Basic Principles and Recent Progress http://videolectures.net/icaps2010_fern_mcpbprp/

[6] S. Sanner, “Relational dynamic influence diagram language (rddl): Language description,” Unpubl. ms. Aust. Natl. Univ., 2010.

[7] S. J. Russell and N. Peter, Artificial Intelligence A Modern Approach.pdf.

[8] D. Silver et al., “2016 - Mastering the game of Go with deep neural networks and tree search - DeepMind nature16961,” Nature, vol. 529, no. 7587, pp. 484–489, 2016.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341