论文题目:Successor Features for Transfer in Reinforcement Learning
论文链接:http://papers.nips.cc/paper/6994-successor-features-for-transfer-in-reinforcement-learning.pdf
论文出处:NeurIPS 2017
摘要:这里的transfer in reinforcement learning指的是RL算法不是仅在某个具体任务中学习最优策略(传统强化学习),而是在不同任务之间通过transfer来学习的更一般的算法。本文提出的迁移学习框架,主要针对reward函数不同,但是环境的动力学模型保持不变的情况。所提出的方法基于两个key ideas:1)successor features (SFs):一种将环境的模型从reward中分离出来的值函数表征;2)generalized policy improvement (GPI):一种考虑一组策略,而不是单个策略的GPI(传统GPI的扩展)。将这两种想法放在一起,可以实现任务之间自由的信息交换(任务迁移)。
论文主要思路:
本文所期望的迁移方法需要具备两个性质:1)任务之间的信息流不应由反映任务本身之间的关系(例如层次或时间依赖性)的刚性图来规定。 相反,只要有用,就应该跨任务交换信息。 2)迁移应该尽可能地整合到RL框架中,而不是以单独的问题摆出,最好采用对智能体几乎透明的方式。
本文的创新基于两点:第一,将successor representation方法扩展,提出successor features来描述值函数;第二,将传统针对单个策略的GPI扩展成多个策略的GPI。
Successor Features (SFs)的定义及其学习:
传统的强化学习,通过一个特定的reward函数来指定一个具体的任务,即。这里,作者假设reward函数可以表示成
, (1)
其中,是关于
的特征,
时刻下该值记为
,
是权重。
有了式(1),策略的Q函数可以表示为
. (2)
(2)式中的就是策略
下状态-动作二元组
的successor features(如下图所示)。因此,Q函数的学习,包含了对
和
的学习。
的学习,和reward有关。根据(1)式,如果有了
,那么
的学习就是普通的监督式学习,
。当然,
也可以通过监督学习的方式学习。
关于的学习,需要利用(2)式的贝尔曼方程形式,即
. (3)
通过SFs实现迁移学习:
作者假设在环境的动力学模型不变的情况下,是不变的。因此,根据(1)式,不同的
就描述了不同的任务,或者不同的MDP。作者将
表示下的所有任务定义为一个MDP集合:
. (4)
这种情况下,假设source domain包括个任务,即
,分别对应
个不同的
,即
,和
个最优策略
。一旦
给定,或者学出来了,则新任务
的学习只需要研究
和
之间的关系就行了。
为此,作者提出了两个定理:
------------------------------------------------------------------------------------------------------------
定理1.(GPI)假设为
个不同的策略,并且
是它们动作值函数的近似,满足
(5)
定义新的策略为
(6)
则 (7)
------------------------------------------------------------------------------------------------------------
这里的GPI是传统强化学习GPI的一种推广,它针对多个任务的策略,对当前任务的策略进行提升。定理1表明,策略(6)不会表现得比
中的任何一个策略差。如果
,策略(6)将会严格比其它
个策略表现得更好。
------------------------------------------------------------------------------------------------------------
定理2. 令,并且
为策略
在
中执行时的动作值函数,其中
为
下的最优策略。给定一组近似动作值函数的集合
,使其满足
(8)
令 ,并且
,其中
是由内积诱导的范数。则
. (9)
------------------------------------------------------------------------------------------------------------
定理2给出了从现有模型中进行迁移学习的误差上界。如果智能体之前学习过类似的任务,即和
比较接近,则任务迁移就会比较成功。如果之前没有学习过,那就看前面学过的
个任务里,哪个距离
比较近了。
以上就是本文算法的核心部分了。在我看来,该算法最值得借鉴的地方就是将reward函数分解成两部分,一部分是状态转移数据的特征,是通用的;一部分是描述任务的权重,和任务有关。这样做,就把一族任务用特征函数来表示了,而任务族内部各任务,则由权重向量
来表示。
但是这里的如何设计,如何学习,哪些任务不在
以内,作者似乎并没有讲清楚。此外,作者考虑的是离散动作,有限状态的迁移强化学习。该算法在设计上,需要对所有的动作遍历。
关于SFs的迁移强化学习算法今天先介绍到这里,后续针对该算法还会有更详细的补充。
已将所有内容移至知乎个人主页:https://www.zhihu.com/people/wenzhang-liu,以后有新的内容也都在知乎上发布,欢迎关注!