黑棋如何应对白三角子?围棋死活基本常型11种形势判断

纠纷处理 (9:00-18:00)
图书审核 (9:00-18:00)
成功加入购物车
东方红乐淘
艺术品藏品
出版时间:&
出版时间:&
此商品已订完
商品分类:
围棋形势判断基础
围棋形势判断基础
日)石田芳夫著
围棋形势判断基础
(日)石田芳夫著
围棋形势判断基础
围棋形势判断基础
(日)石田芳夫著
围棋形势判断基础
(日)石田芳夫著
围棋形势判断基础
围棋形势判断基础
日本九段 石田芳夫 著 西丁译
围棋形势判断基础
(日)石田芳夫著
围棋形势判断基础
(日)石田芳夫著
艺术品收藏围棋编程形势判断算法[转载]
[转载]原文来自:道客巴巴网站的论文。下面的论文摘要是我自己阅读时所做。该论文在围棋形势判断编程方面给了我很大的启发和帮助!在此特别感谢论文作者和论文的提供者:道客巴巴网站。
&&&&&&&&&&&&&&&&&&&&&
局面分析功能的设计与实现
围棋的最终目的是围空,占领地盘,但是棋子的作用显然不仅仅是围空,每一颗棋子都有它的本身价值,这个价值由对局形势所决定。如何标识和衡量棋子在棋局中发挥的作用,对局面进行分析,这是围棋对弈系统设计的一
个重要内容,即计算机围棋的形势判断。
&&&&&&&&&&
4.1&& 围棋局面分析的影响模型
计算机围棋的形势判断,通常采用影响模型,将棋子向棋盘其他部分的辐射影响量化。
围棋中的“势”通过影响函数(又称势函数)建立可计算模型。通常,黑白子辐射值正负相反,子力辐射按距离的增加而单调递减。
棋子的影响模型是战术决策和战略决策的基础。局面的静态评估,棋子的安全性判断与分块,领地的计算与划分等,通常都基于影响模型的计算结果。在影响模型中,多个棋子的作用被看作是单个棋子作用的叠加,而单个棋
子的作用根据相对位置不同作一定的修正,黑白棋子会产生正负相反的影响。
围棋编程的一个基本任务是分块。“块”是一组有关联的同色棋子。优良的分块法能使计算机对当前的局面有较好的了解。它可用于估计局部棋子的安危,确定战术搜索的范围,产生弱块的攻防点,而且可以在块边缘选取收
官点。分块法与棋子的影响模型是分不开的。
对某点的影响估计过高或过低都将给判断带来问题。估计过高会将弱块看作强块,将原本联系不紧密的棋子视为同一棋块。估计过低会忽略可以利用依靠的棋块,在强块部分浪费手数补棋。总之,影响模型的优劣对战术、战
略决策有极其显著的影响。
&&&&&&&&&&&
典型的影响模型举例
影响模型的使用,贯穿了计算机围棋的发展历史,各种计算机围棋程序,都将影响模型作为战术和战略决策的基础。
Zobrist的影响模型
Zobrist首次引入了影响函数将棋盘分为黑方和白方地域。他的影响函数计算棋盘上每一个交叉点的数值,黑子取+50,白子取-50,空点为0;正负数的点给临近点+1或-1,以这样的算法递归4次,可以把棋盘数值化。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&
10& 62& 10&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
图 4-2& Zobrist的黑子影响模型
2.Ryder的影响模型
Ryder使用的影响函数同样黑取正数,白取负数,某点影响的取值由其邻点的影响传播累加形成,传播系数固定。
陈克训的影响模型
陈克训的影响模型中,棋子的紧邻(距离为1)为最大值m,并随着距离增加而按比例衰减,衰减因子为f。他早期的程序“探索者”选用m=64、f=1/2。衰减因1/2子为就是距离每增加1时影响值减半。于是,一个棋子对直线紧
邻的影响值为64,尖位关位为32,小飞和大关位(拆二位)为16,等等。m值取为2的幂,而f取为1/2,就使各级影响值均为整数,避免了小数运算,可以节省计算量。
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
13& 60& 13&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
图4-3 Ryder的黑子辐射模型
棋子之间有别的棋子挡住,就不易影响到它的后面。陈克训定义两点间的有效距离为,从其中一点到另一点通过空位的最短途径。例如,图4-4中从黑1到a位距离为2,到b距离为3,到c距离为5(因为有白2阻挡,只能绕路).
黑1对b的影响为16,对c的影响为4.
&&&&&&&&&&&&&&&&
图4-4 有效距离
若干个棋子对一个空位的影响可以取代数和。陈克训去黑子的影响为正、白子的为负。
1~3线的空位影响值被乘以某因子使其边大,这成为边角调整。边角调整后把净影响值按比例换算为-n与n之间的数。“探索者”取n=64.这就是说,把净影响值等于或大于198者换算为64,-198或更小者换算为-64,而中间的值
则变换到(-64,64)之间。这种换算称为规格化。距规格化影响值n(-n)的空位即为该点受黑(白)全控制,大体就是该方的实空了。规格化影响值0是不属于任何一方控制的点。把特别大的净影响值通过规格化变为n(-n),是因为某点的净影响值不论多大也不过是某方的1目空。
规格化影响值可用于分块并对棋子的安危进行估算。同色串属于同一块。
取定一个界限值a,规格化影响值不小于a的空位作为黑方所控制的空位,白方则为不大于-a者。经验表明a=n/4是合适的界限。n是规格化影响值的最大值。将相连的己方棋子和己方控制点合在一起,形成一棋块。只用影响值类确定块是不全面的。常有这样的情况,同色的两串实际上不可分割,却并非通过有足够大的影响值的空位相连。为了使分块方案更为完善,还补充了“链”的概念。链是不可分割的同色串的整体。如何确定不可分割?陈克训提出了直观推断准则。
通过影响和链来做出分块,与人类棋手的直觉是颇为一致的。当然,这也需要设计者凭自己的经验进行调整。一旦分了块,其安全性即可用其影响值及其自由度来估计。
块的自由度为该棋块周围的敞开程度,自由度和逃出以及利用周围敞开处做眼的难易程度有关。块的影响值及自由度足够大则安全。不够大的可检查该块能否做两眼,从做出两眼以及逃出的难易程度来对安全度进行评估,并
加以量化,用数字0~64来表示;64为安全,越接近0越不安全。安全性为0的,就是死块,其中的棋子和临近的空位均可判为对方的地域。若我方某块不安全而非无望,即安全性小于64但大于某界限,就会有适当的防守点使其
加强。若对方某块不安全而非无望,就会有攻击点以图攻杀或欺凌该块而取利。这就是说,分块能用来产生攻防着点。
基于不同的影响模型,棋子分块、自由度计算、势力划分等部分的处理也完全不同。影响模型在一定程度上可以将棋子在棋局中发挥的作用量化,从而判定棋子关系、评估盘面局势,是计算机博弈程序的基础。
&&&&&&&&&&&&&&
围棋局面分析的常用算法
目前,世界上流行的围棋软件主要由以下三种算法组成:
使每个棋子周围产生某种影响,这种影响随着距离的增加而减少,用一定的公式计算叠加这种影响,以判断形势和估计着点的价值。这与围棋的棋理相通,即对于每个棋子可估算棋“势力”。此中有著名的“气位”
建立模式库,贮存了大量模式(定式、棋形等),以供匹配。这其实涉及到围棋的许多格言和棋理。如“二子头必扳”、“镇以飞应”、“断从一边长”、三子正中、点方等。这些都是根据围棋的具体情况而设计的
对目标明确的局部,用人工智能中的搜索法探求其结果。
一般来说,现在还没有找到突破性的算法,只有在以上三种算法中细细加工。
&&&&&&&&&&&&&&&&&
围棋局面分析功能的实现
Stone{int value,int distanc},记录每一点与棋盘上已落棋子的距离和受到的影响值。
Map(1 to 19,1 to 19)as
Stone,记录最后的累加影响。Map(i,j)距离和影响值的关系为:value=2的(6-distanc)次方。每一点Map(i,j)的最终影响要通过计算一下模型,递减定律以及反射定律,经过度量公式来
计算,大于定值a的点显示为黑棋地域,小于-a的点显示为白棋地域。
在设计系统局面分析时,采用了如下模型。
&&&&&&&&&&&&&&&&&&
设定影响在棋子的距离1处为最大值32,随着距离增加而按比例衰减,衰减因子为1/2,即距离每增加1则影响值减半。例如,一个棋子紧邻的长影响值为32,小尖和跳影响值为16,小飞和拆二为8,等等。各级影响值均为整数,避免了小数运算。黑影响值为正数,白为负数。黑子的影响如图4-5。
影响模型的实现,采用循环嵌套,对落子(i,j)计算其对周边的影响,定义变量row,colum,对于满足i-6&=row&=i+6,i-6&=column&=i+6的点,(row,column)的距离distance为|row-i|+|column-j|,并记录到棋谱Map(19,19)中。
&&&&&&&&&&&&&&&&&
棋盘上的每一个棋子,都向周围四个方向发出影响,通过这种影响实现对空点的占领和棋子之间的相互作用,这种影响可以被视为一种控制力,沿着四个方向大小相等,而黑白棋子产生的控制力正负相反。
棋子控制力的传播规律如下:
1.&&& 递减律
控制力遇到一个空点,乘以传播率1/2,遇到有子点,则同方向的距离distanc+2,即受到的影响值减1/4倍。
2.&&& 反射律
“金角银边”的体现,控制力会被棋盘的边界反射回来,该反射力与原控制力方向相反,封号相同,大小为原控制力的一个常数倍,该常数被称为反射律。实现时,棋子(i,j)在传播过程中,利用row,column双重循环,如遇到row=1或19,则同方向的距离distanc-|row-i|;如遇到column=1或19,则同方向的距离distance-|column-j|。
每一个点都受到四个方向的控制力的作用,遵循力的合成法则,任一方向的控制力是该方向上各种控制力的代数和。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
图4-5&& 本系统使用的影响模型
实际计算控制力时,
1,任意棋子的初始控制力为64,64为2的幂,可以避免小数运算。
2,黑子的影响为正,白子的影响为负;
3,传播率为1/2;
4,反射率为1;
&&&&&&&&&&&&&&&
4.3.3& 棋盘分块设计
由于棋盘上棋子的影响会因为同色相连的棋子而加倍,故一盘棋的局面分析还需对棋盘上的块棋加以分析。块棋的气势组成它的所有棋子的气总和。以worm数据结构来描述块棋:
Worm{int color,int size,int originX,int originY,int Liberities,bool
cheched}。
其中,color为棋块的颜色,黑为1,白为-1,空位0;
size为同色棋子的个数;
originX,originY记录块的原点,以区分不同的块;
liberities记录块的气;
cheched标记是否属于该块,且已经搜索过。
定义分块的棋谱:worm_map(1 to 19,1 to 19) as worm
Worm结构是棋盘上横向或竖向连着的最大限度的一组相同颜色的点,颜色可以是黑,白,空。非空为串string,空块为cavity。
同色串的集合为龙dragon。龙通常一起死或者一起活。Dragon越小,越容易受到对方的攻击。
直线上的同色块称为串,横竖等几个连在一起的串组成龙。棋块可以从一个原点沿着直线搜索得到。
在得到任一棋盘状态下空点影响的分布图后,可以由这些影响值计算出棋盘状态的深层信息,一些常用的度量公式如下:
一点受到四个方向的控制力,F为四个力的代数和,F大于0,受黑棋影响大;F小于0,受白棋影响强。F=0,双方的影响基本平衡。
判定双方的势力范围
棋盘上每一点受到的控制力的代数和F的绝对值大于某一数值n是,将该点显示为地域。取n=20。加入显示黑棋地域和显示白棋地域2个函数。
用数字Map(19,19)记录每一点势力的情况。
&&&&&&&&&&&&&&&&&&&&&
结论与展望
围棋对弈系统的研究与实现为进一步进行计算机博弈打下了基础。但是该系统存在一些亟待解决的问题,例如,对死活库的建立,可以为将来系统进一步判断死活打下基础,达到真正智能化,并进一步实现“人-机”对弈。毋庸置疑,死活是一个很有研究价值的领域。
陈志行教授在《电脑围棋门径》中提到了设计计算机围棋的方法:第一,显示棋盘棋子和其他辅助功能。第二,设置计算和记录棋子串气数的功能,赋予提子和禁着点的功能。第三,设计一种函数,表征每个棋子对周围的影
响,用以划分势力范围,作为静态形势判断的基础。第四,要对棋盘上各点分别试下黑棋或白棋,比较落子前后的静态形势,以估算该点的落子价值,成为着点选择的基本依据。还要设置棋谱记录、计时、发声、显示显示形
势对比、计算胜负等功能。“首先必须完成前两个部分,其次解决后两个部分,这样程序就算是基本会下棋了”。
&&&&&&&&&&&&&&&&&
继续以前的对局
多日围棋赛制,一盘棋可以下好几天,甚至几个月。因此围棋软件需要“继续以前的对局”这一功能。设计成通用文件格式的继续对局处理,无需在存盘棋谱文件里设置特殊的标记,从一般的sgf棋谱里就可以继续对局。
1,T.Cazenave.”Generation of Patterns with External Conditions for
the Game of Go’第二页。
2,Albert L.Zobrrist.”A new hashing method with application for Game
Playing”,technical rport88,university of Wisconsin,april 1970
reprinted in ICCA Journal.,第69-73页,1970年第13期。
3,K.Chen.”Group identification in computer
Go”,in:D.levy,D.Beal,eds,Heuuristic programming in artificial
intelligence, the first computer Olympiad,Chichester:Ellis
Horwood,第195-210页,1989年。
4,A.Zorbrist.”a model of visual organization for game Go”,in
proceeding of the spring joint computer conference.
5,Jon Reder-Heuristic.”analysis of large trees as generated int the
game of Go”[PhDthesis]Department of Computer Science,Standford
university 1971.
6,K.Chen.”some practical techniques for global search in Go”,ICGA
Journal,第67-74页,2000年第23期。
7,王斌君,郑建息,郝克刚。“计算机辅助围棋系统”《西北大学学报(自然科学版)》第481页,1994年12月第26期。
8陈志行。“电脑围棋门径”http://www.usgo.org/computer
常用围棋术语中英文对照
眼eye,气liberty,先手sente,后手gote,好手tesuji,双活seki(impasse),围contain,拆extend,立sagari,叫吃atari(cheok),长nobi,空chi,territoty,提通ponnuki,脱先kenuki,断cut,切断cut-in,断点cutting
point,跳jump,一间跳ikken bsasme,贴目 komi,交换
furikawari(exchange),布局fuseki,收官endgame move,尖diagonal
move,枷geta,征子ladder,级kyu,段位dan
grading,轻karui(light),打atari,欺着hamete(trick
play),厚thickness,失着slip,本手honte(proper
move),手筋tesuji,先手得利kikashi,见合miai,打入uehikomi,腾挪sabaki,挤去眼sashikomi,挡osae,劫ko,对杀semeai,压kake(pressing
move),靠tsuke,模样moyo,夹diagonal move,一间夹 ikken basame,定式formalized
series of moves,挂角kakari,托角touke(corner),逼tsume(checking
extension)
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。围棋技巧之长气与短气
围棋技巧之长气与短气
学习啦【围棋】 雪花
  棋子在互相包围对杀时,必须用&长气,和紧气的方法,达到攻杀对方,保护自己的目的。下面学习啦小编给你介绍技巧之长气与短气,欢迎来阅读。
  围棋技巧之长气与短气
  如果对&长气&和&紧气,不理解,就会导致本可以吃掉对方的棋,反而因差一气被对方吃掉,致使胜负颠倒。因此,长气&和&紧气&在战术上显得特别重要。
  长气在对杀时。自己的气不够怎么办,有时是可用长气的方法来和对方对杀的。
