AlphaGo原理探讨

本文是学人工神经网络后试图理解人工智能领域最热门的AlphaGo对弈应用。综合浓缩了众多博主的观点。

由于状态空间无法穷举,博弈类游戏AI都采用了(启发式)搜索算法,即从当前状态出发,尝试可靠的行动,达到终局或一定步数后停止,根据后续局面的优劣反馈,采取最优行动。 为了评估行动是否可靠,引入策略函数Q(a|s)和评估函数V(s),策略函数Q即在当前状态(state)下能采取的行动(action),评估函数V对当前状态评分,AlphaGo采用卷积神经网络拟合这两个函数。AlphaGo应用的蒙特卡罗树搜索(MCTS)是一种搜索框架,它把游戏的进程用树结构表示,通过反复模拟和采样对局过程来探索状态空间。它有如下特点:

  1. 并行搜索,对可靠的多个行动同时进行推演;
  2. 能随时进行,随时停止。 在对方思考对策时,不停止推演,在对方走子后保留之前的状态,根据最新的状态 进行推演。对方实际走子可能出现在刚才的推演中,所以刚才的计算是有用的。
  3. 随机性采样,能减小估值错误的负面影响。
  4. 在探索状态空间过程中,能应用神经网络选择节点,能结合强化学习调整评估函数。
  5. 它基于规则进行推演,而神经网络基于案例训练出评估函数,用来调整蒙特卡罗树搜索。

机器学习大体上可以分为四部分:数据集、系统模型、训练方法、评估方法。下面分别解释AlphaGo的这几个部分:

  • 数据集:一个个独立的KGS人类在线围棋比赛棋谱、机器自我对弈棋谱作为训练集,最后的胜负作为目标;

  • 模型:策略网络(policy network)和评估网络(value network),它们都是卷积神经网络。

  • 策略网络P(a|s)也叫走棋网络,表示在当前状态(state)下,走子(action)的概率分布。输入当前棋局,输出棋盘上361个点的概率分布矩阵,即下一手棋子落在棋盘各个点的偏好;

  • 评估网络V(s),输入当前棋局,输出单个值,给出当前棋局的总体评分,取值[0,1],也可以看作当前棋局的胜率。输入的棋局包括自己下的和对方下的,即也给对方下的这一手评判。

  • 训练方法:监督学习SL(SupervisedLearning)、增强学习RL(Reinforced Learning);

  • 评估方法:终局获胜;

训练过程:
神经网络都存在一个激活函数y=f(x),机器学习训练的过程就是通过给定大量的x和y,学习函数f,找准映射关系。y做为训练目标,可以取一个值或者一个矩阵。AlphaGo的训练过程如下:

  • 训练策略网络P_net:采用监督学习。训练集为三千万的KGS人类对弈棋局图片,目的是对每个盘面做下一手预测。不同的盘面相互独立,没做成时间序列。一个盘面是19x19的二维向量s,将其输入神经网络,目的是让神经网络输出的a'不断逼近人类选手的下法a。 可以理解为学“定式”。
  • 训练增强策略网络P_plus:采用增强学习,自我对弈。胜率高,但变化少,所以没直接应用在对弈过程中,主要用来生成盘面来训练V_net。
  • 训练快速走棋模型P_fast,没采用神经网络训练,而是传统的局部模式匹配+线性回归,研究者基于对围棋的理解提炼出对局部落子算法。
  • 训练评估网络V_net,采用增强学习,训练集为3000万人类对弈棋局和不断增长的自我对弈棋局,得到对当前盘面的胜率评估网络,即快速判断我这种局面能不能嬴。有了它,在比赛过程中就不必要用MCTS推演到终局才知道结果。

对弈过程:
整个对弈过程以蒙特卡罗树搜索算法为框架,探索各种可能下法:

  1. 对于当前盘面,P_net先给出几个可能选点概率;
  2. 对每个选点进行自我对弈往后推演,展开搜索树;
  3. 对各个节点的盘面进行评估,胜率高则继续推演,胜率低则剪掉。评估结果是两种方法平均加权:V_net基于盘面给出评估分数;P_fast基于盘面自我对弈到终局,返回当前盘面的胜率。

相关讨论:

  1. AlphaGo只求胜,不求大胜(嬴最大目数),对它来说嬴多赢少没区别。例如a选择是70%概率嬴十目,b 80%概率嬴一目,c 90%概率嬴二目,AlphaGo一定会选c,而人类会选a。因为人类没有计算机强大的计算能力,只能依靠不断积累优势来获胜。
  2. Alpha Go没有局部概念,求不出局部最优解。对行棋次序的组合无法遍历完。局部战斗仍然要放到最终局才能判断优劣。
  3. 没有采用递归神经网络RNN,所以没有基于时间序列,不会根据已经下出来的棋做决策,下棋没有逻辑。
  4. Alpha Go遇强则强,遇弱则弱。每一步的推演都假设对方知道自己的决策,假设对方最强。所以遇到弱手后会删掉之前正确的策略。
  5. 可能会出现神经网络的通病-“过拟合”问题。长期和自己下,时间久了会达到自洽,导致遇盲点而不见。所以要用不同等级的AlphaGo对弈。
  6. 卷积神经网络CNN对围棋拓扑图无感。围棋不是一般意义上的图案,棋子连成的形状最重要是没有断点,而具体是什么形状厚还是薄没有关系,一块连在一起的棋子中有一个眼、两个眼还是十目以上的大空是有区别。
  7. 是否会有升级版Beta Go,以嬴最多目数为目的,这样就会成为棋风凶狠的棋手。这样说来围棋AI还有更多发展空间。
  8. 是否能引入RNN,把整个棋局看作时许序列,而不仅仅是独立的盘面,这样更有逻辑性。在棋局不同阶段,动态选取两种评估方法的权重,而不是固定的0.5。
  9. Alpha Go不能通过观察一个棋手的棋局来学会他的“棋风”,再有针对性地攻其弱点,因为训练样本太小。
  10. 让人工智能下围棋是为了更深入理解智能的本质,理解人是怎么思考问题。

疑问:
1. 一个系统需要多个神经网络还是一个神经网络?
感觉对弈过程是在海量的训练集中寻找相同的盘面,一个盘面一个结果。 训练集中有人类的盘面,有机器自我对弈的盘面,一部分基于统计,一部分基于规则。如果是这样,遇到没出现过的盘面怎么办?

2. 蒙特卡罗树搜索和神经网络的在对弈过程中的角色、发挥的作用是什么?
我的理解:蒙特卡罗树MCTS基于规则推演,神经网络基于案例学习,神经网络训练完后作为盘面应对策略数据库和评分数据库。开局,蒙特卡罗树随机选择一个好开局,再基于规则对各种下法并行展开推演,对方下棋后,MCTS根据盘面,搜索到对应的策略网络,得到多种走棋方法,作为树的子节点,对每一个节点,搜索相同盘面,找到对应的评估网络,给出胜率得分(同时并行地对每个节点快速自我对弈到终局,得到胜率),综合概率和胜率得分,选择走子。对方走棋后继续这样搜索。

参考文献

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

推荐阅读更多精彩内容