查看原文
其他

【源头活水】Transfer in DRL Using SFs & GPI

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

作者:知乎—Papers

地址:https://www.zhihu.com/people/liu-lan-25-44


论文题目:Transfer in Deep Reinforcement Learning Using Successor Features and Generalised Policy Improvement.
论文链接:http://proceedings.mlr.press/v80/barreto18a/barreto18a.pdf
论文出处:ICML 2018

01

论文概要
本文是NeurIPS 17那篇“Successor Features for Transfer in Reinforcement Learning”的2.0版本。本文的背景和算法基础和NeurIPS 17那篇基本上差不多,只是在误差边界和具体操作上有了进一步的改进。本文的贡献主要有两点:1)上一篇对MDP有一定的限制,而本文放松了对该条件的限制;2)本文直接将reward函数本身作为特征,从而不需要手工设计  函数。

02

背景回顾
回顾一下NeurIPS 17那篇“Successor Features for Transfer in Reinforcement Learning”,作者假设在不同强化学习任务下,环境的动态特性(dynamics)是保持不变的。因此,reward函数的改变是不同任务之间迁移学习的关键。作者将reward函数写成如下形式:

其中  是  的特征函数(注意,这里的  不是successor features),是权重。  函数描述的是环境本身动态特性,是假设保持不变的,那么不同的任务就由  来表征。有了这个基础,基于  的不同MDP集合可由

来表示,其中每个  表示一个特定的任务。基于以上的表示方法,Q函数可以写成:

上式中的  即为successor features (SFs),后继特征。
正如我上一篇关于NeurIPS 17论文讨论的一样,这里一个关键的问题是  特征函数怎么设计。单凭经验去手工设计,或者另基于一个假设从数据中学习都是不太靠谱的办法,总会带来新的问题。为了解决这个问题,同时能够让深度学习技术来实现SFs&GPI学习,作者在本篇论文中做了进一步的改进。
作者的介绍分为两步:首先将MDP从  放宽到所有的  ;其次将reward函数本身当做特征,从而避免设计  函数。
从论文的写作顺序来看,这样介绍比较顺其自然。但是我个人以为,作者的思路很可能是反过来的。首先,他们想要摆脱求解  函数这个麻烦事,于是想到要用reward函数直接来代替 ,这样会特别省事;其次,用reward函数代替特征,则原先推导的定理2可以进一步推广,得到本文提出所谓的Proposition 1。

03

使用reward函数代替  
在NeurIPS 17那篇文章中,作者将  的求解看成一个多任务学习问题,用  个任务的数据通过回归来拟合  。作者称这  个任务称为“基任务”,用  来表示。回归问题可表示为:

关于(4)式的求解,就是一个最小二乘问题,可以得到一个最优解:

其中,  是由这些  组成的矩阵,  是由  组成的向量。从(9)式中可以发现,原来  函数可由  线性表示,那接下来一个很自然的想法就是直接使用  作为  函数,剩下的部分都算在  上面,即

这里的  。如果直接利用reward函数本身作为  函数,则剩下的部分只需要做两件事就行了,第一是学习  ,第二是学习SFs。

04

收敛条件放宽限制
既然用reward函数来代替  函数,作者得到了一个更一般的结论,也就是本文中所提出的Proposition 1:
命题1. 令  ,  为  中的最优策略  在  中执行时的Q值函数。给定  个Q函数拟合结果  ,使得  , 都成立,设

其中,  是  的最优Q值函数,  则是  中策略  的Q值函数。  是  范数。

05

迁移强化学习
有了以上  个“基任务”的学习,就会得到两个关键的特征:  和  。当有一个新任务  ,首先根据(1)式和环境交互数据拟合出  。然后利用  和  得到  在不同源策略下的Q函数,并通过GPI得到最优策略。算法流程大概如下图所示:
算法伪代码
如此,就实现了任务的迁移学习。

06

总结与评价
本文是将SFs & GPI 的迁移强化学习框架从两方面进行了推广。首先,将收敛性的理论保证推广到环境中的任何两个reward函数不同的任务中,放宽了reward函数必须由一组features线性组合的假设;其次,直接将一组基本任务的reward函数作为feature的组成部分,从而不需要另外去设计  函数。最后,作者使用深度学习技术来实现算法中的函数拟合问题。
我认为这篇论文最值得借鉴的地方是“基任务”(base tasks)的思想。只要找到一个任务空间的基任务,则任务空间中的其它任务通过线性组合就能得到,甚至不在该任务空间的任务,也可以很好地通过最小二乘来逼近。但是关键的问题在于,如何寻找一组合适的“基任务”来实现一般任务的描述?有没有一个更一般的方法,只要给出了一个环境的状态空间、动作空间和状态转移函数,我就能找到这个环境的一组“基任务”?这些问题在这篇文章中没有讨论,作者凭经验设计了4个“基任务”,得出了较好的结果,但是4个够不够,多不多?这些问题都还有待研究。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存