AlphaGo Zero 与深度强化学习(一) 概述

AlphaGo Zero 与深度强化学习(一) 概述

原文: Mastering the Game of Go without Human Knowledge(2017)

概览

做的什么

  • 完全基于强化学习,使AlphaGoZero(下文简称 zero)通过自己的神经网络在很短的时间打败了前 AlphaGo。
  • 完全无人类数据干预。
  • 使用强化深度学习
  • 输入特征简单

提到的的技术

  • 强化学习
  • 深度学习
  • Monte-Carlo Tree Search(MCTS)决策树
  • 新的强化学习方法-将lookahead search直接放到training
  • Q 函数与fθ函数以及针对棋类的 Loss
  • 采用 ResBlock 将强化学习用深度网络的方式表示出

优势

  • 完全无人类数据干预,从0实现纯自主学习。
  • 可以超出人认知的领域。不依赖于经验
  • 独*强化学习训练,由瞎玩开始。不用人类的先验数据,本例为棋谱。
  • 输入特征简单,只需要单个nn(前 Alpha 网络需要两个深度网络)
  • 相比于复杂的MCTS决策树,只需要简单的树便可实现。决策轮回中不需要反向传播

不足

  • 能源消耗:4TPU

老式机器学习方法

  • 训练数据不可靠
  • 训练出的模型是“训练数据强加的”性格

强化学习

  • 属于监督学习的扩展
  • 不局限于先验性

前身AlphaGo Fan, Lee 两个深度网络

训练时

规则网

  • 输出更多可能
  • 监督学习学专家的走法
  • policy-gradient reinforcement learning

一个决策网

  • 优化落子位置
  • 预测如何能赢,通过规则网自我对抗(自己和自己下着玩)

训练后

  • 使用 Monte-Carlo Tree Search(MCTS)决策树 下一步探索
    MCTS wiki

  • 使用已训练好的规则网络找到最高胜率的分支

  • 使用已训练的决策网优化分支

AlphaZero 中的强化学习

前景:fθ θ:参数 ;s:位置;P 当前点的先验概率。

基本状态

  • 输入:位置 s
  • 输出:
    • 可能性 p:当前位置落子的可能性
    • 价值 v:当前用户在该位置落子后产生的价值,即对最后结果的影响

网络组成

  • 带有BNnon-liner的残差单元与卷积层
  • 第一层为普通的卷积层后面为20层的ResNet残差块

训练方式

AlphaGo Zero 与深度强化学习(一) 概述
AlphaGo Zero 与深度强化学习(一) 概述

在棋盘的每个位置 s:

  1. 先在fθ网络做一次 MCTS,得到下一个子落在该位置的可能性π:递归选择 Q+U分支深入,直到叶子节点。
  2. 通过 MCTS 的结果进行自我对抗训练:通过已有的fθ网络在上面找到的叶子节点处得到 P v 值,p 该状态下此位置能赢的先验概率,v 作为当前的价值。v 更新树深入路径上的 Q 值。依次往复直到自我黑``白手均采用了 pass或已决定胜负。
  3. 更新权值时是训练函数像提高search-probatlyself-paly winner的方向更新:具体Loss详见下面公式
  4. 与之平行还会对 f网络本身进行训练。目的是让 f 观察网络能更准确的判断该棋局的未来走势。这个网络的 loss 是预测结果与正确结果的差的距离。思路类似 GAN决策网络

公式

以下公式会在阅读 Master 论文后详细讨论

  • Q 值计算为:

    Q(s,a)=1N(s,a)s|s,a>sV(s)

    可以理解为:一个额外的奖励,与先验价值 V 成正比,与该位置访问频次成反比。鼓励探索还未探索位置的好的下法。

  • U 值计算为

    U(s,a)=λP(s,a)1+N(s,a)

    可以理解为额外决策奖励 Q与遇到该点的情况 U 做加和。当前点在博弈中会遇到多次,因为不知何时落此最好所以做该位置频次的衰减。减小反复访问一位置对最后结果的影响

  • 综合 Loss:

    l=(zv)2πTlogp+c||θ||2

    第一项训练预测价值 v 与真实价值 z 靠近,中间的是训练当前位置的先验概率 p 靠近self-playMCTS结果π最后增加L2正则项提高模型的泛化能力。

训练

参数与训练时间

  • 时长:3+40天
  • 4900w 自我对抗棋局。
  • 每个MCTS1600种模拟步(每次思考0.4s)
  • 参数更新在700000mini-batch
  • 共2048个位置

训练现象

  • Zero 会自学到很多人类经典棋谱(见下图)
    • a 为人类的经典棋路在训练中出现时间。
    • b 为zero 偏好不同下棋套路的自我对抗。

fuseki (opening), tesuji (tactics), life-and-death, ko (repeated board situations), yose (endgame), capturing races, sente (initiative)

AlphaGo Zero 与深度强化学习(一) 概述

  • 随着自我对抗训练的深入,zero 下棋的方式也逐渐具有大局性。
    AlphaGo Zero 与深度强化学习(一) 概述
    • 3小时时 zero只着眼于贪婪吃子
    • 19小时时 zero 开始关注全局的life-and-death,下棋趋于谨慎
    • 70小时时zero,下棋已有非常好的平衡性包括multiple battlesko fight。赢时与对手的拉开的距离将近一半

结果与比对

AlphaGo Zero 与深度强化学习(一) 概述
AlphaGo Zero 与深度强化学习(一) 概述
AlphaGo Zero 与深度强化学习(一) 概述

  • 在 Elo 比分上zero 在40小时超过了前 GoLee
  • 对棋局的胜负的判断上,依靠监督学习的 Go 能力要强于 Zero
  • Le 的预测精确度要高,但综合还是 Zero 的自学能力强
  • 在网络结构设计上,将 QV 网络结合(端到端)最后的Elo 结果要好于分开的情况
  • 在其后的40天训练后 zero 跃居 EloRate 榜首

总结

  • 在 zero 的深度学习策略中,用于训练落子可能性的权值与自我训练的权值是相互共享的。
  • 开始初始化的权值完全随机
  • 纯粹的强化学习可以让机器训练为超人程度
  • 纯粹的强化学习大幅缩短训练时间到仅需几小时(硬件资源足够的情况下 4TPU)
  • 纯粹的强化学习拟合与泛华性能更好:之前 deeplearning 学到的特征完全依赖 loss ,而强化学习指定了一个大的学习方向使得学习过程一定程度可控。
  • 强化学习赋予 Zero 以独特魅力

结语

Humankid has accumulated Go knowledge from millions of games played over thousands of years, collectively distilled into patterns, proverbs and books. In the space of a few days, starting tabula rasa, AlphaGo Zero was able to rediscover much of this Go knowledge, as well as novel strategies that provide new insights into the oldest of games.