打劫,是指黑白双方都把对方的棋子围住,这种局面下,如果轮白下,可以吃掉一个黑子;如果轮黑下,同样可以吃掉一个白子。因为如此往复就形成循环无解,所以围棋禁止“同形重复”。根据规则规定“提”一子后,对方在可以回提的情况下不能马上回提,要先在别处下一着,待对方应一手之后再回“提”。如图中的情况:
打劫因为反复走同一个点,会使搜索树的深度加大,而且因为其他位置劫才会影响劫的输赢,劫才之间又相互影响,有可能打劫中又产生新的劫。总之,打劫规则会使围棋的复杂度加大。
因为前两局棋没有下出打劫,有人会怀疑DeepMind和李世石有不打劫协议。在后面的棋局中,AlphaGo确实下出了主动打劫。而且从算法层面看,打劫也不会是她的模拟框架崩溃(可能会有一些小麻烦)。
13.遇强则强,遇弱则弱?
AlphaGo的表现似乎是遇强则强,遇弱则弱。这可能是由于她的学习监督信息决定的。policy和value学习时,和rollout模拟时,最后的结果是谁赢(的概率),而不是谁赢“多少”(赢几目)。所以在AlphaGo领先时(几乎已经是常态了),她不会下出过分的棋,她只要保证最后赢就行了,而不是像人一样要赢的多,赢的漂亮。即使有杀大龙(一大块棋)的机会,她也不一定杀,而是走温和的棋,让你无疾而终。估计只有在AlphaGo判断她大大落后的时候,她才会冒险走过分的棋(这好像不常见)。
14.AlphaGo下棋为什么花钱?
AlphaGo有单机版,多机(分布式)。分布式明显比单机强。去年的分布式有40个搜索线程,1202个CPU,176个GPU(显卡)。和李世石下棋时可能更多。这么多机器的运作和维护就是烧钱。
15.AlphaGo有漏洞吗?
AlphaGo解决的是一个树搜索问题,并不是遍历所有着法的可能性,她的着法只是接近正解,不是一定正解。
最简单的人战胜AlphaGo的方法就是改规则,比如扩大棋盘。人类能比较简单的适应,搜索空间增大,AlphaGo不一定能适应。
就现有状况来说,棋手可以主要攻击AlphaGo模拟中的着法选择函数a。比如尽量下全局互相牵扯的棋(多劫,多块死活),就是尽量是中盘局面复杂,不要搞一道本(一条路走到底)局部的着法,当然,这对职业选手也不简单。
16.AlphaGo有哪些技术突破,使她能战胜人类顶尖棋手?
继承了蒙特卡洛树搜索的框架进行模拟。
在学习policy中使用了监督学习,有效的利用现有的棋手的棋谱,学到了他们的选点策略。
在学习policy中使用了增强学习,从左右互搏中提高自己。
利用policy net(选点模型)近似正解,用policy net的对弈的结果模拟正解对弈的结果,即正确的形势判断,从而打破形势判断和选点相互嵌套的死结。就是先学policy,再学value。
在学习policy, value, rollout中使用深度学习模型。深度学习有非常强的学习能力。使得选点和形势判断前所未有的准(对比蒙特卡洛是随机选点,现在是职业棋手帮她选点 了)。因为在每次模拟中用到了这两个“准”,使得在树搜索(就是推演)的过程更有目的性(树大量减枝,只模拟比较优良的下法)。
当然还有机器一贯的优势,不疲劳,不受心理情绪影响,不会错的记忆力等等。