范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

AlphaGo为什么这么厉害AlphaGo系统主要组成部分有哪些

  AlphaGo为什么这么厉害?最近AlphaGo的世纪大战引发关注,前三场比赛均战胜李世石,那么AlphaGo究竟厉害在哪里?内容来自Facebook人工智能研究员田渊栋,曾就职于Google X部门,本文是其在人机大战赛前发于知乎上的分析。
  最近我仔细看了下AlphaGo在《自然》杂志上发表的文章,写一些分析给大家分享。
  AlphaGo这个系统主要由几个部分组成:
  走棋网络(Policy Network),给定当前局面,预测/采样下一步的走棋。
  快速走子(Fast rollout),目标和1一样,但在适当牺牲走棋质量的条件下,速度要比1快1000倍。
  估值网络(Value Network),给定当前局面,估计是白胜还是黑胜。
  蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS),把以上这三个部分连起来,形成一个完整的系统。
  我们的DarkForest和AlphaGo同样是用4搭建的系统。DarkForest较AlphaGo而言,在训练时加强了1,而少了2和3,然后以开源软件Pachi的缺省策略 (default policy)部分替代了2的功能。以下介绍下各部分。
  1、走棋网络
  走棋网络把当前局面作为输入,预测/采样下一步的走棋。它的预测不只给出最强的一手,而是对棋盘上所有可能的下一着给一个分数。棋盘上有361个点,它就给出361个数,好招的分数比坏招要高。
  DarkForest在这部分有创新,通过在训练时预测三步而非一步,提高了策略输出的质量,和他们在使用增强学习进行自我对局后得到的走棋网络(RL network)的效果相当。当然,他们并没有在最后的系统中使用增强学习后的网络,而是用了直接通过训练学习到的网络(SL network),理由是RL network输出的走棋缺乏变化,对搜索不利。
  有意思的是在AlphaGo为了速度上的考虑,只用了宽度为192的网络,而并没有使用最好的宽度为384的网络(见图2(a)),所以要是GPU更快一点(或者更多一点),AlphaGo肯定是会变得更强的。
  所谓的0.1秒走一步,就是纯粹用这样的网络,下出有最高置信度的合法着法。这种做法一点也没有做搜索,但是大局观非常强,不会陷入局部战斗中,说它建模了“棋感”一点也没有错。我们把DarkForest的走棋网络直接放上KGS就有3d的水平,让所有人都惊叹了下。
  可以说,   这一波围棋AI的突破,主要得益于走棋网络的突破。这个在以前是不可想像的,    以前用的是基于规则,或者基于局部形状再加上简单线性分类器训练的走子生成法,需要慢慢调参数年,才有进步。
  当然,只用走棋网络问题也很多,就我们在DarkForest上看到的来说,会不顾大小无谓争劫,会无谓脱先,不顾局部死活,对杀出错,等等。有点像高手不经认真思考的随手棋。因为走棋网络没有价值判断功能,只是凭“直觉”在下棋,只有在加了搜索之后,电脑才有价值判断的能力。
  2、快速走子
  那有了走棋网络,为什么还要做快速走子呢?有两个原因,首先走棋网络的运行速度是比较慢的,AlphaGo说是3毫秒,我们这里也差不多,而快速走子能做到几微秒级别,差了1000倍。所以在走棋网络没有返回的时候让CPU不闲着先搜索起来是很重要的,等到网络返回更好的着法后,再更新对应的着法信息。
  其次,快速走子可以用来评估盘面。由于天文数字般的可能局面数,围棋的搜索是毫无希望走到底的,搜索到一定程度就要对现有局面做个估分。在没有估值网络的时候,不像国象可以通过算棋子的分数来对盘面做比较精确的估值,围棋盘面的估计得要通过模拟走子来进行,从当前盘面一路走到底,不考虑岔路地算出胜负,然后把胜负值作为当前盘面价值的一个估计。
  这里有个需要权衡的地方:在同等时间下,模拟走子的质量高,单次估值精度高但走子速度慢;模拟走子速度快乃至使用随机走子,虽然单次估值精度低,但可以多模拟几次算平均值,效果未必不好。所以说,如果有一个质量高又速度快的走子策略,那对于棋力的提高是非常有帮助的。
  为了达到这个目标,神经网络的模型就显得太慢,还是要用传统的局部特征匹配(local pattern matching)加线性回归(logistic regression)的方法,这办法虽然不新但非常好使,几乎所有的广告推荐,竞价排名,新闻排序,都是用的它。
  与更为传统的基于规则的方案相比,它在吸纳了众多高手对局之后就具备了用梯度下降法自动调参的能力,所以性能提高起来会更快更省心。AlphaGo用这个办法达到了2微秒的走子速度和24.2%的走子准确率。24.2%的意思是说它的最好预测和围棋高手的下子有0.242的概率是重合的,   相比之下,走棋网络在GPU上用2毫秒能达到57%的准确率。这里,我们就看到了走子速度和精度的权衡。
  和训练深度学习模型不同,快速走子用到了局部特征匹配,自然需要一些围棋的领域知识来选择局部特征。对此AlphaGo只提供了局部特征的数目(见Extended Table 4),而没有说明特征的具体细节。我最近也实验了他们的办法,达到了25.1%的准确率和4-5微秒的走子速度,然而全系统整合下来并没有复现他们的水平。
  我感觉上24.2%并不能完全概括他们快速走子的棋力,因为只要走错关键的一步,局面判断就完全错误了;而图2(b)更能体现他们快速走子对盘面形势估计的精确度,要能达到他们图2(b)这样的水准,比简单地匹配24.2%要做更多的工作,而他们并未在文章中强调这一点。
  在AlphaGo有了快速走子之后,不需要走棋网络和估值网络,不借助任何深度学习和GPU的帮助,不使用增强学习,在单机上就已经达到了3d的水平(见Extended Table 7倒数第二行),这是相当厉害的了。任何使用传统方法在单机上达到这个水平的围棋程序,都需要花费数年的时间。在AlphaGo之前,Aja Huang曾经自己写过非常不错的围棋程序,在这方面相信是有很多的积累的。
  3、估值网络
  AlphaGo的估值网络可以说是锦上添花的部分,从Fig 2(b)和Extended Table 7来看,没有它AlphaGo也不会变得太弱,至少还是会在7d-8d的水平。少了估值网络,等级分少了480分,但是少了走棋网络,等级分就会少掉800至1000分。特别有意思的是,如果只用估值网络来评估局面(2177),那其效果还不及只用快速走子(2416),只有将两个合起来才有更大的提高。
  我的猜测是,   估值网络和快速走子对盘面估计是互补的,在棋局一开始时,大家下得比较和气,估值网络会比较重要;但在有复杂的死活或是对杀时,通过快速走子来估计盘面就变得更重要了。    考虑到估值网络是整个系统中最难训练的部分(需要三千万局自我对局),我猜测它是最晚做出来并且最有可能能进一步提高的。
  关于估值网络训练数据的生成,值得注意的是文章中的附录小字部分。与走棋网络不同,每一盘棋只取一个样本来训练以避免过拟合,不然对同一对局而言输入稍有不同而输出都相同,对训练是非常不利的。这就是为什么需要三千万局,而非三千万个盘面的原因。对于每局自我对局,取样本是很有讲究的,先用SL network保证走棋的多样性,然后随机走子,取盘面,然后用更精确的RL network走到底以得到最正确的胜负估计。当然这样做的效果比用单一网络相比好多少,我不好说。
  一个让我吃惊的地方是,   他们完全没有做任何局部死活/对杀分析,纯粹是用暴力训练法训练出一个相当不错的估值网络。    这在一定程度上说明深度卷积网络(DCNN)有自动将问题分解成子问题,并分别解决的能力。
  另外,我猜测他们在取训练样本时,判定最终胜负用的是中国规则。所以说三月和李世石对局的时候也要求用中国规则,不然如果换成别的规则,就需要重新训练估值网络(虽然我估计结果差距不会太大)。至于为什么一开始就用的中国规则,我的猜测是编程非常方便(我在写DarkForest的时候也是这样觉得的)。
  4、蒙特卡罗树搜索
  这部分基本用的是传统方法,没有太多可以评论的,他们用的是带先验的UCT,即先考虑DCNN认为比较好的着法,然后等到每个着法探索次数多了,选择更相信探索得来的胜率值。而DarkForest则直接选了DCNN推荐的前3或是前5的着法进行搜索。我初步试验下来效果差不多,当然他们的办法更灵活些,在允许使用大量搜索次数的情况下,他们的办法可以找到一些DCNN认为不好但却对局面至关重要的着法。
  一个有趣的地方是在每次搜索到叶子节点时,没有立即展开叶子节点,而是等到访问次数到达一定数目(40)才展开,这样避免产生太多的分支,    分散搜索的注意力,也能节省GPU的宝贵资源,同时在展开时,对叶节点的盘面估值会更准确些。除此之外,他们也用了一些技巧,以在搜索一开始时,避免多个线程同时搜索一路变化,这部分我们在DarkForest中也注意到了,并且做了改进。
  5、总结
  总的来说,这整篇文章是一个系统性的工作,而不是一两个小点有了突破就能达到的胜利。在成功背后,是作者们,特别是两位第一作者David Silver和Aja Huang,在博士阶段及毕业以后五年以上的积累,非一朝一夕所能完成的。他们能做出AlphaGo并享有现在的荣誉,是实至名归的。
  从以上分析也可以看出,与之前的围棋系统相比,AlphaGo较少依赖围棋的领域知识,但还远未达到通用系统的程度。职业棋手可以在看过了寥寥几局之后明白对手的风格并采取相应策略,一位资深游戏玩家也可以在玩一个新游戏几次后很快上手,   但到目前为止,人工智能系统要达到人类水平,还是需要大量样本的训练的。可以说,没有千年来众多棋手在围棋上的积累,就没有围棋AI的今天。
  在AlphaGo中,增强学习(Reinforcement Learning)所扮演的角色并没有想像中那么大。在理想情况下,我们希望人工智能系统能在对局中动态地适应环境和对手的招式并且找到办法反制之,但是在AlphaGo中增强学习更多地是用于提供更多质量更好的样本,给有监督学习(Supervised Learning)以训练出更好的模型。在这方面增强学习还有很长的路要走。
  另外,据他们的文章所言,AlphaGo整个系统在单机上已具有了职业水平,若是谷歌愿意开几万台机器和李世石对决(这对它来说再容易不过了,改个参数就行),相信比赛会非常精彩。
  下面是根据读者提问做的一些更新。
  问题1:“Alphago的MCTS做rollout的时候,除了使用快速走子,还用了搜索树的已有部分,看起来像是AMAF/RAVE反过来:AMAF是把快速走子的信息传导到树的其它无关部分,Alphago是把树的其它无关部分拿来增强快速走子。我怀疑这是不是它棋力比其它DCNN MCTS强的原因之一。"
  这个办法在解死活题的文章中出现过,会在一定程度上提高搜索效率,但是提高多少还不知道。
  问题2:“rollout的走法质量变好可能会导致棋力下降。”
  这里要分两种情况,tree policy和default policy。在AlphaGo的文章里面已经说过了,tree policy的分布不能太尖,不然在搜索时太过重视一些看起来的好着,可能使得棋力下降。但是除了这种原因,一般来说tree policy变好棋力还是会变强的。
  default policy这边,即(半)随机走子到最后然后判分,就很复杂了,质量变好未必对局面能估得更准。default policy需要保证的是每块棋的死活大体正确,不要把死的棋下成活的或者反之,而对大局观的要求反而没有那么高。双方完全可以配合着把每块棋下完,然后转战另一块,而不是说抢在对方前去别处占先手。

