【强化学习笔记-02】多任务深度强化学习

“A Survey of Multi-Task Deep Reinforcement Learning”-2020

中文整理:https://zhuanlan.zhihu.com/p/265750570

在中文整理的基础上对一些方法进行了补充。


存在的问题:普通RL算法在同一环境中跨相关任务的许多场景中的适用性有限

本文的目的是survey DRL领域中与多任务相关的研究挑战,并通过比较sota方法——DISTRAL (DIStill & TRAnsfer Learning), IMPALA(Importance Weighted Actor-Learner Architecture)和 PopArt,希望解决可扩展性、分心困境、部分可观察性、灾难性遗忘和负面知识迁移等多任务强化学习的核心挑战。

1. 多任务学习

“多任务学习是一种归纳传递的方法,它通过将相关任务训练信号中包含的域信息当作归纳偏差来提高泛化能力”

在多任务学习过程中,单智能体将借助DRL算法如A3C同时学习一组紧密相关的任务

  1. 定期与全局网络共享这些单智能体中每个智能体的神经网络参数
  2. 组合所有单智能体的学习参数,全局网络最终导出一组新的参数并将其与所有智能体共享

主要目标是通过在相同环境中运行的多个相关任务之间迁移学习(共享知识)来增强RL智能体的整体性能。

多任务学习的关键之一是RL智能体应开发一个常识库并学习可以在各种相关任务间共享和使用的一般技能。 另外,多任务间的竞争应该保持平衡

2. 多任务强化学习的主要方法

2.1 迁移学习

迁移学习的核心思想是在不同但相关的源任务和目标任务之间迁移知识,以提高用于学习目标任务的机器学习算法的性能。 在RL中的迁移主要集中在推导各种方法以将知识从一组源任务转移到目标任务。 当源任务和目标任务的相似度比较高时,基础学习算法可以很容易地使用所传递的知识有效解决目标任务,从而节省了很多数据样本。

2.2 学习共享表示

核心思想:假设智能体学习的不同任务可能具有共享的结构和内置的冗余。 将这些共同因素抽象化将很有助于加快整个学习过程。

学习共享表示是一种通过学习鲁棒可迁移的environmental abstraction来实现上述目标的方法,其中的abstraction概括了智能体在环境中遇到的一系列任务[34]。

成功的关键因素:开发具有良好environment abstraction的能力以及agent在环境中的角色

2.3 渐进式神经网络

Progressive Neural Networks是由DeepMind开发的一种利用神经网络的横向特征迁移概念的多任务方法。 思路就是我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务。

方法:对所有的之前任务的网络,保留并且fix,**每次有一个新任务就新建一个网络(一列)。**而为了能使用过去的经验,他们同样也会将这个任务的输入输入进所有之前的网络,并且将之前网络的每一层的输出,与当前任务的网络每一层的输出一起输入下一层。

截屏2021-10-24 下午10.29.54

每次有一个新的任务,就重新添加一列,然后将前几列的输出fuse到当前列来。

缺点:随着学习的持续进行,模型计算可能会很昂贵。

2.4 PathNet

PathNet是一种旨在通过结合迁移学习,持续学习和多任务学习的各方面来实现artificial general intelligence (AGI)的多任务强化学习方法。可以把网络中每一层都看作一个模块(绿色方块),然后把构建一个网络看成搭积木。pathnet的想法就是复用积木。

它是一种超大规模的神经网络。相较于上文中的 progressive networks 一个任务增加一列神经网络,PathNet 直接预先构建好一个 L 层的模块化的神经网络,每层有 M 个模块,每个模块本身就是一个神经网络,可以是卷积神经网络或者其他类型的网络结构。

具体的学习过程可以用下图来表示,绿色块表示一个独立的神经网络模块

截屏2021-10-24 下午10.46.37

一共训练了两个任务,第一个任务为 Pong 第二个为 Alien 。每个任务都连续地训练 80M 时间长度。Box 1 的紫色路径展现了训练开始时的随机初始化,接着使用强化学习算法训练几个回合游戏,同时用锦标赛选择算法来进化网络路径,因此进化与学习同时进行。Box 2 展示了有一点收敛之后的情况,会发现一些路径已经有些重叠。最终收敛的状态如 Box 3 所示,只会经过一条路径,Box 4 展示出接下来的训练中,单条路径会一直保持到训练结束。

这时切换到第二个任务,**同时 Pong 的路径会被冻结,也就是说 Pong 路径上的神经网络模块参数不会改变。**Box 5 用深红色路径表示被冻结的路径,用淡蓝色表示随机初始化的路径。新路径在 Box 8 中进化到收敛的状态,160M 步训练之后,Alien 游戏的最优路径被固定,如 Box 9 所示。

