美文网首页嵌牛IT观察
AlphaGo算法的“进化”历程

AlphaGo算法的“进化”历程

作者: _privacy | 来源:发表于2019-10-25 15:44 被阅读0次

姓名:王诗瑶                  学号:19011210454

【嵌牛导读】阿尔法围棋(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能机器人,由谷歌(Google)旗下DeepMind公司戴密斯·哈萨比斯领衔的团队开发。其主要工作原理是“深度学习”。

【嵌牛鼻子】人工智能  深度学习  AlphaGo算法

【嵌牛提问】那么这样的一种“超级”算法有怎样的发展历程呢?

【嵌牛正文】

    2016年3月,阿尔法围棋与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜。2016年末2017年初,该程序在中国棋类网站上以"大师"(Master)为注册帐号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩。2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。2017年5月27日,在柯洁与阿尔法围棋的人机大战之后,阿尔法围棋团队宣布阿尔法围棋将不再参加围棋比赛。2017年10月18日,DeepMind团队公布了最强版阿尔法围棋,代号AlphaGo Zero.

(一)

    一个围棋的人工智能程序大致的思想是:围棋棋盘是19x19路,所以一共是361个交叉点,每个交叉点有三种状态,可以用1表示黑子,-1表示白字,0表示无子,考虑到每个位置还可能有落子的时间、这个位置的气等其他信息,我们可以用一个361 * n维的向量来表示一个棋盘的状态。我们把一个棋盘状态向量记为s。当状态s下,我们暂时不考虑无法落子的地方,可供下一步落子的空间也是361个。我们把下一步的落子的行动也用361维的向量来表示,记为a。

   AlphaGo之父黄士杰在ICLR的论文[3]提出,从网上的围棋对战平台KGS(外国的qq游戏大厅)可以获得人类选手的围棋对弈的棋局。观察这些棋局,每一个状态s,都会有一个人类做出的落子a,这就是天然的训练样本<s,a>。我们再不断训练网络,就得到一个可以模拟人类棋手的策略函数P_human,给定某个棋局状态s,它可以计算出人类选手可能在棋盘上落子的概率分布a = P_human(s),每一步都选择概率最高的落子,对方对子后再重新计算一遍,如此往复就可以得到一个棋风类似人类的围棋程序。

(二)

    但事实证明P_human这种方法还不足以对抗世界顶级围棋选手。因此黄士杰打算改进P_human算法,达到更好的效果。于是他加入了蒙特卡洛树搜索。

    蒙特卡洛树搜索(Monte-Carlo Tree Search)又称随机抽样或统计试验方法。当所求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种"试验"的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。

     该算法应用在围棋上具体是指,面对一个空白棋盘S0,便假设所有落子方法分值都相等,设为1。然后扔了一个骰子,从361种落子方法中随机选择一个走法a0。随机落子之后,棋盘状态变成S1,然后继续假设对方也扔了一个骰子随机走了一步,这时棋盘状态变成S2,于是一直这样随机进行,一路走到Sn,最后肯定也能分出一个胜负r,赢了就r记为1,输了则为0,假设这第一次r=1。这样便算是模拟了完整的一盘围棋。之后落子方法(S0,a0)被记录下来,提高其分数:新分数= 初始分+ r。因此分数为2,那么随着模拟路径上相应的分数的增加,随着棋局下得越来越多,那些看起来不错的落子方案的分数就会越来越高,而这些落子方案越是有前途,就会被更多的选中进行推演,于是最有“前途”的落子方法就会“涌现”出来。  

     之后进一步将P_human代替随机掷骰子,根据P_human的计算结果来得到a可能的概率分布,以这个概率来挑选下一步的动作。这样就既可以用P_human快速定位比较好的落子方案,又给了其他位置一定的概率。可是这种方法的最大缺点是P_human的运算速度太慢了。

     因此黄士杰训练了一个简化版的P_human_fast(),把神经网络层数、输入特征都减少,耗时下降到了2us,基本满足了要求。先以P_human()来开局,走前面大概20多步,后面再使用P_human_fast()快速走到最后。兼顾了准确度和效率。

(三)

     之后,黄士杰又考虑给围棋设计一个评价函数v(),在P_human()想象自己开局走了20多步之后,不需要搜索到底,如果有一个v()可以直接判断是否能赢,得到最后的结果r。

     先用P_human和P_human对弈,比如1万局,就得到了一万个新棋谱,加入到训练集当中,训练出P_human_1。然后再让P_human_1和P_human_1对局,得到另外一万个新棋谱,这样可以训练出P_human_2,如此往复,可以得到P_human_n。P_human_n得到了最多的训练,棋力理应比原来更强。我们给最后这个策略起一个新名字:P_human_plus。

     但P_human_plus的招法太过集中,因此训练v( )的时候,开局还是先用P_human走L步,在L+1步的时候,干脆完全随机掷一次骰子,记下这个状态SL+1,然后后面再用P_human_plus来对弈,直到结束获得结果r。如此不断对弈,由于L也是一个随机数,我们就得到了开局、中盘、官子不同阶段的很多局面s,和这些局面对应的结果r。有了这些训练样本,还是使用神经网络,把最后一层的目标改成回归而非分类,就可以得到一个v( )函数,输出赢棋的概率。

(四)

将走棋网络、快速走子、估值网络和蒙特卡洛树搜索这四项结合起来就是完整的 AlphaGo算法。

【嵌牛总结】

    总体来说,AlphaGo系统由走棋网络、快速走子、估值网络和蒙特卡洛树搜索组成。一步一步进化的围棋AlphaGo算法结合了深度学习、蒙特卡洛搜索树,自我进化三种方法,并且在前期的过程中,其不断地在模仿人类以及自我对弈,这都使其成为了人工智能领域的巅峰之作。

    但同时有人提出,目前的人工智能技术,都是基于数据的人工智能,简称数据智能。如AlphaGo这一系列的工作对人类的决策机制有哪些新的认识呢?其实几乎是没有的。有人认为未来的人工智能是有可能是向机制智能发展的,也就是说,我们真正需要追寻的是生物智能的本质。

    因此在人工智能这条路上,还有太大的发展空间,我们需要做的还有很多。

参考资料:https://www.zhihu.com/question/41176911/answer/90118097 

相关文章

  • AlphaGo算法的“进化”历程

    姓名:王诗瑶 学号:19011210454 【嵌牛导读】阿尔法围棋(AlphaGo)是第一个击败人...

  • 细思极恐!AlphaGo又进化了:这两项棋类也被拿下

    AlphaGo正在以惊人的速度自我进化,让人细思极恐。 此前,《自然》杂志报道称,MeepMind为AlphaGo...

  • AlphaGo 与人类下棋想到的

    即使 AlphaGo 不赢也只是时间问题, AlphaGo 的强大之处在于他的自我学习(进化)能力, 他可以不吃不...

  • 算法进化历程4丑陋数

    出场人物介绍 小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简...

  • 遗传算法详解

    遗传算法(Genetic Algorithm)又叫基因进化算法,或进化算法。属于启发式搜索算法一种,这个算法比较...

  • 进化算法

    blog嗯,写个东西玩,这就是很像进化的进化算法. 进化算法是以达尔文的进化论思想为基础,通过模拟生物进化过程与机...

  • 收入倍增计划 #1000计划

    在收入倍增计划的微信文章中,主要提到两个引起思考的算法:生涯规划进化算法、阶层规划进化算法 生涯规划进化算法 生涯...

  • 算法进化历程1剪刀石头布

    算法进化历程之剪刀石头布 小美:阿福,你玩过剪刀石头布游戏吗? 阿福:这算什么问题?谁还能没玩过剪刀石头布?要知道...

  • 算法进化历程2灯泡开关

    出场人物介绍 小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简...

  • 进化历程

    墨记·日歌(壹仟贰佰肆拾陆·2022.5.20) · 进化历程 文/叶潇(湖北) · 我和你,是两只还未确定性别的...

网友评论

    本文标题:AlphaGo算法的“进化”历程

    本文链接:https://www.haomeiwen.com/subject/iwvrmctx.html