三星电池怎么校正三星电池校正方法介绍图文三星是韩国的一家生产厂家,全球范围内三星手机的使用客户群体还是非常庞大的,其手机每年的销售量与苹果手机的销售量是非常接近的,在韩国甚至达到了人手一台的地步,在不少的韩剧当中我们都能怎么利用笔记本BIOS中自带电池校正功能详解笔记本随着运用越来越久电池续航时间也越来越短,很多人以为是电池变坏了。其实是由于电池经过多次的充放电,笔记本电脑的BIOS系统对电池电量判断出了故障,就像病人被医生误诊一样。这个时笔记本电池怎么矫正笔记本电池校正正确方法教程笔记本续航时间变短是因为电池在多次的充电和放电过程中,笔记本BIOS系统对电池电量产生了误判,这样的情况下,我们可以通过笔记本电池校正正确方法让笔记本剩余的电量充分发挥出来。下面给笔记本电池校正四大方法图文教程很多人的笔记本电脑使用了一段时间以后,续航能力就大大减弱,续航时间变短,没有经验的朋友往往认为是电池老化不能用了,于是就急急忙忙把电池换新了。其实真相并不是这样的,而是电脑在经过一笔记本电池校正和日常保养常识细心的朋友可能会发现,我们的笔记本电脑都在后盖方向装有电池,这样做的目的是为了防止用户在停电或者是户外工作的情况下仍然能够正常使用笔记本电脑。但是我们会渐渐发现,笔记本电池的续航时安卓电池校正的方法图文很多人在使用手机的时候,电池都十分的容易没电。手机的电池会随着手机的使用时间越来越久也慢慢变得不耐用,特别是安卓手机的电池。因为安卓系统的手机会在后台开启一些我们不用的软件,手机的苹果手机充电器充不进电怎么办使用及充电是人们日常使用手机的两个最普遍的环节,不管是什么牌子的手机,遇到充不上电的情况基本上就没有什么用处了。如果您在使用苹果手机,遇到了苹果手机充电器充不进电怎么办呢?下面就为新手机电池如何充电新手机电池充电方法详解新手机入手后相信大家都会比较爱惜贴手机屏幕保护膜,购买手机保护外壳等一些手机保护措施,或者已经在网上搜索了一遍该如何保养手机之类的资讯,对于新手机电池如何充电,特别是iphone用新手机电池如何充电要超过12小时吗详解新手机电池如何充电?对某些手机上,充电超过一定的时间后,如果不去取下充电器,这时系统不仅不停止充电,还将开始放电充电循环。也许这种做法的厂商自有其目的,但显然对电池和手机充电器的寿新手机电池如何充电新手机充电的注意事项详细介绍新手机电池如何充电?对于锂电池的ldquo激活rdquo问题,众多的说法是充电时间一定要超过12小时,反复做三次充分的充放电,以便激活电池。这种ldquo前三次充电要充12小时以上新手机电池怎么充电充电误区要避免图文对于ldquo新手机电池怎么充电?rdquo这个问题,可以说是引起了众多消费者群体不同年龄段老百姓的关注,任何手机在购买回家之后,都会面临首次充电的问题。大多数手机供应商品牌厂家在
安卓电视软件有哪些热门安卓智能电视软件推荐安卓电视软件有哪些热门安卓智能电视软件推荐图文随着电视的换代改朝,安卓电视成了热门的选择,但是安卓电视软件有哪些呢?下面就为大家推荐十款热门安卓智能电视软件,都来看看吧。安卓电视软联通电视机顶盒怎么连接电视首先连接网线,网线连接猫的LAN4口接口,网线另一端连接IPTV机顶盒的网线接口根据您的电视型号把IPTV机顶盒通过HDMI和AV视频线连接电视机顶盒首次使用时,需手动输入激活码激安卓铃声文件夹是哪一个安卓铃声文件夹修改铃声方法我们打开安卓手机系统文件夹的时候,会发现很多以英文命名的文件夹,那么,安卓铃声文件夹是哪个文件夹呢?如果想把喜欢的音乐作为来电铃声,这个音乐文件要放在哪个文件夹呢?关于这一些问题,安卓手机怎么去掉开机铃声安卓手机去掉开机铃声教程很多用户都会觉得安卓手机的开机铃声很讨厌,但是又不知道要怎么去掉。没关系,在这里小编给大家分享一个方法,关于安卓手机去掉开机铃声,希望能对大家有所帮助。操作方法1打开RE管理器,依安卓手机铃声怎么设置以华为系统为例,进入设置,点击声音选项按钮,系统会分别提供卡1和卡2的来电铃声选择打开后可以在默认的系统铃声列表和手机内存储的音乐文件中选择,设置完成后点击右上角的勾确定。具体介绍安卓手机的微信接收到的图片保存在哪个文件夹?点击文件管理中的内部存储,进去内部存储界面之后,点击tencent,点击MicroMsg。点击进去Download文件夹,就看到手机微信接收的文件。具体介绍如下1一般都是在腾讯文件安卓系统,手机拍完的视频存在哪个文件夹里?打开手机的相机,一般在右上角会有设置的图标,点击进入相机的设置菜单看到路径之后,使用手机的文件管理器复制路径进入该目录,就可以看到视频文件。以下是详细介绍1打开手机的相机,一般在右安卓手机怎样更换来电和短信铃声详解许多手机用户都喜欢设置一些自己喜欢的来电与短信铃声,今天,小编将为安卓手机的新用户介绍一下来电与短信铃声的设置方法。来电与短信铃声可以选择系统自带的铃声,也可以选择自己下载的歌曲作手机用户的铃声社交平台安卓个性手机铃声设置近日,安卓个性手机铃声发布,这不仅仅是一个免费的手机应用,也是手机用户的铃声社交平台。用户DIY个性手机铃声,一键可分享至铃声社区新浪腾讯微博等社交平台,让好友们来欣赏你的大作,真php是什么文件php是什么文件?php是一个动态脚本语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用于互联网开发。学习起来比较容易!PHP是一个应用php是什么对于经常上网或者对于程序代码有一定了解的朋友来说,都会听说过php,但就具体来说却不知道php是什么,下面将会为您来介绍一下php。php是什么PHP是一个应用范围很广的语言,特别