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


AlphaGo通过学习,预测职业选手的着法有57%的准确率 。提醒一下 , 这还是AlphaGo“一眼”看上去的效果,她没开始推演(模拟)呢 。而且她没预测对的着法不一定比职业棋手差 。
policy net怎么学习的,学啥???
首先 , 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 。它是用来上面所说的模拟中,快速模拟的终局的 。它的输入比正常policy net?。哪P鸵残 。?所以它的耗时是2微妙,而一个policy要3毫秒 。它没有policy准,但是它快 。
总结一下policy 。它是用来预测下一步“大概”该走哪里 。它使用了深度学习,监督学习,增强学习等方法 。它主要用于每次模拟中的bonus的先验(我大概该怎么走),和value net的学习(后面的重点) 。
如果单纯用policy预测的着法来作为最优着法,不通过value net的计算和上面说的模拟,对职业棋手那是不行的 。但是,单纯用policy预测已经足够打败以前的围棋AI(大约有业余5段实力)了 。这说明了上面3种学习方法的强大威力 。
AlphaGo就看了一眼 , 还没有推演,你们就败了 。policy net为解开那个死结走出了第一步,下面我们就讲讲这第二个“神器”:value net 。
10、第二神器value net怎么工作的?
前面说了,形势判断是什么无迹可寻,就连职业9段也做不到 。有了policy net,整个世界都不一样了 。AlphaGo她的灵魂核心就在下面这个公式里 。
V*(s)=Vp*(s)约等于Vp(s) 。
s是棋盘的状态,就是前面说的19*19 , 每个交叉3种状态 。
V是对这个状态的评估,就是说黑赢的概率是多少 。

推荐阅读