浅读AlphaGo zero

作者: a微风掠过 | 来源:发表于2017-10-29 17:02 被阅读24次

    这两天花点时间看了发表在《Nature》上的Mastering the Game of Go without Human Knowledge这篇文章,文章号称可以无人类先验知识,仅使用围棋的自身规则进行学习、自助调参,使用一个网络完成训练。然后就可以进行下棋,并成功打败他的哥哥AlphaGo Lee和AlphaGo Fan.

    相关数据:

    训练了3天,进行了4.9百万次对弈。 0.4s计算每次的落子。

    使用了AlphaGozero 4 TPUs(张量处理单元)。

    下面说说我从中读到的主要思想:

    使用强化学习,主要采用MCTS(蒙特卡洛树搜索),MCTS搜索的输出是每一步的落子概率pi。神经网络的参数θ 会根据最大化规则向量pt和搜索概率 π t ,并且最小化预期的赢家v和棋局赢家z之间的误差。每一轮求得的参数会在下一轮自学习迭代中进行更新。

    正文部分也就短短14页,就表述了整个过程和最后的评价结果。

    下面进行简单分析:

    一、与前面几代的区别:

    1、通过自身的强化学习,没有监督信息和人类的棋谱数据;

    2、只使用黑白棋子作为输入特征;

    3、只使用单层神经网络 而不是最初的一个落子规则网络,一个存储结果的价值网络;

    4、使用更简单的依靠单个神经网络来评估位置和样本移动,而没有任何蒙特卡洛导出 蒙特卡洛-树搜索。

    这篇文章的主要贡献是证明了一点:人类所能达到的极限表现是可以通过0人类知识的机器学习达到。

    二、训练过程中所需要的信息

    AlphaGo Zero在其训练程序中明确或隐含地使用的领域知识或其蒙特卡罗树搜索; 这些是需要替代的知识项目AlphaGo Zero学习不同的(交替马尔科夫)博弈:

    1、完善的围棋规则信息;使用MCTS来模拟一串摆子位置的序列,并且当得到一个终点时就进行评分。终点的原则是双方都结束,或者一共走了722手棋,每一方在任一位置都被给予一系列合法的可走棋的方向。

    2、使用Tromp-Taylor scoring规则。

    3、输入特征描述了这个位置是19*19的图像,这个神经网络的结构是与棋盘网格结构相匹配的。

    4、围棋规则在旋转和反射是不变的。AlphaGo zero 通过增加包含每个位置旋转和反射的数据集,在MCTS时随机采样旋转和反射位置。

    强化学习的运用:

    使用交替马尔科夫博弈过程而非基于值或策略迭代。自交锋强化学习之前已经被应用到围棋中,使用一个基于围棋知识的高级的网络来代表连通、占领和棋眼。这个网络由时序差分学习而得到来预测游戏中能够包围的范围。

    蒙特卡洛的方法是模拟(或者经历)一段情节,在情节结束后,根据情节上各个状态的价值,来估计状态价值。

    时序差分学习是模拟(或者经历)一段情节,每行动一步(或者几步),根据新状态的价值,然后估计执行前的状态价值。

    可以认为蒙特卡洛的方法是最大步数的时序差分学习。

    Domain Knowledge:

    它不使用任何导出规则或树规则,而MCTS不会被其他任何启发式或域特定规则所扩展。 没有合法的走子被排除(包括之前的一些启发式算法)。

    这个算法(神经网络)起始于随机的初始参数,神经网络的结构是基于当前最先进的图像识别技术,相应地选择训练的超参数。通过高斯过程优化选择MCTS搜索参数,以便使用神经网络来优化AlphaGo zero自我训练。对于较大的运行MCTS搜索参数会根据较小的模块训练的神经网络来重新优化MCTS搜索参数。训练过程无需人工干预。

    监督学习:

    使用这种联合的策略和值网络结构,通过使用低权值成分,避免过拟合。参数通过随机的梯度下降和学习速率模拟退火策略来优化这些参数。 AlphaGo Zero 使用更加简单的异步策略。

    卷积残差网络(带有批量归一化和非线性校正器)

    它主要思想很简单,就是在标准的前馈卷积网络上,加一个跳跃绕过一些层的连接。每绕过一层就产生一个残差块(residual block),卷积层预测加输入张量的残差。如下图所示:

    普通的深度前馈网络难以优化。除了深度,所加层使得training和validation的错误率增加,即使用上了batch normalization也是如此。残差神经网络由于存在shorcut connections,网络间的数据流通更为顺畅。ResNet作者认为深度残差网络不太可能由于梯度消失而形成欠拟合,因为这在batch normalized network中就很难出现。残差网络结构的解决方案是,增加卷积层输出求和的捷径连接。

    参考博文:http://blog.csdn.net/zackzhaoyang/article/details/51657305

    下面就是一些更新公式和一些计算的方法。具体公式可以参考原文。

    Select: 每个模拟的第一个树上阶段从搜索树的根节点s0开始,并且当模拟到达时间步长L的叶节点S1时结束。

    Expand and evaluate :

    叶节点被添加到队列中让神经网络进行评价。

    Backup:

    边缘统计信息通过每个步骤的后向遍历进行更新,N(st,at)= N(st,at)+1,动作值更新为平均值W(st,at)= W(st,at )+ v,Q(st,at)=W(s t,a t)N(s t,a t)。 我们使用虚拟丢失来确保每个线程评估不同的节点。

    Play:

    在搜索结束时,AlphaGo Zero会选择一个在根中落子,与其指数访问计数成比例,其中τ是控制探测水平的参数。搜索树在随后的时间步骤中重复使用:与播放动作相对应的子节点变为新的根节点;该小孩下面的子树与其所有统计信息一起保留,而剩下的树被丢弃。如果AlphaGo Zero的根值和最佳子值低于阈值,则会退出。

    与AlphaGo Fan和AlphaGo Lee的MCTS相比,主要区别在于AlphaGo Zero不使用任何推出;它使用单个神经网络代替单独的策略和价值网络;叶节点总是扩展,而不是使用动态扩展;每个搜索线程只是等待神经网络评估,而不是异步执行评估和备份;没有树政策。在AlphaGo Zero的大型(40块,40天)实例中也使用了转置表。

    自己的阅读太浅薄,附上两位大牛的读后感:

    南大周志华系教授:

    1、别幻想什么无监督学习,监督信息来自精准规则,非常强的监督信息。

    2、不再把围棋当作从数据中学习的问题,回归到启发式搜索这个传统棋类解决思路。这里机器学习实质在解决搜索树启发式评分函数问题。

    3、如果说深度学习能在模式识别应用中取代人工设计特征,那么这里显示出强化学习能在启发式搜索中取代人工设计评分函数。这个意义重大。启发式搜索这个人工智能传统领域可能因此巨变,或许不亚于模式识别计算机视觉领域因深度学习而产生的巨变。机器学习进一步蚕食其他人工智能技术领域。

    4、类似想法以往有,但常见于小规模问题。没想到围棋这种状态空间巨大的问题其假设空间竟有强烈的结构,存在统一适用于任意多子局面的评价函数。巨大的状态空间诱使我们自然放弃此等假设,所以这个尝试相当大胆。

    5、工程实现能力超级强,别人即便跳出盲点,以启发式搜索界的工程能力也多半做不出来。6.、目前并非普适,只适用于状态空间探索几乎零成本且探索过程不影响假设空间的任务。

    上科大马毅教授:

    这篇论文可以说没有提出任何新的方法和模型–方法可以说比以前的更简单“粗暴”。但是认真正确彻底的验证了这个看似简单的想法到底work不work。

    相关文章

      网友评论

        本文标题:浅读AlphaGo zero

        本文链接:https://www.haomeiwen.com/subject/ltenuxtx.html