围棋可以类比为一个分类任务,输入为棋盘状况,输出为每个点的行棋概率。

SL Policy Network

  • CNN
  • 目标:模仿人类棋手的下法
  • 损失函数:
    • :棋手落子处为 1,否则为 0
    • :网络输出

RL Policy Network

  • 初始化为 SL Policy Network
  • 让当前网络与先前随机选择的一个版本的网络进行对弈
  • 直观上讲,若结果为胜,则提高对弈过程中每一步的选择概率,否则相反

形式化说明

目标是最大化所有可能轨迹的期望总回报

  • 为轨迹,即棋局-走法-棋局-…-终局,
  • 为总回报 求导得 由于 其中 和环境状态转移概率 均为常数,对两侧取对数求导后有 由于工程实现中无法穷举所有轨迹,只能通过蒙特卡洛采样来近似这个期望,经典的实现是 REINFORCE 算法
  • 问题:可能整盘棋中大多数棋都很好,只有某几步很坏,导致最后输棋,但是该方法会直接对全部走子一视同仁

Value Network

  • 结构类似策略网络,但输出是一个 的标量代表预估胜率
  • 训练样本是训练 RL Policy Network 时 self play 产生的对局数据
    • 为了避免前后盘面高度相关导致网络过拟合,每局只随机抽取一个盘面

Rollout Policy Network

  • 结构与 SL Policy Network 类似但规模更小,速度快
  • 用于与 MCTS 进行结合,在 rollout 时使用

与 MCTS 结合

  • 节点第 次 rollout 的收益为
  • 平均收益为
  • 探索项改为
- 注意此处用的是 SL 策略网络而不是 RL 策略网络
- $N$ 为模拟次数
  • 代替信心上限进行选择

Actor-Critic

在计算策略梯度时,不直接乘以回报 ,而是乘以增量

  • 如果走的比平均预期好,概率增加,否则降低