围棋可以类比为一个分类任务,输入为棋盘状况,输出为每个点的行棋概率。
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
在计算策略梯度时,不直接乘以回报 ,而是乘以增量
- 如果走的比平均预期好,概率增加,否则降低