这是迄今为止,AlphaGo算法最清晰的解读!( 五 )


到此为止 , 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判断她大大落后的时候,她才会冒险走过分的棋(这好像不常见) 。

推荐阅读