弈棋机原理

核心都必须有两部分:博弈搜索和局面评估。

博弈搜索是一个招法(下一步棋)向着后续招法分叉,形成了一棵树形结构,称为博弈树。

之后运用搜索法进行搜索。

1、最简单的搜索法称为暴力搜索法(Brute force)或者A(Alpha、阿尔法)方法,这种方法全面生成所有可能的招法,并选择最优的一个,也就是尽可能对博弈树穷尽搜索。

        暴力搜索法程序遇到的主要难题是博弈树所包含的局面数量实在太多太多了。国际象棋每个局面平均有40步符合规则的着法。如果你对每步着法都考虑应着就会遇到40 x 40 = 1600个局面。而4步之后是250万个,6步之后是41亿个。平均一局棋大约走40回合80步,于是所有可能局面就有10的128次方个,这个数字远远多于已知宇宙世界的原子总数目(大约10的80次方)!

2、另一种策略称为B(Beta、贝塔)方法,基本思想是剔除某些树枝。

        纽厄尔、西蒙和约翰·肖发展的Alpha-Beta算法可以从搜索树中剔除相当大的部分而不影响最后结果。它的基本思想是,如果有些着法将自己引入了很差的局面,这个着法的所有后续着法就都不用继续分析了。也就是说,如果有一个完美的局面评估方法,只要把最好的一个着法留下来就可以了。当然这种完美的评估方法不存在,不过只要有一个足够好的评估方法,那么也可以在每一层分析时只保留几个比较好的着法,这就大大减少了搜索法的负担。Alpha-Beta算法和优秀人类棋手下棋时的思考过程已经非常接近了。

    弈棋机的学习层次和运算速度成了机器智能的标准。

    20世纪70年代,曾经创造UNIX系统的计算机行业大腕肯·汤普森开始进入电脑国际象棋领域,他和贝尔实验室的同事乔·康登(Joe Condon)一起决定建造一台专门用于下国际象棋的机器,他们把这台机器叫作Belle,使用了价值大约2万美元的几百个芯片。Belle能够每秒搜索大约18万个局面,而当时的百万美元级超级电脑只能搜索5000个。Belle在比赛中可以搜索八至九层那么深,是第一台达到国际象棋大师级水平的计算机。从1980年到1983年它战胜了所有其他电脑,赢得了世界电脑国际象棋竞赛冠军,直到被价钱贵上千倍的克雷巨型机(Cray X-MPs)取代。Belle的成功,开创了通过研发国际象棋专用芯片来提高搜索速度的道路。

    汤普森在20世纪80年代对搜索深度和棋力提高之间的关系做了非常有意义的试验。他让Belle象棋机自己跟自己下,但只有一方的搜索深度不断增加,结果是,根据胜负比率,平均每增加一个搜索深度可大约换算成200个国际象棋等级分。由此推论,可以计算出搜索深度达到14层时,就达到了当时世界冠军卡斯帕罗夫的水平,即2800分的等级分。当时计算机行业专家的推测是:要与人类世界冠军争夺冠军,必须做一台每秒运算10亿次的电脑(对应于搜索到14层的深度)

    AlphaGo系统主要由以下几个部分组成。
(1)策略网络(Policy Network),给定当前局面,预测下一步的走棋。对棋盘上的每个可下的点都给出了一个估计的分数,也就是围棋高手下到这个点的概率。评估一步棋的时间仅需2ms左右。
(2)快速走子(Fast rollout),目标和策略网络一样,但在适当牺牲走棋质量的条件下,速度要比策略网络快1000倍。下一步棋的时间仅需2μs左右。
(3)估值网络(Value Network),给定当前局面,估计是白胜还是黑胜,给出输赢的概率。

(4)蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS),把以上3个部分连起来,形成一个完整的系统。

    简单地说一下AlphaGo的“训练”过程,AlphaGo团队首先利用几万局专业棋手对局的棋谱来训练系统,得到初步的“策略网络”和“快速走子”。训练“策略网络”时,采用“深度学习”算法,基于全局特征和深度卷积网络来训练,其主要作用是给定当前盘面状态作为输入,输出下一步棋在棋盘其他空地上的落子概率。“快速走子”则基于局部特征和线性模型来训练。完成这一步后,AlphaGo已经初步模拟了人类专业棋手的“棋感”。接下来,AlphaGo采用左右互搏的模式,不同版本的AlphaGo相互之间下了3000万盘棋,利用人工智能中的“深度增强学习”算法,通过每盘棋的胜负来学习,不断优化和升级“策略网络”,同时建立了一个可以对当前局面估计黑棋和白棋胜率的“估值网络”。根据AlphaGo团队的数据,对比围棋专业选手的下法,“策略网络”用2ms能达到57%的准确率,“快速走子”用2μs能达到24.2%的走子准确率。据估计,单机上采用“快速走子”的下棋程序,已经具备了围棋三段左右的水平。而“估值网络”对胜负的判断力已经远超所有人类棋手。

    实际对局时,AlphaGo通过“蒙特卡罗树搜索”来管理整个对弈的搜索过程。首先,通过“策略网络”,AlphaGo可以优先搜索本方最有可能落子的点(通常低于10个)。对每种可能,AlphaGo可以通过“估值网络”评估胜率,同时,可以利用“快速走子”走到结局,通过结局的胜负来判断局势的优劣,综合这两种判断的评分再进一步优化“策略网络”的判断,分析需要更进一步展开搜索和演算的局面。综合这几种工具,辅以超级强大的并行运算能力,AlphaGo在推演棋局变化和寻找妙招方面的能力,已经远超人类棋手。根据资料,最高配置的AlphaGo分布式版本,配置了1920个 CPU(中央处理器)和280个 GPU(图形处理器),同时可以跑64个搜索线程,这样的计算速度就好像有几十个九段高手同时在想棋,还有几十个三段棋手帮着把一些难以判断的局面直接下到最后,拿出结论,某一位人类棋手要与之对抗,确实难上加难。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值