论文解读:Policy Distillation and Value Matching in Multiagent Reinforcement Learning

如题所述

第1个回答  2022-06-09
论文题目: Policy Distillation and Value Matching in Multiagent Reinforcement Learning

论文链接 : https://arxiv.org/pdf/1903.06592

研究对象 :多智能体协作系统

研究动机 :现有的关于多智能体强化学习(multi-agent reinforcement learning, MARL)的工作,主要通过集中式评价机制(centralized critic)或智能体之间的通信来共享信息,从而提升学习效果。但是这些工作通常不会研究智能体之间如何通过信息共享来解决维度灾难(the curse of dimensionality)的问题。

假设 :多智能体问题可以被分解成一个多任务问题,这样每个智能体可以只在整体状态空间的子集中进行搜索,而不用在整个状态空间中搜索。这种假设的好处是可以大大缩小系统的搜索空间,从而加快学习速度。

主要工作 :

基于以上假设,通过蒸馏(distillation)和值匹配(value-matching)的方法将同质智能体的知识进行整合,提出一种新的multi-agent actor-critic算法。

所谓同质多智能体,就是状态空间和动作空间都是一样的智能体,比如无人机和无人机组成的就是同质智能体,无人机和无人车组成的就是异质多智能体。

问题背景 :

多智能体系统中,智能体独立地在同一个环境中行动,但是同时彼此也会影响到对方的决策。因此,如果直接将单智能体强化学习技术应用到多智能体中,也就是所谓的independent learning,学习过程将会不稳定。因为传统的单智能体强化学习假设外部环境的变化是稳定的,而在多智能体系统中,任何一个智能体策略的改变,都会影响到其它智能体的学习。为此,研究人员常常采用一种集中式训练和分布式执行的架构来实现MARL。但是这就会存在一个问题,就是当智能体的数量增大的时候,整个系统的状态空间和动作空间会指数增长,智能体的搜索空间也变得特别大。

对每个智能体来说,有的状态对最优策略的求解并不起作用,因此它并不需要对整个状态空间进行搜索。一个高效率的搜索可以帮助智能体缩短训练时间,但是现有的方法却没有一个通用的方法来解决这样的问题,这也是现在MARL研究中智能体数量受到限制的原因之一。

解决思路:

在训练中,共享智能体之间的经验数据等信息,通过策略蒸馏(Policy distillation)的思路充分利用并学习新的策略。

关于policy distillation,一开始提出来是为了解决单智能体-多任务强化(mutli-task reinforcement learning, MTRL)问题,论文链接: https://arxiv.org/pdf/1511.06295 。因此本文先将单任务-MARL问题看成单智能体-MTRL问题,这样就可以利用policy distillation方法来寻找最优策略了。

但是怎么理解这种假设呢?比如三个智能体A、B、C,任务是分别以最短的时间到达指定位置L1、L2、L3,这是一个单任务-MARL问题。现在将这个问题看成一个智能体A,同时具备以最短的时间到达L1、L2、L3的能力,这就是一个单智能体-MTRL问题了。

算法细节:

由于要用到policy distillation,所以本文用的是随机策略(stochastic policy)。对于连续动作问题,作者将Soft Actor-Critic算法由单智能体扩展到多智能体。同时还要将actor的输出利用softmax函数转换为概率分布的形式。

Policy Distillation: 

蒸馏策略的损失函数为

                      (1)

注意(1)式中的 都是概率分布,并不是策略本身。从replay buffer中只采样变量 ,而不采样 。这是因为replay buffer中的 可能是次优的,而通过这种方式直接从 中遍历动作空间中的所有动作,更容易找到最优动作。每次蒸馏之后,所有的智能体策略都更新为 (硬更新)。这样,智能体 和其它智能体就实现了信息的共享。

策略蒸馏的好处是,即使智能体 有的状态没被采样过,但是其它智能体采样过,那么这个状态的信息就可以通过其它智能体策略的蒸馏间接地传递到智能体 中。

Value Matching: 

光有蒸馏策略对策略进行更新还是不够的,如果策略学习加入了蒸馏环节,而值函数的学习用传统的方法,显然会产生分歧。因此,也需要对值函数进行调整。

需要指出的是,对于合作任务的同质多智能体,由于其状态空间和动作空间一致,同时共享一个reward,所以它们的最佳策略是相同的。基于这个前提,作者提出value matching的方法来缩小搜索空间。

传统的集中式训练,其值函数的输入为所有智能体的观测和动作,如 和 。并且这些输入的顺序一般是固定的,例如对状态值函数来说,就会满足 。但是根据本文的设定,即多智能体是同质的,而且共享一个reward函数,因此值函数输入的顺序是不影响输出的具体值的。

例如对于上图中的两个智能体,假设状态A( )的值函数已经学出来了为 ;状态B是状态A的对称形式, ,根据同质智能体合作任务的假设,这两个状态的值函数应该相等,即 。扩展到具有 个智能体的情况下,满足

                (2)

其中 表示 所有顺序的排列组成的集合。这样,一旦某个状态的值函数学到了,以此为监督信息,训练value-matching的评价网络,则对应的不同组合的对称状态值就都有了。Policy的Distillation和critic的value-matching,合起来就是DVM。

为了训练这个新的值函数(蒸馏值函数),本文使用的是均方误差损失函数(MSE),

.                      (3)

其中, 表示matched value function(匹配值函数)的参数。

和蒸馏策略类似,匹配值函数不需要遍历所有的状态就能表征状态空间中的知识。本文还指出,很多MARL方法使用Q值函数来作为critic,以上的方法同样适用,只需要保证状态和动作是一致的就行。

Multi-agent Soft Actor-Critic (SAC):

Actor-Critic(AC)大家都很熟悉,那什么是Soft Actor-Critic呢?

SAC最早出现在ICML2018中,论文链接: http://proceedings.mlr.press/v80/haarnoja18b/haarnoja18b.pdf

SAC不仅的优化目标不仅是最大化期望累积奖励,还要最大化信息熵(entropy),这样有利于平衡智能体的学习和探索。即使动作的选择足够随机,也能保证任务的学习。SAC的actor输出的是随机变量,这也是本文为什么选择使用SAC框架的原因。接着,作者SAC扩展到多智能体,提出MA-SAC,同时加入前面提到的DVM。

作者在文章中指出,这里使用Policy Distillation方法来训练策略网络,因此其actor网络输出的都是概率分布。对于MADDPG这样的确定性策略的算法,由于策略网络输出的是连续的动作值,因此无法计算KL损失。

本文中对于连续动作控制问题,策略函数输出的是一定均值和方差的高斯分布,然后从这个高斯分布中采样得到一个连续的动作值。

本文提出的算法流程如下:

实验环境:

总结:

本文提出的DVM方法,主要用于同质协作多智能体之间的信息共享和传递,通过另外学习一个单独的蒸馏策略和蒸馏值函数,将多智能体单任务问题看成单智能体多任务问题。作者认为这种方法可以有效降低智能体的状态搜索空间,从而加快学习速度。即使一些状态某个智能体没遇到过,只要其它智能体遇到过就行。蒸馏策略可以将其它智能体学习到的知识整合到一个策略中,从而实现知识在智能体之间的共享。而对于连续动作无法计算KL损失的问题,作者使用MA-SAC框架实现MARL,从而继续利用DVM来学习。
相似回答
大家正在搜