翻译Deep Learning and the Game of Go(14)第十二章 采用actor-critic方法的强化学习

本章包括:

  • 利用优势使强化学习更有效率
  • 用actor-critic方法来实现自我提升AI
  • 设计和训练Keras的多输出神经网络

如果你正在学习下围棋,最好的改进方法之一是让一个水平更高的棋手给你复盘。有时候,最有用的反馈只是指出你在哪里赢棋或输棋。复盘的人可能会给出这样的评论,“你下了30步后已经远远落后了”或“在下了110步后,你有一个获胜的局面,但你的对手在130时扭转了局面。”

为什么这种反馈是有帮助的?你可能没有时间仔细检查一个对局中的所有300个落子,但你可以把全部注意力集中在10或20个落子序列上。复盘的人可以让你知道对局中的哪些部分是重要的。

强化学习研究人员将这一原则应用于actor-critic学习,它是策略学习(如第10章所述)和价值学习(如第11章所述)的结合。策略函数在其中扮演着演员的角色:它选择要下的落子点。价值函数在其中是批评家:它跟踪代理在游戏过程中是领先还是落后。这种反馈指导着训练过程,就像游戏复盘一样指导你的学习。

本章描述了如何用actor-critic学习来做自我提升的游戏AI。让其工作的核心概念就是优势(advantage),时实际游戏结果和预期结果之间的区别。我们首先要说明怎样让优势去改进训练过程。在那之后,我们准备构建一个actor-critic游戏AI。首先,我们将展示如何实现落子选择,然后我们要实现新的训练过程。在这两个函数中,我们大量借鉴了第10章和11章中的代码示例,最终的结果是最好的:它将策略学习和价值学习的好处结合成一个代理。

12.1 advantage 教你哪个决策是重要的

在第十章中,我们简要提到了信度分配问题。假设你的学习代理下了一个200步的对局,最终取胜。因为它赢了,你可以假设它是至少选择了一些好的落子点,但它可能也选择了一些不好的落子点。信度分配没有把你想要强化的好落子和你想要忽视的坏落子分开。本节介绍了优势的概念,这是一个估计某一特定决策对最终结果贡献的公式。首先,我们描述了优势如何帮助信度分配;然后我们提供代码样本来说明如何去计算。

12.1.1. 什么是advantage? 

想象一下,你正在看一场篮球比赛;当第四节快结束的时候,你最喜欢的球员却投出了一个三分球。你有多兴奋是取决于游戏状态的。如果分数是80比78,你可能要从座位上跳起来,而如果分数是110比80,你就会无动于衷。这有什么区别?在一场快结束的比赛中,三分球造成了游戏预期结果的巨大变化。另一方面,如果游戏是一种吊打的局面,那一个单独的动作不会影响任何的结果。当游戏结果还未定时,这时的动作是最重要的。在强化学习方面,advantage就是一个量化这一概念的公式。

为了计算advantage,您首先需要对状态的价值进行估计,我们将其表示为V(s)。这是代理将要看到的预期回报,给出一个特定状态s下的已经做到的地方。在游戏中,你可以认为V(s)可以指示当前局面对黑方有利还是白方有利。如果V(s)接近于1,就说明当前局面非常有利;如果V(s)接近于-1,你的代理人就会输棋。

如果你回忆起上一章中的action-value函数Q(s,a),可以知道这个概念是相似的。不同之处在于V(s)表示在你选择落子之前,棋局是多么有利;Q(s,a)表示在你选择落子之后棋局是多么有利。

优势的定义通常规定如下:

A=Q(s,a)-V(s)

可以这样思考这个公式:如果你处于一个好的状态(也就是说,V(S)是高的),但你下了一个差的落子(也就是说Q(s,a)是低的),此时计算是负的,因此你的优势就会消失。然而,这个公式的问题是,你不知道如何去计算Q(s,a)。但你可以认为你在游戏结束时得到的回报就是对真实Q的无偏估计。所以你可以在得到你的回报R后再估计优势,公式如下:

A=R-V(S)

这是你将在本章中用来估计优势的公式。让我们看看这个值是怎样用的。

为了说明目的,你会假装你已经有了一个准确的方法来估计V(s)。实际上,你的代理人会同时学习价值估计函数和策略函数。下一节将要介绍这是如何运作的。

让我们来举几个例子:

  • 在游戏开始时,V(s)=0:两个棋手有着近乎相同的机会。假设你的代理赢了比赛,那么它的回报将是1,所以它第一次移动的优势是1-0=1。
  • 想象一下游戏快结束了,你的代理几乎要锁定胜局了,假定V(S)=0.95。如果你的代理赢得对局,那么优势就是1-0.95=0.05。 
  • 现在想象一下你的代理有另一个获胜的局面,其中再次出现V(S)=0.95。但在这个游戏中,你的AI不知何故输掉了对局,给了它一个回报-1,那么这时advantage就是-1-0.95=-1.95

图12.1和12.2说明了假想游戏的优势计算。在这个游戏中,你的学习代理在前几步慢慢领先;然后它犯了一些大错误,然后一路落后直到快要输棋。在150步落子之前的某个地方,它突然设法逆转了比赛,最终获得了胜利。在第10章的策略梯度技术下,游戏中每一步的权重都是相等的。在actor-critic学习中,你想找到最重要的落子并给予它们更大的权重。

 图12.1 假定游戏过程中的估计价值。这场比赛持续了200步。起初,学习AI稍微领先,然后它远远落后,然后它突然停止落后逆转了比赛,取得了胜利

由于学习AI获胜,利用A(s)=1-V(s)公式可以计算出优势。在图12.2中,您可以看到优势曲线与估值曲线具有相同的形状,但是做了翻转。最大的优势来自于代理人远远落后的时候,因为大多数棋手在如此糟糕的情况下都会输,所以AI一定在某个地方做了一个很好的落子。 

图12.2  一个假设游戏中每个落子的优势。学习代理赢了这场比赛,所以它的最后回报是1,导致恢复局势的落子有接近2的优势,所以他们会在训练期间得到有力的加强。在比赛结束时,当比

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值