【Nature论文浅析】基于模型的AlphaGo Zero

  • 论文题目:Mastering Atari, Go, chess and shogi by planning with a learned model

所解决的问题?

  规划planning一直都是人工智能研究领域中,人们追逐的一个比较难的研究点,基于树的规划算法,像AlphaGo这类算法已经取得了巨大的成功,然而基于树模型的规划算法需要一个完美的环境模型,这个条件在真实的世界中是很难被满足的。

背景

  基于模型的强化学习方法先学一个环境模型,然后基于所学的这个环境模型去规划能够解决无法在真实环境交互过多的问题。以往的经典的规划算法往往都会依赖被控对象的模型,这样对于实际地落地就存在很大的阻碍。现在做的比较好的基于模型的强化学习算法,都不会聚焦在重建整个的环境,也就是说一般不会重构整个的观测序列。像abstract mdplatent space这类方法都能够比较高效地做值函数的估计。

所采用的方法?

  MuZero是基于AlphaZero的改进版本。MuZero扩展AlphaZero到单个智能体领域以及非终止奖励的控制对象上。

  算法主要的思想是预测未来,主要是预测那些可以直接用来规划未来的数据,比如预测未来的值函数。之后就可以基于预测数据进行规划。

  • MuZero算法

  具体做法是:模型接收一个观测数据(比如游戏的一帧像素),然后将其编码到隐藏状态空间。在隐藏状态空间可以通过给定动作和自回归的方式进行学习和训练。在每一步,模型需要产生(或者说去预测)一个策略,一个值函数(预测的累计奖励),和一个即时奖励的预测(当前步的奖励预测)。模型端到端直接训练好,并且作者这里并不采用dreamerplanet学习环境模型的方法,认为模型没有必要具有从隐状态复原到原像素这种能力。隐状态只要能够去正确地估计策略、值函数和即时奖励即可

如上图所示图a:1. 给定一个隐藏状态 s k − 1 s^{k-1} sk1和一个候选动作 a k a^{k} ak,动态模型 g g g需要产生一个即时奖励 r k r^{k} rk和一个新的隐藏状态 s k s^{k} sk。2. 策略 p k p^{k} pk和值函数 v k v^{k} vk由预测函数 f f f通过输入 s k s^{k} sk计算得到 v k = f θ ( s k ) v^{k}=f_{\theta}\left(s^{k}\right) vk=fθ(sk)。动作 a t + 1 a_{t+1} at+1从搜索策略 π t \pi_{t} πt中采样得到。初始的状态 s 0 s_{0} s0是由过去的观测输入到表示函数 h h h中得到的,比如输入空的棋盘。图b:动作 a t + 1 a_{t+1} at+1由搜索策略 π t \pi_{t} πt产生。环境接收到动作之后产生一个新的观测 o t + 1 o_{t+1} ot+1和即时奖励 u t + 1 u_{t+1} ut+1图c:MuZero训练整个模型,基于a和b两步,我们已近能够采样到一些数据了。拿到这些数据就可以训练模型了:策略模型 p k ≈ π t + k p^{k} \approx \pi_{t+k} pkπt+k;值函数 v k ≈ z t + k v^{k} \approx z_{t+k} vkzt+k;和奖励模型 r k = ≈ u t + k r^{k} = \approx u_{t+k} rk=ut+k

  给定一个时间步 t t t,对于每一步 k = 0 , ⋯   , K k=0,\cdots,K k=0,,K步,一个带有 θ \theta θ参数的模型 μ θ \mu_{\theta} μθ,基于给定的过去的观测数据条件 o 1 , ⋯   , o t o_{1}, \cdots,o_{t} o1,,ot和未来的动作 a t + 1 , ⋯   , a t + k a_{t+1}, \cdots, a_{t+k} at+1,,at+k(其中 K > 0 K>0 K>0)来预测未来的:

  策略

