[闲聊] ALPHA GO 轻松介绍

楼主: yeahhuman (人)   2019-05-19 22:19:33
虽然标题说是轻松介绍,但是我是尽量把数学概念转化成具体的能想像的事物。
给对围棋熟悉,但是不甚完全了解AI下棋,尤其是ALPHA GO(以下只称AG)的板友,我会尽
可能省略一些术语以及一些比较难而细节的部份,尽量维持在人脑下棋与AI下棋的差异。
我很讨厌所谓的科普结果还是只有相关懂的人才看得懂的文章。
AI下棋的基础还是建立在穷举法,以及混入一些决策过程,但这以前只适用在象棋,西洋
棋这类从印度发源的棋类。即使是将棋还加入了打入的手段也不例外。因为每个棋都有各
自被限制棋类的功能性,因此在当下盘面,使用穷举法马上就可以知道接下来的一两步盘
面变化,而这些盘面变化又可以很轻松的删去很多不必要的走法: 例如走到某一点直接毫
无意义被吃掉。
AG结合了很重要的三个过程:
1) 背棋谱,但不一定必要,也可以采用另一种方式建立AG,直接下两个过程来回建立出
自己的棋谱
2) 人类神经模拟
3) 有效率的穷举法
其中前两者与高端棋士做的事情差不多,但要注意所谓的人类神经模拟,只有一部份真的
与人在判断盘面变化时有关系。而穷举法在这里扮演的脚色,已经不是以往大量直接从盘
面取得的盘面资讯,进行穷举。AG使用了更有效率,采用盘面胜率评估(以下会提到)高的
一些节点进行穷举,这样省下了非常大部分的运算。
我们从AG从建立到下棋的过程说起,首先是背棋谱,这时与高端棋士一样背了大量棋谱。
所以基本的局部死活题理解,高端棋士是与AG旗鼓相当的。对于诘棋大致上AG不太会出错
的。
以下稍微复杂一点,但是只要用自己下棋的思考过程来想,应该不是太困难。在背了大量
棋谱后,AG并不满足现有的棋谱,它开始进行自我训练,采用蒙地卡罗树可以在这部分得
到很大的帮助,蒙地卡罗树基本上就是考虑到胜率评估,开始进行选点,采用那些点往下
延伸之后的可能一些走法,每一个蒙地卡罗树下的某一步如果明显劣于这树下的其他走法
会直接被中止运算。
至于什么是蒙地卡罗树?每一个蒙地卡罗树可以想像成,你在下棋时先想到下这个点,然
后开始推算后续变化,各种后续变化就构成一个蒙地卡罗树。有些走法(在蒙地卡罗树下)
,被评估明显劣势甚至输掉,你就不会再考虑,AI的行为则是会直接截断这条线之后的走
法不再运算,如果这个选点(整个蒙地卡罗树)最后你认为全部延伸走法都没意思,那整个
蒙地卡罗树也会直接被终止不再运算,并考虑其他蒙地卡罗树。非常重要的是,在这自我
训练过程,AG会尽可能选一些不一样的点下棋,一直下到完。这会产生胜率评估值。每一
个蒙地卡罗树会跑到破1000次的后续走法模拟,而且也会随机下棋以试试看新走法,但人
类在一个蒙地卡罗树也许只能推到后续几十步,高端棋士可能到破百步。这样的AG自我练
习,会生出非常大量的新形态棋谱,而且就算一开始只让它背高端棋谱,这自我练习的总
体品质仍然会高于原有输入的高端棋谱。因为在这部分原有的棋谱会被拿出来当作自我对
弈的目标。
再来就是这个胜率评估值会分配给每个走法,形成一个有权重的下棋方向。什么叫做有权
重的下棋方向?权重在这里很简单,就是胜率评估值,AG从大方向(最后的胜利)出发,最
后将形成一个权重网络。这里就想像成你在蜘蛛网上走路(别管蜘蛛网黏不黏),最终目标
是要走出蜘蛛网(只要走出去就算胜利,不用管走哪条路),蜘蛛网的线有些很细,有些很
粗,你会理所当然走粗的线以防断掉。但是也要考虑到权重网络,如果眼前有一条很粗的
线,却只通往全部都是极细的线,那你当然就不会走这条路,而会选择一条整体每条线负
重力总和最大的路线,这里就是前面提到的部分的人类神经模拟。但是别忘记,AI可以直
接给出每条线一个胜率评估值,最后进行总和,而人脑只能靠直觉给出一个大略的数值。
而且高端棋士虽然背了上万份棋谱,但是AG自己乱下试出了更多胜率更高的棋谱变化。接
著随着对手下的每一步棋,整个蜘蛛网络会重新更新一次,AG再次进行蒙地卡罗树的运算

