迁移学习在多智能体强化学习中的应用(Action Advising)

探讨了多智能体系统(MAS)中转移学习(TL)的概念与应用,包括知识空间、策略空间的定义,及如何在多智能体环境中进行有效的知识迁移,涉及Advisor-Advisee框架、Teaching策略等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十三、Action Advising

1、Multi-Agent RL 中的 Transfer Learning

(1)一些定义

在多智能体系统中使用TL是为了重复利用已经学到的知识从而提高学习的速度并且使原本复杂的任务变得容易学习。多智能体系统的TL中有如下几个概念:

1、knowledge space K \mathscr{K} K :它包含了当前的任务(target task)中的samples,即 ⟨ s , u , s ′ , r ⟩ \left\langle s, \boldsymbol{u}, s^{\prime}, r\right\rangle s,u,s,r K target \mathscr{K}^{\text {target}} Ktarget ;之前的任务(source task)中已经学到的solution中的samples: K source \mathscr{K}^{\text {source}} Ksource ;还有与其他agent交流(communicate)得到的samples以及通过观察其他agent得到的samples,所以有: K = K target ∪ K source ∪ K agents \mathscr{K} = \mathscr{K}^{\text {target}} \cup \mathscr{K}^{\text {source}} \cup \mathscr{K}^{\text {agents}} K=KtargetKsourceKagents

2、policy space H \mathscr{H} H :policy space 包含了agent的通过算法可以学到的策略,即: π ∈ H \pi \in \mathscr{H} πH A : K → H \mathscr{A}: \mathscr{K} \rightarrow \mathscr{H} A:KH 其中 A \mathscr{A} A 是算法(algorithm)

为了能够重复利用知识(reuse knowledge)需要决定在什么时候(when)、用什么方式(how)往 K \mathscr{K} K 里存入哪些(what)学到的知识。

在MAS中使用了TL是取得了好的效果还是出现了negative TL需要通过一些标准(performance metrics)来衡量:Jumpstart、asymptotic、total reward、transfer ratio、time to threshold

在这里插入图片描述

其中,asymptotic的意思是使用了TL后能够渐进收敛到一个更好的performance;transfer ratio是使用TL前后的total reward之比;time to threshold的意思是使用TL前后到达某个要求的performance的时间差。

(2)分类

用于MARL的TL有诸多类别,具体如下:

在这里插入图片描述

”Intra-“的意思是”内部“,采用这种方法的agent不需要交流就可以获得其他agent内部的知识;”Inter-“的意思是交互,采用这种方法时agent之间需要交流、需要决定在什么时候、如何传递知识。知识在agent之间传递主要有以下几种方式:

1、advisor/advisee:knowledge通过agent之间的交流传递,但是不对其他agent的内部的信息做假设

2、teacher/student:knowledge通过agent之间的交流传递,并且对其他agent的一些信息比如算法、策略、动作做出假设

3、mentor/observer:observer要试着像mentor学习那些取得了高收益的动作,agent之间没有交流。

更详细的分类如下:

在这里插入图片描述

可以看出来在MAS中使用TL主要有几个关键点:

1、agent采用的是什么类型的算法:例如self-interested是应用单个agent的RL算法,将其他agent看作环境动态特性的一部分;equilibrium算法是利用博弈论的知识,训练reward function直到达到纳什均衡;adversarial算法适用于agent之间是竞争关系的场景,即reward总和为0;cooperative适用于所有agent都有一个共同目标的场景。

2、如何选择source task:当agent已经积累了足够的”previous solution“之后,需要合理地选择source task,因为如果选择不当可能会导致negative TL。其中,Implicit方法只是用于动作空间和状态空间都不变仅仅是学习的目标发生了变化的场景。

3、如何map:选出了source task之后,agent需要评估不同任务之间是哪一部分比较相似从而更好地迁移知识,因为如果每次都迁移整个策略显然是会出问题的。

4、迁移什么知识:有许多东西可以被迁移,比如action、reward、policy、models……

5、不同的任务有哪些允许的差异:需要假设source task和target task之间的区别,比如same domain假设source task和target task是在解决同一个领域的问题;progressive difficulty 假设target task是source task的复杂版;Any则是假设每个部分都会有所改变。

2、几个action advise 算法

(1)、Torrey & Taylor 2013 《Teaching on a Budget: Agents Advising Agents in Reinforcement Learning》

这篇文章采用了teacher-student的框架,首先训练一个agent并将其作为teacher agent然后对于同样的任务,在训练另外一个student agent的时候teacher agent的fixed policy可以提供建议从而加快学习的进度。需要注意的是这篇文章并不是MAS,teacher agent和studentagent虽然是针对同一个task的,但并没有出现在同一次训练之中!和前面的介绍有所出入,这篇paper的teacher-student框架不假设student agent的internal representation,并且不允许student agent直接利用teacher agent的知识开始训练,但是teacher agent可以观察到student agent的状态、动作等外部的信息,总而言之这篇文章希望teacher在合适的时候提供建议来”指导“student agent学习,而不是让student agent照搬teacher agent的经验,它的核心是研究”When to advise“。除此之外,此文还给teacher agent的advice设定了一个budget,teacher agent不能无节制地向student agent提供建议。