p t k ≈ π ( a t + k + 1 ∣ o 1 , … , o t , a t + 1 , … , a t + k ) p_{t}^{k} \approx \pi\left(a_{t+k+1} \mid o_{1}, \ldots, o_{t}, a_{t+1}, \ldots, a_{t+k}\right) ptkπ(at+k+1o1,,ot,at+1,,at+k)

  值函数

v t k ≈ E [ u t + k + 1 + γ u t + k + 2 + … ∣ o 1 , … , o t , a t + 1 , … , a t + k ] v_{t}^{k} \approx \mathbb{E}\left[u_{t+k+1}+\gamma u_{t+k+2}+\ldots \mid o_{1}, \ldots, o_{t}, a_{t+1}, \ldots, a_{t+k}\right] vtkE[ut+k+1+γut+k+2+o1,,ot,at+1,,at+k]

  即时奖励

r t k ≈ u t + k r_{t}^{k} \approx u_{t+k} rtkut+k

  其中 u u u是真实地观测奖励, π \pi π是策略, γ \gamma γ是折扣因子。

  说白了就是拿到过去的观测数据,编码到当前的隐藏状态,然后再给定未来的动作,就可以在隐藏状态空间中进行规划了

  1. 想要实现上述功能,与基于模型的算法一样,两部走;学环境模型和策略规划。

  环境模型需要提供的是:1. 状态转移;2. 每个节点允许搜索的动作(减少搜索空间);3. 终止节点。用神经网络来做就好了,环境模型其实是由两部分组成,表示模型和动态模型 g θ g_{\theta} gθ

r k , s k = g θ ( s k − 1 , a k ) r^{\mathrm{k}}, s^{k}=g_{\theta}\left(s^{k-1}, a^{k}\right) rk,sk=gθ(sk1,ak)

  表示函数 h θ h_{\theta} hθ对过去的观测进行编码 s 0 = h θ ( o 1 , … , o t ) s^{0}=h_{\theta}\left(o_{1}, \ldots, o_{t}\right) s0=hθ(o1,,ot),得到当前根节点 s 0 s^{0} s0。给定这样一个模型之后,对于一个未来假设的轨迹 a 1 , … , a k a^{1}, \ldots, a^{k} a1,,ak,和给定的过去的观测 o 1 , … , o t o_{1}, \ldots, o_{t} o1,,ot

  1. 策略用的是与AlphaGo Zero一样的MCTS策略,需要搜索一个策略 π t = P [ a t + 1 ∣ o 1 , … , o t ] \pi_{t}=\mathrm{P}\left[a_{t+1} \mid o_{1}, \ldots, o_{t}\right] πt=P[at+1o1,,ot]和一个值函数 v t = E [ u t + 1 + γ u t + 2 + … ∣ o 1 , … , o t ] v_{t} = \mathbb{E} \left[u_{t+1}+\gamma u_{t+2}+\ldots \mid o_{1}, \ldots, o_{t}\right] vt=E[ut+1+γut+2+o1,,ot]loss由策略、值和奖励这三部分的loss组成:

l t ( θ ) = ∑ k = 0 K l p ( π t + k , p t k ) + ∑ k = 0 K l v ( z t + k , v t k ) + ∑ k = 1 K l r ( u t + k , r t k ) + c ∥ θ ∥ 2 l_{t}(\theta)=\sum_{k=0}^{K} l^{\mathrm{p}}\left(\pi_{t+k}, p_{t}^{k}\right)+\sum_{k=0}^{K} l^{\mathrm{v}}\left(z_{t+k}, v_{t}^{k}\right)+\sum_{k=1}^{K} l^{\mathrm{r}}\left(u_{t+k}, r_{t}^{k}\right)+c\|\theta\|^{2} lt(θ)=k=0Klp(πt+k,ptk)+k=0Klv(zt+k,vtk)+k=1Klr(ut+k,rtk)+cθ2

取得的效果?

  • 实验结果总之就是很厉害啦!

所出版信息?作者信息?

Julian Schrittwieser

  Julian Schrittwieser谷歌大脑软件工程师!AlphaGoAlphaZero的项目组成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值