欢迎光临
我们一直在努力

28天自制你的AlphaGo(四)

28天自制你的AlphaGo(四):结合强化学习与深度学习的Policy Gradient(左右互搏自我进化的基础)

本文作者:彭博 2017-02-23 13:54
导语:强化学习在 AlphaGo 中究竟是怎么用的?

 

本篇提前回答一个大家经常问的问题:强化学习在 AlphaGo 中究竟是怎么用的?比如说,SL策略网络,是怎么变成 RL 策略网络的?

| Policy Gradient:简单而有效

很有意思的是,很少见到有人回答上述问题(可能是因为 AlphaGo 论文在此写得很简略)。其实,这个问题的答案特别简单:

  • 如果我赢了棋,就说明这次我选择的策略是正确的。所以可以对于这次所经历的每一个局面,都加强选择这局的走法的概率。
  • 如果我输了棋,就说明这次我选择的策略是错误的。所以可以对于这次所经历的每一个局面,都减少选择这局的走法的概率。

举个例子,比如说电脑左右互搏,黑棋开局走星位,白棋回应走小目,最后白棋输了,那么黑棋就加强开局走星位的概率(以及后续的每一步选择这局的走法的概率),白棋就减少在黑棋开局走星位的情况下走小目的概率(以及后续的每一步选择这局的走法的概率)。

等一下,这里好像有问题。这是不是太傻了?也许白棋并不是败在开局,而是败在中盘的某一步?也许黑棋并不是真的这次走对了策略,而是白棋看漏了一步(而且白棋如果走对是可以赢的)?

以上说的很正确。但是,反过来想,如果黑棋的走法可以让白棋后面打勺的概率增加,那也不错啊。另一方面,如果白棋发现自己目前的策略容易进入自己不容易掌握的局面,那么尽管确实可能有完美的招数隐藏在里面,那白棋也不妨一开始就去避免这种局面吧。而且,胜和负的影响可以相互抵消,所以在经过大量对局后,这个过程是比较稳定的。比如说如果某个开局的后续胜率经统计是50%,那它就不会被改变;但如果不是50%,这种改变就有一定道理。

这个过程,有点像人类棋手的“找到适合自己的棋风”的过程。毫无疑问,现在的 AlphaGo 已经找到了十分适合自己的棋风,它确实是会扬长避短的。

以上是最简单的 Policy Gradient 的例子,它的问题是有可能陷入局部的最优(对付自己有效,不代表对付其他人有效),因此 AlphaGo 论文中会建立一个对手池(包括整个进化过程中形成的所有策略),保证新策略尽量对于不同对手都有效。在这个基础上,可以做各种各样的改进,例如配合未来的价值网络,更清楚地看到自己的败着在哪里,而不是傻傻地把所有概率都同样修改 。

| Deepmind 的相关研究

其实 Deepmind 自创始以来就在做类似的研究,在此简单说说。经典的一系列论文是学会玩 Atari 游戏:

Playing Atari with Deep Reinforcement Learning

Human-level control through deep reinforcement learning

例如最经典的 Pong:

28天自制你的AlphaGo(四):结合强化学习与深度学习的Policy Gradient(左右互搏自我进化的基础)

这里也有一个策略网络,它输入的是目前的屏幕图像(实际上要输入几幅图像,或者前后两幅图像的差,用于判断运动情况),输出的是此时应该往上移动的概率。用这里所说的训练方法就可以让它无师自通,自己学会玩游戏,最终达到相当高的水准(可以想象,这个学习过程会比较慢)。

但是如果我们仔细想想,这个办法恐怕很难自己学会玩好星际!一个重要原因是星际的决策中有太复杂的“层次结构”。因此尽管 Deepmind 此前说星际是下一个目标,目前我们尚未看到 Deepmind 在这方面发表的进展。如果真的成功实现,将是相当大的成就。

最后,如果对于这方面感兴趣,这是一篇很好的介绍:

Deep Reinforcement Learning: Pong from Pixels

 

赞(0) 打赏
未经允许不得转载:顶好爱迪 » 28天自制你的AlphaGo(四)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

顶好爱迪 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