&&&&&&& 围棋技巧之长气与短气举例
  在图1中,A:被断开的两个白子现有4口气,而黑五子有5口气,白①紧气,黑,也紧气,白显然差一气被杀。
  在图1中,B:白①长气,立刻由原来的4口气变成6 f7气,以下至白⑨,对杀的结果反而白快一气而杀黑。
  在图2中,A:左上角被包围的黑棋,数起来只有3口气,而被黑包围的五粒自子有4口气,应该说是白吃黑&&但是,黑有长气的手段。
  在图2中,B:黑1断是长气的好手,收气时白要在a位提一子,黑3就多出一口气,以下黑,紧气。结果黑杀白。
  紧气的手段很多.我们先看一个例子。如果紧气的方法不对,将形成本来可以吃掉对方的棋,反而因为一气之差而被对方所吃掉的惨痛局面。因此.正确的紧气方法是很重要的。
  在图3中,A:棋盘L边黑白一串棋子相互包围,用什么吃黑,紧气的好手在哪里?
  在图4中,A:自一扑,紧气的妙手,这样到白⑦净杀黑棋。
[围棋技巧之长气与短气]相关的文章
【围棋】图文推荐您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
围棋形势判断-赵余宏.pdf 230页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
B.'}'}}}}"}}}}
·围棋入段 自修丛书 ·
3棋a*判0611i
赵余宏 编著
北京体育大学出版社
策划编辑:董英双
责任编辑:李晓佳 董英双
审稿编辑:兽 牧
责任校对:建 林
责任印制:长 立 陈 莎
&#M'BS.NANA4'II,N2MAI00}7--*0.T(R.-M-.98.LA"0-IEW2M5fX1f-CLl.41PCC.U.9UP9I)3-f)Iaf().-f74*l}gl"PM}rj1M20V0:0t)N((36G4.2897.31
围棋形势判断
赵余宏 编著
北京体育大学出版社出版发行
新华书店总店北京发行所经销
北(京·中关村北大街 邮编:100084)
北京雅艺彩印有限公司印刷
开木:787x1092毫米 1/32
印张:7.125
定价:1000元
2002年9月第1版第2次印刷
ISBN 7- 8/G"428
木(书因装订质量不合格木社发行部负责调换)
围棋的胜负是以所围实地的多少而决定的。那么,如何
来断定双方实地的多少,只有作形势判断。形势判断是一局
棋的灵魂,是制定一切战略战术的根据,也是一局棋取胜的
关键。因此,作为一名棋手,形势判断的水平高低,对提高
棋艺水平具有极其重要的意义。
所谓形势判断,就是在一局棋的某一阶段、某种局势
下,通过对双方实地的对比、子力强弱、棋形厚薄等等的分
析,判断出双方形势的优劣,从而决定以后的下法。
序盘阶段、中盘作战,或者进六收官时,判断出哪一种
情况要选择哪一种下法,这就是大局观。要养成良好的大局
观,只有日积月累地训练基本的形势判断能力。
本书共分为四章,先从最基本的空的计算方法、空的增
加和减少开始,然后讲解了高手实战的形势判断训}练,最后
列举了形势判断测试题,可以说是较全面地揭示了形势判断
的奥秘。本书的最大特点是,讲解由浅入深,条理清楚,既
便于理解,又特别实用,非常适合于一般围棋爱好者阅读,
是广大围棋爱好者学习和掌握形势判断,进而提高棋力必不
可少的一本极好教材。
第一章 空的计算方法 ·(1)
一、计算空的方法 ····································…… (1)
二、计算厚味的方法 ······························…… (31)
三、计算模样的方法 ······························…… (48)
第二章 空的增加和减少 ·(58)
第三章 实战形势判断训练 ·(112)
第四章 形势判断测试题 ·(172)
C卜一—‘ 一一一 -一一一— -—
空 的 计 算 方 法
今 .今 .今 .令 。今 .今 .今 ·今 .令 ·今 .今 .今 .今 .李 .幸 .袱卜.幸 .今 .今 .幸 .令 .令 .今 .今 .幸 .令 。
围棋是以围空的多少来决定胜负。作形势判断,当然要
考虑黑白双方围空的大小。如果能做到对形势一 目了然,就
再好不过了,可是这必须不断地练习。其基本方法就是数
空,即计算实空。
这里不准备谈终盘空已确定的计算问题,而是谈尚未成
实空的序盘和中盘阶段。如果在空已确定后再作形势判断,
就为时已晚。形势判断只有在序盘和中盘,才能充分发挥其
应有的作用。
作形势判断的场合,除了实利以外,最好能具备判断出
厚味、模样等将可构成多少实空的能力。因此,本章分别对
形势判断的三个要点加以介绍:
①计算空的方法;
②计算厚味的方法;
③计算模样的方法。
正在加载中,请稍后...【原创】AlphaGo怎么下围棋的
最近DeepMind团队(google旗下)的AlphaGo(一个围棋的AI)以4:1战胜顶尖人类职业棋手李世石。她到底是怎么下棋的?AlphaGo在面对当前棋局时,她会模拟(推演棋局)N次,选取“模拟”次数最多的走法,这就是AlphaGo认为的最优走法。例如图中,所有没有落子的地方都是可能下子的,但在模拟中,右下那步走了79%次, 就选那一步了,就那么简单。后面你会发现,“模拟”次数“最多”的走法就是统计上“最优”的走法。
1. 啥是模拟?
模拟就是AlphaGo自己和自己下棋,相当于棋手在脑袋中的推演,就是棋手说的”计算“。AlphaGo面对当前局面,会用某种(下面会讲)策略,自己和自己下。其中有两种策略:往后下几步(提前终止,因为AlphaGo有一定判断形势的能力);或者一直下到终局(终局形势判断相对简单,对于棋手简单,对于机器还有一定难度,但是这个问题已经基本解决)。对于棋手来说就是推演棋局。AlphaGo会模拟多次,“不止一次”。越来越多的模拟会使AlphaGo的推演“越来越深”(一开始就1步,后来可能是几十步),对当前局面的判断“越来越准”(因为她知道了后面局面变化的结果,她会追溯到前面的局面,更新对前面局面的判断),使后面的模拟“越来越强”(更接近于正解,她后面模拟出来的着法会越来越强)。怎么做到的?看她怎么模拟的。注意,这里的模拟是下棋(线上)时的模拟,后面还会有个学习时的模拟,不要混淆了。
2.AlphaGo怎么模拟的?
每次模拟中,AlphaGo自己和自己下。每步中由一个函数决定该下哪一步。函数中包括了以下几个方面:这个局面大概该怎么下(选点:policy net),下这步会导致什么样的局面,我赢得概率是多少(形势判断:value net 和rollout小模拟),鼓励探索没模拟过的招法。这些英文名词后面会有解释。模拟完一次后,AlphaGo会记住模拟到棋局,比如几步以后的棋局。并且计算这时policy,value。因为这时已经更接近终局了,这时的值会更加准确(相对于前面的模拟或局面)。AlphaGo还会用这些更准的值更新这个函数,函数值就越来越准了,所以模拟的每一步越来越接近正解(最优的下法),整个模拟越来越接近黑白双方的最优下法(主变化,principle variation),就像围棋书上的正解图一样。到此为止,你已经大概了解AlphaGo她怎么工作的了,下面只是一些细节和数学了。
3. 那个函数是啥, 好神奇?
这个函数,分为两个部分。
Q 是action value, u是bonus。Q其实就是模拟多次以后,AlphaGo计算走a这步赢的概率,其中会有对未来棋局的模拟(大模拟中的小模拟),和估计。u中包括两个部分。一方面根据局面(棋形)大概判断应该有那几步可以走,另一方面惩罚模拟过多的招法,鼓励探索其他招法,不要老模拟一步,忽略了其他更优的招法。
4.Q(action value)具体是什么?
Q看上去有点复杂,其实就是模拟N次以后,AlphaGo认为她模拟这步赢得平均概率。 分母N是模拟这步棋的次数。分子是每次模拟赢的概率(V)的加和。其中V又包括两部分,value net对形势的判断。和一个快速模拟到终局,她赢的概率。valuenet是说她看这个这个局面,就要判断赢的概率,“不准”往下几步想了。value net下面详细讲。快速模拟是说她看这个这个局面,自己和自己下完,看看黑白谁赢的概率高。快速模拟是我们这个大模拟中的一个小模拟。Q就是看当下(value net),也看未来(快速模拟),来决定怎么模拟(对人来说就是往哪里想,对于棋手就是思考哪些可能的着法),下棋方(模拟中下棋方黑白都是AlphaGo)下那一步赢的概率高,从而决定模拟下那一步。
5.u(bonus)具体是啥?
u中包括两个部分。分子是AlphaGo根据当前局面判断(policy net),不模拟,比如棋手根据棋形大概知道应该有哪几步可以走。分母是模拟到现在走当前步的累加,越大下次模拟越不会走这了。一句话,(Q+u)就是决定模拟中,下棋方会走(模拟)哪里。到此,我们大概了解了AlphaGo的两大神器:value net(形势判断:模拟中,我走这步,我赢的概率是多少)和policynet(选点:模拟中,这个局面我走那几步最强)。下面会揭开他们神秘的面纱。
6. 为什么选模拟次数最多的一步?
根据以上的函数可知,模拟次数最多一步,其实就是在多次模拟中,AlphaGo认为那一步最可能赢的次数的累加(或平均,除以总模拟次数)。
7. 为什么要分为policy net(选点)和value net(形势判断)呢,选点和形势判断不是一个东西吗?
确实,选点和形势判断是互相嵌套的。首先,围棋的形势判断是非常困难的。在围棋直播中我们经常看到,职业9段也不能准确判断当前局面,除非地域已经确定,没有什么可以继续战斗的地方,一般也就是接近终局(官子阶段)。即使职业棋手,选点和判断也是定性的成分偏多,定量的成分偏少。以前说中国顶级棋手古力能推演到50步,已经非常强了。再说嵌套问题,准确的定量的选点和判断,就要计算(对于棋手是在脑子里推演,对于机器就是模拟)才行。在推演中,我选点走那步决定于,走这步后我赢的概率,而这个概率又决定于对手走那一步(我会假设对手弈出她最强的一步,对我最不利),对手走那一步决定于,她走那步后,她对形势的判断要对她最好,这又取决于我的下下步(第3步了)走哪里(对手她也会假设我会下出对她最不利的一步,自然对我最优),从而不断的嵌套,这个“死结”要到终局(或者接近)才能解开(终局形势判断比较简单)。所以不到终局,判断形势是非常困难的,即使职业的9段也不行。这就是围棋比象棋难的关键所在,它没有简单的形势判断的方法,而象棋有。要回答这个问题7还要看下面了。
8.AlphaGo是怎么打开这个死结的?
AlphaGo没有进行直接的形势判断,就是没有直接学习valuenet,而是先做一个选点(policynet)程序。选点可以认为是一个时序(走棋)的一个局部问题,就是从当前局面大概判断,有哪几步可能走,暂时不需要推演(那是模拟的工作)。棋手的选点是会推演的,这里的基础policy net是不推演的,前已经看到AlphaGo线上模拟中选点(Q+u)是有推演的。
所以policynet是用在“每次模拟”中,搜索双方可能的着法,而最优步的判断是“N次模拟”的任务,policy net不管。此外policy net还用来训练value net,也就是说,value net是从policy net 来的,先有policy 才有value。选点(policy net)能成立吗?如果不成立,也是没用。
9. 第一神器policy net怎么工作的?
先大概看下这个图。现在轮到黑棋下,图上的数字是AlphaGo认为黑棋应该下这步的概率。我们还发现,只有几步(2步在这个图中)的概率比较大,其他步可能性都很小。这就像职业棋手了。学围棋的人知道,初学者会觉得那里都可以走,就是policy(选点)不行,没有选择性。随着棋力增长,选择的范围在缩小。职业棋手就会锁定几个最有可能的走法,然后去推演以后的变化。AlphaGo通过学习,预测职业选手的着法有57%的准确率。提醒一下,这还是AlphaGo“一眼”看上去的效果,她没开始推演(模拟)呢。而且她没预测对的着法不一定比职业棋手差。
policynet怎么学习的,学啥?首先,policy net是一个模型。它的输入时当前的棋局(19*19的棋盘,每个位置有3种状态,黑,白,空),输出是最可能(最优)的着法,每个空位都有一个概率(可能性)。幸运的是,着法不像形势判断那么无迹可寻。我们人已经下了千年的棋。policy net先向职业选手学习,她从KGS围棋服务器,学习了3000万个局面的下一步怎么走。也就是说,大概职业选手怎么走, AlphaGo她已经了然于胸。学习的目的是,她不是单纯的记住这个局面,而是相似的局面也会了。当学习的局面足够多时,几乎所有局面她都会了。这种学习我们叫做“监督学习”(supervised
learning)。以前的职业棋手的棋谱,就是她的老师(监督)。 AlphaGo强的原因之一是policy net这个模型是通过深度学习(deep learning)完成的。深度学习是近几年兴起的模拟人脑的机器学习方法。它使AlphaGo学习到的policy更加准确。以前的AI都没有那么强的学习能力。更加厉害的是,AlphaGo从职业棋手学完后,感觉没什么可以从职业棋手学的了。为了超越老师和自己,独孤求败的她只能自己左右互搏,通过自己下自己,找到更好的policy。比如说,她从监督学习学到了一个policy,P0。AlphaGo会例外做一个模型P1。P1一开始和P0一样(模型参数相同)。稍微改变P1的参数,然后让P1和P0下,比如,黑用P1,白用P0选点,直到下完(终局)。模拟多次后,如果P1比P0强(赢的多),则P1就用新参数,否则,重新再原来基础上改变参数。我们会得到比P0强一点点的P1。注意,选点是按照policy的概率的,所以每次模拟是不同的。多次学习后AlphaGo会不断超越自己,越来越强。这种学习我们叫做增强学习(reinforcement
learning)。它没有直接的监督信息,而是把模型发在环境中(下棋),通过和环境的互相作用,环境对模型完成任务的好坏给于反馈(赢棋还是输),从而模型改变自己(更新参数),更好的完成任务(赢棋)。增强学习后,AlphaGo在80%的棋局中战胜以前的自己。最后,AlphaGo还有一个mini的policy net, 叫rollout。它是用来上面所说的模拟中,快速模拟的终局的。它的输入比正常policynet 小,它的模型也小,所以它的耗时是2微妙,而一个policy要3毫秒。它没有policy准,但是它快。总结一下policy。它是用来预测下一步“大概”该走哪里。它使用了深度学习,监督学习,增强学习等方法。它主要用于每次模拟中的bonus的先验(我大概该怎么走),和value net的学习(后面的重点)。如果单纯用policy预测的着法来作为最优着法,不通过value net的计算和上面说的模拟,对职业棋手那是不行的。但是,单纯用policy预测已经足够打败以前的围棋AI(大约有业余5段实力)了。这说明了上面3种学习方法的强大威力。AlphaGo就看了一眼,还没有推演,你们就败了。policynet为解开那个死结走出了第一步,下面我们就讲讲这第二个“神器”:value net。
10.第二神器value net怎么工作的
前面说了,形势判断是什么无迹可寻,就连职业9段也做不到。有了policy net,整个世界都不一样了。 AlphaGo她的灵魂核心就在下面这个公式里。V*(s)=Vp*(s)约等于Vp(s)。s是 棋盘的状态,就是前面说的19*19,每个交叉3种状态。V是对这个状态的评估,就是说黑赢的概率是多少。V*是这个评估的真值。p*是正解(产生正解的policy)p是AlphaGo前面所说学到的最强的policy net。如果模拟以后每步都是正解p*,其结果就是V*,这解释了等号。如果你知道V*这个函数,在当前局面,你要对走下一步(围棋平均有250种可能性)后的状态s进行评估,选最大的V*走就行。围棋就完美解决了。但是,前面说了,V*不存在。同样p*也不存在(理论上存在,实际因为搜索空间太大,计算量太大找不到。在5*5的棋盘中下棋可以做到)。
AlphaGo天才般的用最强poilicy,p来近似正解p*,从而可以用p的模拟Vp来近似V*。即使Vp只是一个近似,但已经比现在的职业9段好了。想想她的p是从职业选手的着法学来的,就是你能想到的棋她都想到了。而且她还在不断使的p更准。顶尖职业棋手就想以后的20-40步,还会出错(错觉)。AlphaGo是模拟到终局,还极少出错。天哪,这人还怎么下。围棋问题实际是一个树搜索的问题,当前局面是树根,树根长出分支来(下步有多少可能性,棋盘上的空处都是可能的),这是树的广度,树不断生长(推演,模拟),直到叶子节点(终局,或者后面的局面)。树根到叶子,分了多少次枝(推演的步数)是树的深度。树的平均广度,深度越大,搜索越难,要的计算越多。围棋平均广度是250,深度150,象棋平均广度是35,深度80。如果要遍历围棋树,要搜索250的150次方,是不实际的。这也是围棋比象棋复杂的多的原因之一。但更重要的原因前面讲了:是象棋有比较简单的手工可以做出的value函数。比如,吃王(将)得正无穷分,吃车得100分,等等。1997年打败当时国际象棋世界冠军的DeepBlue就是人手工设计的value。而围棋的value比象棋难太多了。手工根本没法搞。又只能靠深度学习了。在讲value的原理前,先看看定性看看value的结果。如图,这是AlphaGo用value net预测的走下一步,她赢的概率。空的地方都被蓝色标示了,越深说明AlphaGo赢的概率越高。这和我们学的棋理是相符的,在没有战斗时,1,2线(靠边的地方)和中间的概率都低,因为它们效率不高。而且大多数地方的概率都接近50%。所以说赢棋难,输棋也很难。这当然排除双方激烈战斗的情况。这里讲讲怎么通过policy net 得到value net。有了policy,value就不是那么难以捉摸了,死结打开了。AlphaGo可以模拟(自己和自己下,黑白都用最强的policy),直到终局。注意,这里的模拟和最初说的模拟有点不同。最初的模拟是AlphaGo在下棋(线上)中用的,用来预测。这里的模拟是她还在学习(线下)呢。终局时V*(谁赢)就比较容易判断了。当然,对机器来说也不是那么容易的,但相对于中局来说是天渊之别。valuenet也是一个监督的深度学习的模型。多次的模拟的结果(谁赢)为它提供监督信息。它的模型结构和policy net相似,但是学的目标不同。policy是下步走哪里,value是走这后赢的概率。总结一下,value net预测下一走这后,赢的概率。本身无法得到。但是通过用最强policy来近似正解,该policy的模拟来近似主变化(就围棋书上那个,假设书上是对的),模拟的结果来近似准确的形势判断V*。value net用监督的深度学习去学模拟的得到的结果。value net 主要用于模拟(在线,下棋的时候)时,计算Q值,就是平均的形势判断。再回顾一下模拟,模拟的每一步是兼顾: 模拟到现在平均的形势判断value net, 快速rollout模拟到终局的形势判断, 根据当前形势的选点policy,和惩罚过多的模拟同一个下法(鼓励探索)等方面。经过多次模拟,树会搜索的越来越广,越来越深。由于其回溯的机制,Q值越来越准,下面的搜索会越来越强。因为每次的Q值,都是当前模拟认为的最优(排除鼓励探索,多次后会抵消),模拟最多的下法(树分支)就是整个模拟中累积认为最优的下法。到此为止,AlphaGo她神秘的面纱已经揭开。她的基本框架见下图。下棋时的线上过程是图中红箭头。线下的准备工作(学习过程)是蓝箭头。。再串一下。AlphaGo下棋(线上)靠模拟,每次模拟要选下那一步,不是简单的选点policy就完了,而是要参考以前模拟的形势判断,包括:value net和快速模拟(小模拟)到终局,鼓励探索,policy(先验),就是(Q+u),它比单纯的policy准。她选择模拟最多的下法(就是平均最优)。这是线上,下着棋了。之前(线下),她要训练好policy模型,
rollout模型和value 模型。其中,policy,rollout可以从棋谱,和自己下棋中学到。value可以从用学好的policy下棋的模拟结果监督学到。从而完美解决value学不到的问题和policy和value互相嵌套的死结。从棋谱直接学value net现在还不行。
11. AlphaGo用到哪些技术?
AlphaGo在树搜索的框架下使用了深度学习,监督学习和增强学习等方法。
以前最强的围棋AI使用蒙特卡洛树搜索的方法。蒙特卡洛算法通过某种“实验”的方法,等到一个随机变量的估计,从而得到一个问题的解。这种实验可以是计算机的模拟。让我们看看蒙特卡洛树搜索怎么模拟的。算法会找两个围棋傻子(计算机),他们只知道那里可以下棋(空白处,和非打劫刚提子处),他们最终下到终局。好了,这就可以判断谁赢了。算法就通过模拟M(M&&N)盘,看黑赢的概率。可以看到这明显的不合理。因为每步是乱下的。有些棋根本就不可能。即使如此,这个算法可以达到业余5段左右水平。
AlphaGo可不是乱下,她是学了职业棋手着法的。所以AlphaGo的搜索叫beam search(只搜索几条线,而不是扫一片)。前面也可以看到AlphaGo认为的可能着法就几种可能性,而不是随机的250种。这就是从250的150次方到几(&10)的n(n&&150,可以提前终止搜索,因为有value net)次方,的计算量降低。虽然AlphaGo每次模拟的时间更长(因为要深度模型的预测policy 和value,不是乱下),但是AlphaGo的模拟次数可以更少,是蒙特卡洛树搜索的1/15000。就是说AlphaGo的搜索更有目的性了,她大概知道该走哪里。解说说她下棋更像人了。我会说她下棋更像职业棋手,甚至超过职业棋手。线下的学习使得她的行为(模拟)有了极强的目的性,从而完成最终目标(赢棋)。
12.什么是打劫
打劫,是指黑白双方都把对方的棋子围住,这种局面下,如果轮白下,可以吃掉一个黑子;如果轮黑下,同样可以吃掉一个白子。因为如此往复就形成循环无解,所以围棋禁止“同形重复”。根据规则规定“提”一子后,对方在可以回提的情况下不能马上回提,要先在别处下一着,待对方应一手之后再回“提”。如图中的情况:
打劫因为反复走同一个点,会使搜索树的深度加大,而且因为其他位置劫才会影响劫的输赢,劫才之间又相互影响,有可能打劫中又产生新的劫。总之,打劫规则会使围棋的复杂度加大。因为前两局棋没有下出打劫,有人会怀疑DeepMind和李世石有不打劫协议。在后面的棋局中,AlphaGo确实下出了主动打劫。而且从算法层面看,打劫也不会是她的模拟框架崩溃(可能会有一些小麻烦)。
13. 遇强则强,遇弱则弱?
AlphaGo的表现似乎是遇强则强,遇弱则弱。这可能是由于她的学习监督信息决定的。policy和value学习时,和rollout模拟时,最后的结果是谁赢(的概率),而不是谁赢“多少”(赢几目)。所以在AlphaGo领先时(几乎已经是常态了),她不会下出过分的棋,她只要保证最后赢就行了,而不是像人一样要赢的多,赢的漂亮。即使有杀大龙(一大块棋)的机会,她也不一定杀,而是走温和的棋,让你无疾而终。估计只有在AlphaGo判断她大大落后的时候,她才会冒险走过分的棋(这好像不常见)。
14. AlphaGo下棋为什么花钱?
AlphaGo有单机版,多机(分布式)。分布式明显比单机强。去年的分布式有40个搜索线程,1202个CPU,176个GPU(显卡)。和李世石下棋时可能更多。这么多机器的运作和维护就是烧钱。
15.AlphaGo有哪些技术突破,使她能战胜人类顶尖棋手?
a. 继承了蒙特卡洛树搜索的框架进行模拟。b. 在学习policy中使用了监督学习,有效的利用现有的棋手的棋谱,学到了他们的选点策略。c. 在学习policy中使用了增强学习,从左右互搏中提高自己。d. 利用policy net(选点模型)近似正解,用policy net的对弈的结果模拟正解对弈的结果,即正确的形势判断,从而打破形势判断和选点相互嵌套的死结。就是先学policy,再学value。e. 在学习policy, value, rollout中使用深度学习模型。深度学习有非常强的学习能力。使得选点和形势判断前所未有的准(对比蒙特卡洛是随机选点,现在是职业棋手帮她选点了)。因为在每次模拟中用到了这两个“准”,使得在树搜索(就是推演)的过程更有目的性(树大量减枝,只模拟比较优良的下法)f. 当然还有机器一贯的优势,不疲劳,不受心理情绪影响,不会错的记忆力等等。到此AlphaGo终于介绍完了。
下面是去年底DeepMind团队的nature paper。
Mastering the game of Gowith deep neural networks and tree search。
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 2, 1, 2, 1, 1, 1, 1, 1.
AlphaGo论文的译文,用深度神经网络和树搜索征服围棋:Mastering the game of Go with deep neural networks and tree search
围棋的英文是 the game of Go,标题翻译为:《用深度神经网络和树搜索征服围棋》...
围棋是一个完全信息博弈问题。而完全信息博弈,通常能被简化为寻找最优值的树搜索问题。它含有 b 的 d 次方个可能分支,在国际象棋中 b≈35,d≈80;而在围棋中 b≈250,d≈150。很显然,对于...
前言最近看了AlphaGo的论文:Mastering then
Game of Go with Deep Nerual Networks and Tree Search。惊异于这些人的创造力和神经网...
日,Google Deepmind在Nature上发文宣布其人工智能围棋系统AlphaGo历史性的战胜人类的职业围棋选手!这条重磅新闻无疑引起了围棋界和人工智能界的广泛关注!3月份A...
AlphaGo原理探讨由于状态空间无法穷举,博弈类游戏AI都采用了(启发式)搜索算法,即从当前状态出发,尝试可靠的行动,达到终局或一定步数后停止,根据后续局面的优劣反馈,采取最优行动。为了评估行动是否...
没有更多推荐了,}

我要回帖

更多关于 围棋黑棋贴几目 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信