=================================
这里我想要补充一些d大的建议,以及推文的疑问
没错,这里我的确在说明的顺序上没处理好,我一开始就有注意到。
蜘蛛网的每条线其实就是胜率评估值,在心里评估怎么走出去时,蜘蛛网会不断改变
,这里就是大量的蒙地卡罗树组合而成的蜘蛛网。
而胜率评估值很仰赖评估对手下一步会怎么下,所以才会有本文的最后一段:对手下一步
会如何下的评估准确率。所以A大考虑是正确的,预测两方彼此下了几十步甚至几百步,
AG给出一个胜率评估值,而这个值本身又有一个误差,这点在ALPHA GO的论文中也有提
到。
=================================
因此高端棋士会输给AG原因是因为:
1) AG背的棋谱及数量就已经比较优秀以及更大量(AG: 二到四千万份棋谱 vs 高端棋士:
一到二万份棋谱)
2) 在一个走法的胜率评估上算出相对准确的值,例如这步棋差异可能高达0.5%胜率差距
,但人类评估不出来,累积下来就是AG必胜
3) 在同样的时间内AG可以多开几个蒙地卡罗树,也就是多判断几个走法,这个部分就是
让高端棋士比较迷惑之处,看似没意义的一步,但是AG算过后,发现胜率评估值比起小战
场的胜败还高的话,AG会选择这步(不过这步胜率评估值篇高甚至可能早就在AG的自我对
弈中发现了,不用当场算出来)。
直接对AG的实力进行对弈评估,目前结论是看出先喂给它大量棋谱进行监督式学习,它对
于目前权重网络,对手下一步(限高端棋士)的预测准确率比较高; 但是让它自己学习,一
开始显然较弱,但是它最终的ELO却会高于让它从所谓的高端棋谱起步的AG。
这里出现一个很有意思的问题,也就是说直接给AG自己在规则下自我下棋学习,它最后的
强度,会突破先喂给它棋谱的实力。而且根据AG的图表,大概在只要训练20~36小时(这时
自己学习的AG显然也出现ELO的上升趋缓,所以僵持了比较久才明确超越,但后面又会忽
然提升)左右,自己学习的AG的ELO便可以稳定超越受监督的AG。然而对于针对高端棋士的
下一步预测准确率,在自我训练下棋的AG却永远低于受监督AG。这点根据研究结果,团队
只指出自我学习的AG发展了自己的一套策略。这点也许是因为所谓"高端棋士的棋谱"其实
不是胜率最高的,以至于自我训练的AG对于人类的棋谱,有较低的准确率,因为建立它在
自己更优秀的整体棋谱上。
关于以上这点有了解的人,或许可以说明,谢谢。
作者: yyc0921 (去不去)   2019-05-19 23:23:00
赞 清晰
作者: iamgodisme (miles)   2019-05-19 23:27:00
推道歉给推
作者: malala (:-))   2019-05-20 00:50:00
赞!喜欢这种文章
作者: ddavid (谎言接线生)   2019-05-20 03:06:00
虽然这篇脉络理得不错,不过其实我觉得可以多给你一点建议。经典的科普文有几个虽非绝对但至少经常具备的要素:1. 从非常轻松、聊天式的故事导入并可能在中间进行各段落的引导2. 接续上一点,有一些问答从一般人的角度出发,针对容易产生于一般大众心中的问题进行处理3. 对于每个专有名词或某些专门机制,不是直接解释其实际做法及功能,而是以一些一般人都知道的事物先进行比喻,然后才将比喻中的各要素进行补充对应到原始机制上关于3的部分,像你文中就用到了一个还不错的走出蜘蛛网比喻,但是对我而言整体并没有极好的理由是你把比喻跟原始机制及术语混在一起一次写,会导致这个比喻其实起的效用被削弱。单就那一段,我建议可能是走以下的脉络:1. 先完整从头到尾写出一个“走出蜘蛛网”的比喻2. 开始对应“走出蜘蛛网”剧本中与原始问题与机制的对应,比如必须明确写出蜘蛛网的粗细是哪个机制算出来的?走出蜘蛛网的起点是什么,目标又是什么?每走一步都要重新织蜘蛛网吗?还是可以描述成“在一面很大的网上走,可是蜘蛛是大近视,对于越远网线的粗细看得越不清楚,要等走近一点才重新看一次把粗细判断得更清楚一点”之类的?而对于其他段落,这篇就相对比较欠缺一开始三点所说的引导故事、新手问答及比喻对应等要素,所以即便脉络清楚、即便你尽可能省去艰涩的专有名词及技术内涵,但是整体仍然会相对让人比较觉得是“用词比较不深的技术概要文章”而非“科普”。当然现在去搜寻科普文章,也是有很多就用这样的写法,所以这也不是写法有什么对错,只是我个人觉得在科普的易读性、引导性跟趣味性来说,那三点应该是蛮有帮助的要素例如下面科普写作网络平台的第二届人与自然科普写作桂冠奖首奖:http://bit.ly/2w9crjD第四届人与自然科普写作桂冠奖三奖:http://bit.ly/2wa2pP2第五届人与自然科普写作桂冠奖三奖:http://bit.ly/2w7433U可以看到他们对于故事性、问答及比喻都有不同比重的采用,但不管如何,这三个要素都能让阅读者脑中的景象鲜明起来,且容易跟随到写作者的脉络。像是如果科技业应该很可能听说过的The Joel on Software系列文章(集结出书时译为约耳趣谈软件)也都带有这些要素:http://bit.ly/2w6ovBZ虽然Joel的针对面向是已经相对熟知程设或科技业的人,所以不那么科普,但他还是很擅长加入这些要素让文章变有趣
作者: intointo (樱花)   2019-05-20 07:00:00
推原po 跟 ddavid
作者: AIkiku (小鞠)   2019-05-20 12:26:00
你好 我想请问 AG是用什么方式评估该点的胜率呢?因为要评估胜率不是本来就要往后算几步吗?
作者: limitersty (噜噜噜)   2019-05-20 14:50:00
讲得太复杂 失败
作者: buji (卜基)   2019-05-20 16:58:00
以蛛网比喻的话,我以为每次(模拟)对局,走过的蛛网会变粗
作者: gamera (gamera)   2019-05-20 17:28:00
赢的话蛛网才变粗,输的话就变细
作者: david1124 (Master Jian)   2019-05-20 19:57:00
作者: ECB (欧洲央行)   2019-05-20 21:55:00
没搔到痒处,太过简略等于没写一样
作者: Tabrith (血糖瑪琪朵)   2019-05-20 22:06:00
作者: ECB (欧洲央行)   2019-05-20 22:06:00
作者: hakama99 (杂酱面)   2019-05-22 17:24:00
讨论到删推文 删推文引起别人不满被酸有什么好暴怒的
作者: KAOKAOKAO (鬼斗)   2019-05-27 15:35:00

Links booklink

Contact Us: admin [ a t ] ucptt.com