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


6、为什么选模仿次数最多的一步?
依据以上的函数可知,模仿次数最多一步,其实就是在多次模仿中,AlphaGo以为那一步最可能赢的次数的累加(或平均,除以总模仿次数) 。
7、为什么要分为policy net(选点)和value net(形势断定)呢,选点和形势断定不是一个东西吗?
确切,选点和形势断定是互相嵌套的 。首先,围棋的形势断定是非常艰苦的 。在围棋直播中我们经常看到,职业9段也不能精确断定当前局势,除非地区已经肯定,没有什么可以持续战役的处所,一般也就是接近终局(官子阶段) 。即使职业棋手,选点和断定也是定性的成分偏多,定量的成分偏少 。以前说中国顶级棋手古力能推演到50步,已经非常强了 。
再说嵌套问题,精确的定量的选点和断定,就要盘算(对于棋手是在头脑里推演,对于机器就是模仿)才行 。在推演中,我选点走那步决议于,走这步后我赢的概率,而这个概率又决议于对手走那一步(我会假设对手弈出她最强的一步,对我最不利),对手走那一步决议于,她走那步后,她对形势的断定要对她最好,这又取决于我的下下步(第3步了)走哪里(对手她也会假设我会下出对她最不利的一步,自然对我最优),从而不断的嵌套,这个 逝世结 要到终局(或者接近)能力解开(终局形势断定比拟简略) 。所以不到终局,断定形势是非常艰苦的,即使职业的9段也不行 。这就是围棋比象棋难的症结所在,它没有简略的形势断定的办法,而象棋有 。
要答复这个问题7还要看下面了 。
8、AlphaGo是怎么打开这个逝世结的?
AlphaGo没有进行直接的形势断定,就是没有直接学习value net,而是先做一个选点(policy net)程序 。选点可以以为是一个时序(走棋)的一个局部问题,就是从当前局势大概断定,有哪几步可能走,暂时不须要推演(那是模仿的工作) 。棋手的选点是会推演的,这里的基本policy net是不推演的,前已经看到AlphaGo线上模仿中选点(Q+u)是有推演的 。
所以policy net是用在 每次模仿 中,搜索双方可能的着法,而最优步的断定是 N次模仿 的义务,policy net不管 。此外policy net还用来训练value net,也就是说,value net是从policy net 来的,先有policy 才有value 。
选点(policy net)能成立吗?如果不成立,也是没用 。
9、第一神器policy net怎么工作的?
先大概看下这个图 。现在轮到黑棋下,图上的数字是AlphaGo以为黑棋应当下这步的概率 。我们还发明,只有几步(2步在这个图中)的概率比拟大,其他步可能性都很小 。这就像职业棋手了 。学围棋的人知道,初学者会认为那里都可以走,就是policy(选点)不行,没有选择性 。随着棋力增加,选择的规模在缩小 。职业棋手就会锁定几个最有可能的走法,然后去推演以后的变更 。
AlphaGo通过学习,预测职业选手的着法有57%的精确率 。提示一下,这还是AlphaGo 一眼 看上去的后果,她没开端推演(模仿)呢 。而且她没预测对的着法不必定比职业棋手差 。

这是迄今为止,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%的棋局中克服以前的自己 。


推荐阅读