查看原文
其他

【源头活水】离线元强化学习新工作(ICLR 2021 Poster)

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

作者:知乎—伽蓝烟雨

地址:https://www.zhihu.com/people/jia-lan-yan-yu-84

文章:https://arxiv.org/abs/2010.01112
最终代码会在三月camera ready之前开源:https://github.com/FOCAL-ICLR/FOCAL-ICLR/
FOCAL方法的设计初衷是为了解决自动温室生产场景下,应用强化学习算法进行种植决策所面临的几大难点:数据少、探索风险高、可迁移性差,类似的困难在自动驾驶、医疗等数据稀缺或极度重视安全性的场景中也广泛存在。而现有的主流强化学习算法,往往需要大量数据和与环境的交互进行训练,同时只能解决单一任务,泛化性差,从而在相关的实际应用场景中难以落地。
离线元强化学习作为一种新颖的范式,结合了离线强化学习及元强化学习两大前沿方法的优点,一方面可以完全不依赖与实际环境的交互并高效、重复地利用已有数据进行训练;同时具备优秀的迁移能力,可以让智能体快速适应新的未知任务,极大地提升了强化学习算法在真实世界中的应用范围和价值。
围绕这一问题目前的相关研究还较少,并且有两个主要的技术难点:
1. 离线强化学习中通常会因为训练数据与所学习策略的状态-动作对的分布偏移而产生较大误差(bootstrapping error),甚至导致价值函数的发散。
2. 元强化学习要求在学习控制策略的同时能高效且鲁棒地进行任务推断(task inference)。
在本文中,我们针对第一个离线策略学习的挑战,采用了行为正则化(behavior regularization)方法。具体来说,我们引入了一个训练数据(behavior policy)及所学习策略(learner)间的分布差异的度量,作为修正项加入经典的off-policy actor-critic框架:
Value & Q functions:
D 为两个概率分布间的差异的度量,常用形式例如KL散度
Actor & critic losses:
针对第二个元强化学习的挑战,我们首先提出了一个关键假设,即针对大部分多任务场景,单个任务由少量的transitions(  )即可确定:
基于这一假设,我们提出了一个用于任务推断的确定性的任务信息编码器来进行高效的task inference。我们在有界的任务信息嵌入空间中引入了一个全新的负指数距离度量,并且将其与控制策略的贝尔曼方程的梯度解耦进行学习:
i,j为任务标签,q为transition进行编码后的task embedding vector
整个方法的训练流程为:
我们分析验证了在该设定下,采用一些简单的算法设计即可带来相比经典元强化学习及度量学习的效果的明显提升。
FOCAL和一些基线方法(如PEARL,BCQ等)的比较。相对基线方法,FOCAL的收敛速率及渐进表现都更好。
本方法赋予强化学习算法进行离线学习及高效迁移的能力,离线意味着不需要在真实环境中进行探索、交互,高效迁移意味着算法的鲁棒性及数据利用效率更高。我们的方法实现了同时具备上述两种能力的端到端的算法训练框架,可以极大扩展强化学习算法的实际应用范围:例如推动其在诸如医疗、农业、自动驾驶等数据稀缺或极度重视安全性的相关领域的实际应用,包括构建定制化的患者治疗方案、针对特定气候/作物品种的温室种植策略等。
当然,该方法的关键假设,即上文的Assumption 1并非始终成立。比较典型的两种情况有
1. 奖励稀疏的任务,在这种情况下给定s,a,许多任务的reward均为0,如果s'也相同,则理论上无法从这样的transition数据中进行有效的任务推断
2. 基于记忆的任务(memory-based tasks),即每个任务所特有的reward/transition function并不由当前s,a完全确定,而是基于之前的一些历史信息。在此种情况下,无法通过单一或者无序的transition进行任务推断
针对上述Assumption 1的一些局限性,我们也有一篇最新的采用attention及contrastive learning的改进版工作投稿ICML 2021,大家敬请期待。

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


“源头活水”历史文章


更多源头活水专栏文章,

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



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

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

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