论文题目:Universal Successor Features Approximators
链接:https://arxiv.org/pdf/1812.07626
出处:ICLR 2019
单位:DeepMind
【论文概要】
本文是基于 Successor Features 的迁移强化学习后续之作,针对的还是关于多任务强化学习算法,以及如何将已经学好的模型迁移到新任务(unseen tasks)上。为了实现这个目标,本文考虑的方法是先在一个任务空间上对若干个不同任务进行训练,假设这些任务和新任务在任务空间中服从同一概率分布,则训练出来的模型就可以很好地迁移到新任务上了。
以上是一个常用的思路,但是在这篇文章中,作者采用 universal value function approximators (UVFAs) 技术,并且结合 successor features (SFs) 以及generalised policy improvement (GPI) ,提出了 universal successor features approximators (USFAs)。USFAs 可以学到更一般的值函数,它将每个任务和该任务对应的策略进行参数化,使得算法对参数化空间中的任何任务和策略都能够很快得到对应的值函数,进而提升策略。因此,该算法只需要在一定的任务分布和策略分布下学习到更一般的值函数表征,就能够得到新任务下比较好的策略,实现任务迁移。
【背景知识】
1. SFs & GPI: Successor Features and Generalised Policy Improvement
前面我们曾介绍过Barreto等人提出的 SFs&GPI算法,以及和该算法息息相关的 successor representation (SR)。这里,我们再次简单回顾一下该算法的核心思想。
1.1 Successor Features Reinforcement Learning
基于 SFs 的强化学习技术对系统的奖励函数有一个假设,即
,    (1)
其中,是特征函数,它只和环境的动力学特性有关,因此,只要环境本身不发生变化,则该特征函数就是固定的。
是权重,从(1)式可以看出,不同任务的 reward 函数由该
来确定,因此我们也常常将权重
下的 reward 函数记作
。
有了(1)式,我们就可以将权重下的Q值函数改写成:
,    (2)
其中,就是 successor features 的定义。有人将它翻译成“后继特征”,顾名思义就是在状态-动作二元组
下,持续执行策略
至无穷时刻后,特征
的累积表达值。只要
是有界的并且
,则
就是有界的,并且也会收敛。
根据以上的定义,基于 successor features 的强化学习分为两个部分:1)权重的学习;2)
的学习。这部分内容请参考笔者前面写的文章。
1.2 Generalised Policy Improvement (GPI)
传统的 GPI 针对一个策略下的值函数,得到一个新的策略,该策略能够对当前的策略进行一定的提升。例如对策略来说,就有结论:
,关于这部分内容请参考Sutton的《强化学习》这本书 [1]。
这里的 SFs & GPI 是对多个不同任务的策略进行提升。假设现在已经有n个不同的策略,以及对应的
,定义策略
,    (3)
就有类似上面的结论:
通过这种方式将传统的 GPI 推广到多策略 GPI 中,是为了后面多任务学习以及迁移强化学习做铺垫,进而提出 SFs&GPI 算法。关于该算法的细节,请参考 [2] 和 [3]。
2. Universal Value Function Approximators (UVFAs)
UVFA(读作“YOU-fah”)是传统值函数拟合器的推广 [4]。传统的值函数拟合器可以用来表示,针对的是一个特定的任务,
表示值函数的参数。一旦任务发生变化,导致奖励函数也发生变化,则已经拟合出来的参数
就会失效。
而 UVFA 对值函数的拟合破除了这一限制,它将任务目标本身也考虑在值函数中作为输入,记作,其中
表示任务目标。在文献 [4] 中,作者将任务目标用
来表示,即状态空间中一点。这种值函数拟合器将特定任务的值函数拟合问题,推广到一个任务空间上的值函数拟合问题。这种推广不仅能够得到一个更一般的值函数表达,还能将已经学到的知识快速迁移到该任务空间中新的任务上。
【论文主要内容】
UVFAs 和 SFs & GPI 两种算法的关系
根据前面 (2) 式对值函数的定义,我们将Q值函数定义成。由于
是和任务相关的权重,它决定了具体的任务目标,因此这样的Q函数也可以用 UVFAs 来学习得到。通过前面背景部分的介绍,我们发现 SFs&GPI 算法和 UVFAs 算法似乎都是先在一个任务空间上学习出通用的值函数形式,然后再将该值函数迁移到任务空间中新的任务上来。但是,这两种算法本质上一样吗?
事实上,作者在本文详细讨论了 UVFAs 和 SFs & GPI 两种算法各自的优势以及它们之间的区别。总结起来有以下几点:
- 对新任务()进行迁移时,策略的表达形式不同: 
 UVFAs:; 
 SFs & GPI:. 
 从这里可以发现,当遇到新任务时,UVFAs 算法直接改变其输入就可以很快得到新的策略。但是 SFs & GPI 算法是利用已经训练好的不同任务下最优策略,通过遍历找到处理新任务最好的策略。从表达形式上来看,UVFAs 更加简洁便利一些。 
