RL——AlphaGo系列算法


AlphaGo整体说明

  • AlphaGo是强化学习的阶段性集大成者,其核心思想值得细细推敲

AlphaGo棋局介绍

  • AlphaGo 的目标是解决围棋对弈问题 ,即在标准的 19×19 围棋棋盘上(共381维),通过观察棋盘情况选择最优的落子动作,击败对手
  • 输入 :当前棋盘状态(包括棋子分布和历史信息)
  • 输出 :下一步落子的最优位置(或概率分布)
  • 挑战
    • 围棋的状态空间复杂度高达 \(3^{361}\)(约\(10^{172}\)量级),无法暴力搜索
    • 围棋的决策步长约100+步,决策需要结合长期策略收益
    • 围棋的评估函数难以设计(难以量化当前局面是否有“局面优势”)

ALphaGo问题建模

  • 状态空间:\(19 \times 19 \times N\),这里的N在不同版本不一样,比如17=16+1时,16是用于记录最近 8 步的状态(相当于记录了窗口),1则表示该哪一方下棋,其他还有一些需要理解围棋规则才能解释
  • 动作空间:离散动作空间,362个动作可选(361位置 + 1 Pass)
  • 奖励函数:对局结束时,胜利方奖励+1,失败方-1,平局为0(围棋通常无平局)

AlphaGo 训练过程(分三个阶段)

第一阶段:行为克隆(监督学习模仿人类专家)

  • 基于 KGS 围棋平台上的 3000 万局人类对弈棋谱,学习人类专家的落子的模式
  • 通过监督学习训练一个策略网络(Policy Network) ,输入棋盘状态,输出人类选手的落子概率分布
    • 网络结构:13 层卷积神经网络(CNN)
    • 准确率:57%(预测人类下一步动作)

第二阶段:强化学习(自我对弈优化,策略梯度优化)

  • 通过策略梯度法,进一步优化策略网络,超越人类水平
    • 自我对弈 :使用初始策略网络生成大量自我对局数据
    • 策略梯度 :通过胜负结果优化策略网络(即强化学习策略网络),使其更倾向于获胜的走法
    • 回报函数 :对局结束时获胜方获得 +1 奖励,失败方获得 -1

第三阶段:价值网络学习(局面评估)

  • 价值网络学习阶段的目标是训练一个价值网络(Value Network) ,预测当前局面的胜率(替代蒙特卡洛rollout的耗时评估)
  • 通过自我对弈生成 3000 万组棋盘状态及最终胜负结果,学习一个标量值(-1 到 +1),表示当前玩家获胜的概率

AlphaGo 决策过程

  • AlphaGo 的实时决策基于蒙特卡洛树搜索(MCTS) ,结合神经网络的输出:
  • 选择(Selection) :从根节点(当前棋盘状态)出发,通过树策略(如UCT算法)选择子节点,平衡探索与利用,使用策略网络优先选择高概率的落子分支
  • 扩展(Expansion) :当遇到未探索的节点时,用策略网络生成可能的落子概率,扩展树结构
  • Evaluation价值网络评估胜率,和策略网络模拟rollout到终局得到的奖励两者做加权结合
  • 回溯(Backup) :将叶子节点的评估结果反向传播更新路径上的节点统计量(访问次数、平均胜率)
  • 最终决策(Decision) :搜索结束后,选择访问次数最多的节点对应的落子动作

AlphaGo 相关思考

  • 以模仿学习作为强化学习策略的冷启动是个不错的想法
  • 使用MCTS来决策有助于提升模型决策能力,在MCTS下,随着围棋的进行,搜索空间变小,AlphaGo相对人类的优势会越来越明显

附录:AlphaGo 的迭代版本

版本 发版时间 训练数据 核心算法 计算需求 棋力提升
AlphaGo Fan 2015年10月 人类棋谱(监督学习) SL + MCTS 中等(分布式计算) 首次击败职业棋手(樊麾)
AlphaGo Lee 2016年3月 人类棋谱 + 自我对弈 SL + RL + MCTS + 价值网络 高(1202 CPU + 176 GPU) 超越人类顶尖(李世石)
AlphaGo Master 2017年1月(Master)
2017年5月(正式对战柯洁)
纯自我对弈 纯RL + 深度网络 低(单机) 完胜人类第一柯洁
AlphaGo Zero 2017年10月 从零开始自我对弈 纯RL + ResNet + MCTS 极低(4 TPU) 100:0击败AlphaGo Lee
AlphaZero 2017年12月 多棋类自我对弈 通用RL + 高效搜索 低(单机) 8小时超越AlphaGo Zero