2.5 Policy Distillation and Actor-Mimic

1)策略提炼 Policy Distillation

关键思想是将复杂模型(通常是ensemble)学习到的features压缩为比例更小,速度更快的模型,其性能可与原始ensemble媲美。 后来,相同方法被应用于神经网络领域。

类似的,策略提炼可被视为用于提取强化学习智能体策略的技术。该策略将用于训练一个在专家级别上具有较小规模较高效率的新网络。 此外,我们可以扩展相同的方法以将多个特定于任务的策略合并为智能体的单个策略

为实现多任务策略提炼,该方法分别训练n位基于DQN的不同单人游戏专家。 此后,这些专家分别生成输入和目标,并将这些数据存储在不同的RAM中。 进一步地,蒸馏剂从这n个数据存储中顺序学习

2)Actor-Mimic

使用来自一组专家DQN网络 E 1 E_{1} E1,…, E N E_{N} EN的指导,其中 E i E_{i} Ei是专门从事源任务 S i S_{i} Si的专家。“指导”的一个可能定义是定义一个与学生网络和专家之间的Q值相匹配的平方损失。由于专家价值函数的范围在游戏之间可能存在很大差异,我们发现很难直接从专家价值函数中提取知识。

在此开发的替代方案是通过首先使用softmax转换Q值来匹配策略。使用softmax提供在单位区间内值受限的输出,因此每个专家的Q函数的影响不同程度地减小,在学习期间实现更高的稳定性。直观地,我们可以从迫使学生更多地关注模仿每个状态的指导专家所选择的行动的角度来看待使用softmax,其中状态的确切值不那么重要。我们称这种方法为“Actor-Mimic”。

2.6 A3C

3. 难点

  1. 可伸缩性 Scalability

  2. 注意力分散的问题 Distraction Dilemma

    不同任务对有限的资源存在竞争,多任务学习需要建立多任务需求/资源分配的平衡。 不合理分配注意力将导致Distraction Dilemma。

  3. 部分可观察性

  4. 有效的探索

  5. 灾难性的遗忘

由于合并了与另一任务(当前任务B)相关的信息,DNN有可能(倾向性)突然丢失从先前任务(任务A)中学到的信息。

  1. 负面知识迁移

从一组源样本到目标任务的知识迁移可能对智能体的整体学习进度和绩效产生负面影响,尤其当源任务和目标任务间存在显着差异时,这点可能会比较明显。

4. 现有求解方案回顾

4.1 DISTRAL(DIStill & TRAnsfer Learning)

DISTRAL希望建立一个通用框架,以提炼centroid policy,然后在多任务强化学习中迁移单个worker的常见行为。 DISTRAL的关键思想不是共享环境中各worker间的参数,而是共享一种可以捕获common behavior across tasks的精简策略。

4.2 IMPALA

在最基本的层面上,IMPALA是一个分布式智能体架构,它由一个具有单一参数集的智能体来develop。IMPALA能有效利用单机训练环境中的资源,同时可以扩展到多台机器而不牺牲数据效率或资源利用率。通过V-trace——一种新型off-policy修正方法,IMPALA可在高吞吐量的情况下,通过结合解耦acting和learning,实现相当稳定的学习。

通常,DRL模型的架构基于与多个actor结合的单个学习者(critic)。 在此生态系统中,每个actor都生成自己的学习周期参数(轨迹),然后通过队列将该知识发送给学习者(critic)。 学习者从环境中的所有其他actor收集相同类型的轨迹,并制定中心策略。 在下一学习周期(轨迹)之前,每个actor都从学习者(critic)检索更新的策略参数。 这与A3C算法非常接近。

4.3 PopArt

PopArt的核心目标是最大程度减少干扰,从而稳定学习过程,以促进对MTRL(多任务强化学习)技术的利用。PopArt模型是在原始IMPALA的基础上设计的,将多个卷积神经网络层与其他技术(如词嵌入与长短期记忆(LSTM)的递归神经网络)相结合。PopArt的工作原理是使每个单任务的贡献适应智能体的更新确保所有智能体都将发挥各自的作用,从而对整体学习动力产生成比例的影响。 PopAr根据环境中所有任务的输出来修改神经网络权重。 在初始阶段,PopArt会估算最终目标的均值和分布,并使用这些估值在更新网络权重前将目标标准化,这使得PopArt的学习过程更加稳定和强大。

参考资料

https://zhuanlan.zhihu.com/p/25893683

https://bluefisher.github.io/2018/11/03/Progressive-Neural-Networks-PathNet/

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值