alphago围棋软件和韩国围棋手九段李世石对弈那是相当的精彩,谷歌官方也发布了谷歌围棋程序alphago手机版软件,普通的围棋爱好者也可以通过谷歌围棋程序alphago软件来和机器人下围棋了。
谷歌围棋程序alphago手机版软件经过官方授权,有官方开发成了apk安卓版游戏,让围棋爱好者使用手机来下围棋。
【注意】谷歌围棋程序AlphaGo手机版程序将于近期上架,大家耐心等待。
推荐一款不错的围棋练习软件:
3月9日,AlphaGo与李世石的围棋对决第二场开战。昨天李世石弃子认输让很多支持他的人感到惊讶,今天他顶住压力再上战场,到目前为止一直处于领先地位。作为AlphaGo的创始人,德米什·哈萨比斯表示,除了李世石,他还希望让AlphaGo与其他更多围棋高手对弈,比如柯洁。
AlphaGo的创始人德米什·哈萨比斯
AlphaGo与李世石的比赛是历史上第一次电脑挑战职业九段棋手,而且李世石是在围棋界顶尖水平已有超过十年的选手。在结束了这次比赛之后,AlphaGo还有可能前往中国和日本,去挑战当地的顶尖棋手。
AlphaGo在与欧洲围棋冠军樊麾(Fan Hui)的对垒
从技术的角度分析,个人觉得,3月份AlphaGo要战胜李世石难度是比较大的。为什么呢?请看下文。
一、 AlphaGo的两大核心技术
MCTS(Monte Carlo Tree Search)
MCTS之于围棋就像Alpha-Beta搜索之于象棋,是核心的算法,而比赛时的搜索速度至关重要。就像深蓝当年战胜时,超级计算机的运算速度是制胜的关键因素之一。
MCTS的4个步骤:Selection,Expansion,Evaluation(rollout)和Backup
MCTS的并行搜索:
(1) Leaf Parallelisation
最简单的是Leaf Parallelisation,一个叶子用多个线程进行多次Simulation,完全不改变之前的算法,把原来的一次Simulation的统计量用多次来代替,这样理论上应该准确不少。但这种并行的问题是需要等待最慢的那个结束才能更新统计量;而且搜索的路径数没有增多。
(2) Root Parallelisation
多个线程各自搜索各自的UCT树,最后投票
(3) Tree Parallelisation
这是真正的并行搜索,用多个线程同时搜索UCT树。当然统计量的更新需要考虑多线程的问题,比如要加锁。
另外一个问题就是多个线程很可能同时走一样的路径(因为大家都选择目前看起来Promising的孩子),一种方法就是临时的修改virtual loss,比如线程1在搜索孩子a,那么就给它的Q(v)减一个很大的数,这样其它线程就不太可能选择它了。当然线程1搜索完了之后要记得改回来。
《A Lock-free Multithreaded Monte-Carlo Tree Search Algorithm》使用了一种lock-free的算法,这种方法比加锁的方法要快很多,AlphaGo也用了这个方法。
Segal研究了为什么多机的MCTS算法很难,并且实验得出结论使用virtual loss的多线程版本能比较完美的scale到64个线程(当然这是单机一个进程的多线程程序)。AlphaGo的Rollout是用CPU集群来加速的,但是其它的三个步骤是在一台机器完成的,这个就是最大的瓶颈。
V11.7.0 更新日志:
1、赛事讲解内增加“赛事预告”,围棋赛事,按月罗列,随时更新;增加“现任”,谁领风骚,一目了然;
2、本地棋谱支持拆分聚合棋谱(一谱内多谱)的功能;
3、新增棋谱:梶原武雄诘棋选(120)、坂田荣男围棋官子妙手(96)、弈括·演官子式(337)、岩田达明对局集;并修订大量棋谱;
4、解决一些问题。