强化学习(五)—— AlphaGo与Alpha Zero

本文详细介绍了AlphaGo和AlphaZero的工作原理和技术细节,包括输入编码、训练流程、模仿学习、策略网络训练、价值网络训练及蒙特卡洛树搜索算法等。同时提供了策略网络和状态价值网络的具体实现代码。

1. AlphaGo

1.1 论文链接

查看原文

1.2 输入编码(State)

在这里插入图片描述

  • 棋盘大小:[19,19]的矩阵, 落子则为1,反之为0。
  • Input Shape:[19,19,17]。
  • 白棋当前状态及其过去7步的状态:[19,19,1]与[19,19,7]。
  • 黑棋当前状态及其过去7步的状态:[19,19,1]与[19,19,7]。
  • 当前到谁落子:[19,19,1] (黑棋全为1,白棋全为0)

1.3 训练及评估流程

  1. 使用behavior cloning 对策略网络进行初步训练;
  2. 两个策略网络互相对弈,并使用策略梯度对策略网络进行更新;
  3. 使用策略网络去训练状态价值网络;
  4. 基于策略网络和价值网络,使用蒙特卡洛树(Monte Carlo Tree Search, MCTS)进行搜索。

1.4 模仿学习(Behavior Cloning)

通过Behavior Cloning从人的经验中初始化策略网络的参数,策略网络的结构为:在这里插入图片描述
随机初始化网络参数后,基于人类对弈的落子序列数据,进行模仿学习(分类任务),使用交叉熵作为损失函数进行参数更新:

  1. 观测得到状态: s t s_t st
  2. 使用策略网络进行预测 p t = [ π ( 1 ∣ s t ; θ ) , π ( 2 ∣ s t ; θ ) , . . . , π ( 361 ∣ s t ; θ ) ] p_t=[\pi(1|s_t;\theta),\pi(2|s_t;\theta),...,\pi(361|s_t;\theta)] pt=[π(1st;θ),π(2st;θ),...,π(361st;θ)]
  3. 高级人类玩家采取的动作为 a t ∗ a_t^* at
  4. 策略网络的预测进行one-hot编码后,和人类玩家的动作进行交叉熵计算,并更新网络参数。
    模仿学习可认为是循规蹈矩

1.5 策略网络依据策略梯度进行学习

在这里插入图片描述

  1. 两个策略网络进行对弈直到游戏结束。Player V.S. Opponent,Player 使用策略网络最新的参数,Opponent随机选用过去迭代中的网络参数。
  2. 得到对弈的序列数据: s 1 , a 1 , s 2 , a 2 , s 3 , a 3 , . . . , s T , a T s_1,a_1,s_2,a_2,s_3,a_3,...,s_T,a_T s1,a1,s2,a2,s3,a3,...,sT,aT
  3. Player获得的回报为: u 1 = u 2 = u 3 = u T ( 赢 了 为 1 , 输 了 为 − 1 ) u_1=u_2=u_3=u_T(赢了为1,输了为-1) u1=u2=u3=uT(11)
  4. 近似策略梯度(连加) g θ = ∑ t = 1 T ∂ l o g ( π ( ⋅ ∣ s t ; θ ) ) ∂ θ ⋅ u t g_\theta=\sum_{t=1}^T \frac{\partial log(\pi(\cdot|s_t;\theta))}{\partial\theta}\cdot u_t gθ=t=1Tθlog(π(st;θ))ut
  5. 参数更新 θ ← θ + β ⋅ g θ \theta\gets\theta+\beta\cdot g_{\theta} θθ+βgθ

1.6 价值网络训练

  • 状态价值函数: V π ( S ) = E ( U t ∣ S t = s ) U t = 1 ( w i n ) U t = − 1 ( f a i l ) V_\pi(S)=E(U_t|S_t=s)\\U_t=1(win)\\U_t=-1(fail) Vπ(S)=E(Ut
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值