由于文章实验的环境比较复杂,所以传统的tabular learning不能胜任而是用了线性函数近似方法: Q ( s , a ) = ∑ i w i f i Q(s, a)=\sum_{i} w_{i} f_{i} Q(s,a)=iwifi f i f_i fi 是状态的”特征“, w i w_i wi 是权重。

在student agent学习的时候teacher agent会观察student agent的状态和动作,在其中的 n n n 个状态下,teacher agent会给出建议,文中总共提供了4种方法:

1、early advising

该方法认为student agent应该越早的到建议越好,因为在最开始的时候student agent对任务的了解很少,所以teacher agent在student遇到的前n个状态就提供建议。

2、importance advising

early advising的局限性很大,只有在每个状态的重要性都程度都相同的时候才有效,但是事实上许多任务的不同状态的重要程度是不相同的,因此需要更”节省“地使用建议,只在重要地状态提供。那么如何衡量一个状态的重要程度呢?这篇文章给出了这样一个公式: I ( s ) = max ⁡ a Q ( s , a ) − min ⁡ a Q ( s , a ) I(s)=\max _{a} Q(s, a)-\min _{a} Q(s, a) I(s)=maxaQ(s,a)minaQ(s,a) ,这个公式是说如果某一个状态下采取任意一个动作得到的Q都是相同的,那就说明这个状态并不怎么重要,但是如果在某个状态采取不同的动作会带来截然不同的效果那么这个状态就值得引起注意,并且用最大的Q和最小的Q之差来衡量这个状态的重要程度。因此对于student agent的每一个状态在它的重要程度大于某个阈值的时候teacher才会提供建议

3、mistake correcting

有些时候即时teacher agent把建议留给了关键的状态但是有可能在某些重要的状态student已经做出了正确的动作,这么以来teacher agent的建议就浪费了。由此想到teacher agent的建议应该在student agent要做出错误的动作的时候再使用才是更合理的。为此student agent也需要提前声明它们打算采取的动作这样teacher agent才有机会给出建议。

4、predictive advising

尽管teacher agent不能直接获取student agent的信息但是他可以根据student采取的动作来推断其策略。只需要将teacher agent的观测值作为用来训练的数据,利用一些方法比如SVM训练一个分类器这样就可以根据student agent的状态来预测其动作,可以代替mistake correcting中说的”提前声明它们打算采取的行动“。当然该方法存在诸多挑战:第一,因为agent的状态是不稳定的所以用于训练的数据可能也是不稳定的;第二,因为agent需要有足够的exploration所以用于训练的数据可能会noisy;第三,由于teacher agent和student agent的状态的表现方式不同,所以训练出来的分类器未必能包含(预测出)student agent的policy。

(2)、Amir 2016 《Interactive Teaching Strategies for Agent Training》

回忆Torrey and Talory 2013的方法,在student agent学习的时候teacher agent会观察student agent的状态和动作,在其中的 n n n 个状态下,teacher agent会给出建议。这么做有一个弊端:需要teacher agent持续地”关注“student agent,换言之需要持续地将student agent的state传递给teacher agent,这回带来十分巨大的计算开销,除此之外还引出了这篇paper关注的一个量”attention“。联系生活实际不难理解,老师不可能全程以相同的注意程度”盯着“学生,一定会存在注意力的衰减。因此,为了让teacher agent能够更高效地向student agent提供建议需要尽可能地减少”attention“。针对这个问题,Amir 2016年的这篇paper提出了一种”jointly initiated teaching strategies“,让teacher agent和student agent共同决定什么时候teacher agent应该给出建议,即student agent来决定什么时候应该引起teacher agent的”attention“,teacher agent如果受到了student agent的请求还要决定自己是否要提供建议,所以这篇文章的核心也是在研究”When to advise“

和Torrey and Talory 2013的方法相同,Amir 2016的方法也假设已经事先训练好了一个”teacher agent“即一个”fixed policy“并且teacher advice也有budget。除此以外还需要考虑”attention“,文中用到了两个指标来衡量:(1)、teacher agent需要评估student agent的状态总量;(2)、”teaching period“的总时长,即从开始到teacher agent必须评估的最后一个student agent的state所消耗的时间。我们希望减少”attention“但是文章并没有给attention也设定一个budget而是选择去分析训练过程中需要的这两个指标。因为很多任务并没有具体的结束的状态而是人为设定了训练的时间,所以指标2更重要,即应该更多关注如何减少teaching period的总时长。

​ 文中总共给出了三大类方法:teacher-initiated advising;student-initiated advising;jointly-initiated advising

<1>、Teacher-initiated advising

和Torrey and Talory 2013的方法一样,采用state importance: I ( s ) = max ⁡ a Q ( s , a ) teacher − min ⁡ a Q ( s , a ) teacher I(s)=\max _{a} Q_{(s, a)}^{\text {teacher}}-\min _{a} Q_{(s, a)}^{\text {teacher}} I(s)=maxaQ(s,a)teachermin