失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Nature论文浅析】基于模型的AlphaGo Zero

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

时间:2019-07-20 02:54:07

相关推荐

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

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

策略

ptk≈π(at+k+1∣o1,…,ot,at+1,…,at+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+1​∣o1​,…,ot​,at+1​,…,at+k​)

值函数

vtk≈E[ut+k+1+γut+k+2+…∣o1,…,ot,at+1,…,at+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]vtk​≈E[ut+k+1​+γut+k+2​+…∣o1​,…,ot​,at+1​,…,at+k​]

即时奖励

rtk≈ut+kr_{t}^{k} \approx u_{t+k}rtk​≈ut+k​

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

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

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

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

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

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

策略用的是与AlphaGo Zero一样的MCTS策略,需要搜索一个策略πt=P[at+1∣o1,…,ot]\pi_{t}=\mathrm{P}\left[a_{t+1} \mid o_{1}, \ldots, o_{t}\right]πt​=P[at+1​∣o1​,…,ot​]和一个值函数vt=E[ut+1+γut+2+…∣o1,…,ot]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组成:

lt(θ)=∑k=0Klp(πt+k,ptk)+∑k=0Klv(zt+k,vtk)+∑k=1Klr(ut+k,rtk)+c∥θ∥2l_{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=0∑K​lp(πt+k​,ptk​)+k=0∑K​lv(zt+k​,vtk​)+k=1∑K​lr(ut+k​,rtk​)+c∥θ∥2

取得的效果?

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

所出版信息?作者信息?

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

如果觉得《【Nature论文浅析】基于模型的AlphaGo Zero》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。