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

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

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

  • AlphaGo Zero 与深度强化学习一 概述
  • 概览
    • 做的什么
    • 提到的的技术
    • 优势
    • 不足
  • 老式机器学习方法
  • 强化学习
  • 前身AlphaGo Fan Lee 两个深度网络
    • 训练时
      • 规则网
      • 一个决策网
    • 训练后
  • AlphaZero 中的强化学习
    • 基本状态
    • 网络组成
    • 训练方式
  • 公式
  • 训练
    • 参数与训练时间
    • 训练现象
  • 结果与比对
  • 总结
  • 结语

概览

做的什么

  • 完全基于强化学习,使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残差块

训练方式


在棋盘的每个位置 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)

  • 随着自我对抗训练的深入,zero 下棋的方式也逐渐具有大局性。

    • 3小时时 zero只着眼于贪婪吃子
    • 19小时时 zero 开始关注全局的life-and-death,下棋趋于谨慎
    • 70小时时zero,下棋已有非常好的平衡性包括multiple battlesko fight。赢时与对手的拉开的距离将近一半

结果与比对



  • 在 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.

你可能感兴趣的:(强化学习,paper)