反向增强学习入门1——基本概念

本文收录在无痛的机器学习第二季目录

今天我们来聊一个新的内容,那就是反向增强学习。反向增强学习这个东西,从名字上看就知道,它和增强学习有很密切的关系。不熟悉增强学习的朋友可以回头看看专栏的增强学习系列内容,内容还在连载中。

增强学习的问题

反向增强学习也被称为模仿学习(Imitation Learning),学徒学习(Apprentice Learning),可以说它是来解决另一类增强学习问题的方法。既然如此,我们就回到增强学习的问题范畴中来。在学习增强学习的过程中,我们了解了它的基本架构:Agent、Environment、State、Action、Reward。通过这些概念,我们将整个增强学习的基石搭建好,即使到现在我们发明了许许多多不同的算法,我们依然在这个框架中进行改进,并没有跳出去。

那么这个框架究竟好不好呢?当然是好的,它已经帮助我们解决了很多很实际的问题,比方说很多电子游戏,利用增强学习的AI获得了很大的成功;但是我们也必须看到,目前应用比较广泛的,还就是游戏。大家数得上来的游戏——甚至现在星际2,Dota2这样的大型游戏也加入其中。那么我们就不禁去思考一个问题:为什么增强学习在游戏方面斩获颇丰?

这就要回到问题的本源——Reward上来。在游戏设计的世界中,Reward是一个极其关键的因素,游戏之所以吸引人,其中一个很重要的原因就是它会为玩家每一个小阶段的表现赋予一个评价或者得分。这些得分可以很及时地给予玩家量化的反馈,而这些量化的反馈也恰恰是增强学习算法十分需要的内容。

但是回到现实生活中来,我们的世界——到目前为止,还不是一个可以把一切内容都用量化的反馈概括的世界。很多时候,我们需要人为地把一些反馈量化出来,才能进行增强学习训练。但是实际上,这个过程有时并不是十分容易。

我之前曾经坚持了近两年的游泳,对这方面还算又一些经验。我们人类现在是如何学习游泳呢?很显然,如果我们报名游泳辅导班,老师会首先带领我们进行监督学习——在岸上划臂蹬腿,然后直接指出我们的动作和标准动作的差距。随着我们不断地学习,我们的姿势也在不断提高。当然,当我们下水之后,姿势标不标准可能就是另外一件事情了。

之后,当我们慢慢变成独立游泳,我们就进入了另外一种学习模式,这种学习模式就更接近增强学习了。在增强学习过程中,每一次我们完成游泳的动作,都要获得一定的反馈,但事实上,在真实的游泳过程中,这样的事情是不会存在的。一般来说,如果我们和小伙伴一起游泳比赛,倒是可以知道谁游得快、谁游得慢,从而知道自己的游泳过程和姿势是否正确,不过这个反馈还是比较弱的,那么能不能有一点更加及时有效的反馈呢?

想要有更及时有效的反馈,所要经历的尝试可就多了。增强学习本质上就是一个“try and error”的过程,想要学好,不呛点水什么的是学不好的。这就是增强学习的思路。那说了这么多增强学习,下面就来看看反向增强学习的学习思路了。

利用反向增强学习思维学习游泳

前面提到,我们可以在已知Reward的情况下求Value Function,进而求出Policy,但是如果Reward不是那么容易得到呢?反向增强学习给了我们一个逆向思维,我们不通过Reward求Policy,反过来,通过Policy求Reward怎么样?

听上去很荒谬,我们辛辛苦苦地想获得Reward,就是为了求解Policy,现在有了Policy,还回去求Reward干什么?当然,很多时候最优的Policy是无法得到的,但是最优Policy的采样是可以得到的。虽然我们不是孙杨,不能拥有他的游泳Policy,通过自己肌肉的控制力和爆发力完成完美的泳姿,但是我们可以拿起手中的拍摄装置,或者打开电视和视频网站,观看孙杨游泳比赛的慢动作回放。从某种意义上来说,这就是Policy的一部分采样。

实际上很多人也是用这种方法学习游泳的。在家认真学习高手的动作要领,并铭记于心,最后回到泳池一试身手。实际上,这就是一个完整的从反向增强学习到增强学习的过程。首先,从Policy的采样出发,我们学习到了Reward——什么样的姿势是正确的,当然其他的姿势多半不正确,接下来就可以利用这些学习到的Reward进行尝试,再学习到Policy。这样一轮结束了么?当然不是,此时我们可以认为自己的策略不如视频上学习到的Policy采样好,那么我们就可以找出一种解释来说明两者的差距,而这个解释就是Reward。

将上面的话整理成一个个小的步骤,就有:

  1. 首先随机生成一个Policy,它就是我们未来要得到的Policy。
  2. 通过比较“官方”的Policy采样和自己Policy采样的差别,学习得到第一版的Reward
  3. 利用这一版的Reward提高自己Policy的水平——可以理解为Policy Improvement
  4. 回到第二步,如果两者的差别已经不大,那么我们就可以停止学习

上面都是从通俗的角度对这个问题进行的描述,下面我们回归到一个更简单的问题,来看看数学视角下对这个问题的解答。

私货时间

《强化学习精要:核心算法与TensorFlow实现》(冯超)【摘要 书评 试读】- 京东图书 深入浅出介绍强化学习框架概念与实践,欢迎了解!

我的书《深度学习轻松学:核心算法与视觉实践》,终于等到双十一,半价赔本促销,感谢支持!

编辑于 2018-06-02

文章被以下专栏收录