- 值函数形状要求不同:UVFAs 是在一个任务空间中学习出一个通用的值函数表达,因此对最优值函数的形状有一定的要求。例如,当使用神经网络来拟合该值函数的时候,就要求该值函数在任务空间中是光滑的,即 的微小变化不会使得函数值变化太大。但是相反,SFs & GPI 对这方面没有特别的要求,它甚至可以用表格来实现。 
- 可解释性:假设UVFA对权重是光滑的,并且 足够小,当我们拟合出关于 的最优值函数时,即 ,那么我们可以说 也能较好地拟合 。然而,对于 SFs & GPI 算法来说,虽然我们可以得到关于任务 的策略: ,利用已有的 SFs 对新任务策略进行提升,但是由于我们对 是如何被表征,以及和不同的任务具体有什么联系是完全不可知的。因此即便我们能够将 拟合得很好,也无法得到关于 的信息。 
通过比较,结论就是 UVFAs 和 SFs & GPI 两种方法各有千秋,它们在某些方面是互补的,因此在本文中,作者考虑将这两种思想结合,得到 Universal Successor Features Approximators (USFAs) 算法。接下来,我们介绍 USFAs 是如何被设计出来的。
Universal Successor Features Approximators (USFAs)
根据前面的介绍,我们定义 universal value functions (UVFs) 为,令
为任务
下的一个最优策略,则该 UVFs 也可表示为
。可以发现,权重
在 UVFs 的定义中扮演两个重要的角色:任务
和该任务下的最优策略
。
然而,我们可以解除这一绑定,将 UVFs 重新定义为。根据 SFs 对奖励函数的假设,即(1)式成立,则可将该值函数写成
。如果我们将策略
作为 SFs 的输入,使得 SFs 在整个策略空间上进行学习得到更一般的特征表达,就得到所谓的 universal successor features (USFs):
。相应地,我们称
为一个 universal successor features approximator (USFA)。
在实际操作中,为了定义一个USFA,需要定义关于策略的表达。本文是将所有的策略都映射到
维的向量空间中,即
.
这样又可以将 USFs 写作。由于任何一个reward函数都对应一组最优策略,而任何一个策略都能够作为最优策略对应到一个reward函数中,例如
且
。可以将策略映射到和任务空间同构的空间中,即
。这样可将 USFs 写成
。值得注意的是,当
时,UVFs 就是 USFs 的一个特殊形式。这样,USFs 是将值函数的学习不但扩展到了整个任务空间,还扩展到了整个策略空间。
以上就是本文的核心部分内容了。至于 USFA 的训练过程,基本上都是TD learning那一套,详细内容在这儿就不赘述了,请参考论文原文。这里给出文中算法的框架图和伪代码:


【总结】
本文的创新点在于将 SFs & GPI 算法扩展到更一般的情形,利用 UVFAs 的思想,将任务和策略都进行参数化表达或者映射到线性空间中,并且作为值函数的输入,得到一个通用的值函数表达,以便于在任务空间中更好地实现任务迁移。但是由于训练的时候需要在任务空间和策略空间中分别进行随机采样,因此其数据量和计算量是可想而知的。
【参考文献】