AlphaGo Zero中的深度神经网络,使用强化学习算法在自我对弈的过程中进行训练。对于每个棋面 , 使用前一轮得到的神经网络 来指导MCTS。MCTS会输出每一步走棋的概率分布 π。搜索概率 π 比单纯的神经网络输出 概率分布更好,能够选择更强的走棋。从这个角度来说,MCTS可以看做是 Policy Iteration 算法中的策略提升操作(policy improvement operator)。这意味着,在自我对弈过程中,不断使用提升过的、基于 MCTS 的策略 π 来进行决策走棋,最终会决出胜负,将最终的获胜方z作为一个样本值,可以看做是 Policy Iteration 中的策略评估操作(policy evaluation operator),即对当前棋面局势的评估,作为当前棋面下,获胜概率的预测值。这里强化学习算法的关键是在 Policy Iteration过程中,不断重复地使用 policy improvement 和 policy evaluation。蒙特卡罗搜索结束后,更新 的参数θ,使得更新完的 的输出:移动概率和预测值 ,能够更加接近MCTS得到的搜索概率和自我对弈的获胜方(π,z)。这个新的 将在下一轮自我对弈中继续指导MCTS,使得其变得更健壮。
对于 时刻下的棋盘状态 ,MCTS 可以模拟得到下一步落子的概率分布 π,不断对弈一直分出胜负得到回报分数 ,(),将这个分数反馈到了每一个 的 上,且满足 (正负号取决于当前对局最终的获胜者),那么我们就得到了一组训练数据(,πt,),一场比赛会产生很多训练数据,我们将 作为 的输入,(πt,)作为标签,使得 的输出(,)趋近于(πt,)。 相当于告诉 AI 应该这盘对弈中应该强化那些落子决策,以及弱化那些落子决策。
首先使用随机权重 θ 进行初始化。在后续每一轮迭代 中(每轮迭代对应若干局完整的围棋对弈), 使用强化学习算法 Policy Iteration 进行训练优化,该强化学习算法将 MCTS 纳入训练过程,用前一轮的神经网络 (θi-1)在该轮迭代i的每个时间步 来指导 MCTS 模拟得到 πt=α(θi−1,),直到时间步T产生胜负,按照上述描述(数据产生过程)来构造该轮对弈产生的数据(,πt,)。接着,(θi)使用该训练数据进行参数更新,目标是使得新的 (θi+1)的输出(,)= (θi+1,)能够拟合(π,),也即最小化 和 之间的误差,最大化 和 π 之间的相似性。优化损失函授结合了 MSE 和 Cross-Entropy Loss(还包括正则化项)