文章提出了通过深度学习的方法,对代理间的通信协议进行学习的思想。从而通过代理之间的通信解决多代理强化学习问题。
We consider the problem of multiple agents sensing and acting in environments with the goal of maximising their shared utility. In these environments, agents must learn communication protocols in order to share information that is needed to solve the tasks. By embracing deep neural networks, we are able to demonstrate endto-end learning of protocols in complex environments inspired by communication riddles and multi-agent computer vision problems with partial observability. We propose two approaches for learning in these domains: Reinforced Inter-Agent Learning (RIAL) and Differentiable Inter-Agent Learning (DIAL). The former uses deep Q-learning, while the latter exploits the fact that, during learning, agents can backpropagate error derivatives through (noisy) communication channels. Hence, this approach uses centralised learning but decentralised execution. Our experiments introduce new environments for studying the learning of communication protocols and present a set of engineering innovations that are essential for success in these domains.
我们考虑了在环境中以最大化其共享效用为目标的多个代理感知和操作的问题。在这些环境中,代理必须学习通信协议,以便共享解决任务所需的信息。通过采用深度神经网络,我们能够在复杂的环境中演示协议的端到端学习,这是受到了通信谜题和具有部分可观测性的多智能体计算机视觉问题的启发。在这些领域中,我们提出了两种学习方法强化代理间学习(Reinforced Inter-Agent Learning, RIAL)和可微代理间学习(Differentiable Inter-Agent Learning, DIAL)。前者使用深度Q-learning,而后者利用了在学习过程中代理可以通过(有噪声的)通信信道反向传播错误导数的特点。因此,这个方法使用了集中学习分散执行的方式。我们的经验介绍了研究通信协议学习的新环境,并提出了一套在这些领域取得成功所必需的工程创新。
语言和交流是如何在智能主体之间产生的一直是激烈争论的话题。许多未解决的问题包括:为什么语言使用离散结构?环境扮演了什么角色?什么是天生的,什么是后天习得的?等等。近年来机器学习,尤其是深度学习的快速发展,为这场辩论打开了一扇新的大门。代理如何使用机器学习来自动发现他们需要的通信协议来协调他们的行为?如果有的话,深度学习能为这些代理人提供什么?我们能从学习交流的个体的成功或失败中得到什么启示?
这篇文章就是对这类问题的一步探索 。
文章中考虑的任务是完全协作的、部分可观察的、连续的多智能体决策问题。所有代理的共同目标是最大化折扣奖励和。因为代理无法观测到潜在的马尔科夫状态,代理能观测到与相应状态相关的局部观测。除了执行动作外,每个代理还可以通过离散的有限带宽信道与其它代理通信。由于局部可观测性和有限的信道容量,代理必须发现一个通信协议,使它们能够协调自己的行为并解决任务。
本文采取的集中学习、分散执行的框架。代理在学习期间能够进行无限制的交流,在执行阶段只能通过有限带宽的信道通信。
文章提出了两种算法来解决这个问题。第一种算法是强化代理间学习(Reinforced Inter-Agent Learning, RIAL),使用带有循环网络的DQN来解决部分可观测的问题。这种方法的一个变体被成为独立Q-learning(independent Q-learning),代理独自学习自己的网络参数,将其它代理视为环境。另一个变体是训练一个所有代理都共享参数的网络。分散执行,每个代理会因接收到不同的观测而执行不同的动作。
第二种方法是可微代理间学习(Differentiable Inter-Agent Learning, DIAL),是基于集中学习相比于仅仅的参数共享能够提供更多的机会来提升学习效果。特别是,在RIAL中代理内部是端到端可训练的,但代理之间是不可训练的,例如没有代理之间传递的梯度。第二种方法允许代理之间在集中训练期间传递实数值,因此将通信视为代理间的瓶颈连接。梯度可以通过通信信道传播,这使得整个系统是端到端可训练的。在分散执行期间,实值信息被离散化并映射为任务允许的离散的通信行为集。因为DIAL在代理之间传递梯度,这是一个内在的深度学习方法。
在多代理部分可观测环境中,需要代理之间进行通信。在本文的设置中,在每一时间步内,代理根据观测,选择环境动作 u t a u_t^a uta——对环境有直接的影响,并且选择通信动作 m t a m_t^a mta——被其它代理观测且不会对环境造成直接影响。代理之间需要共同认知到一个协议用于处理任务。
由于协议是从动作观测历史到消息序列的映射,所以协议的空间是极高维的。特别是,由于需要代理来协调消息的发送和解释,所以探索这个协议空间的难度就更大了。例如,如果一个代理向另一个代理发送有用的消息,那么只有当接收代理正确地解释并对该消息采取行动时,它才会收到正向的奖励。如果没有收到正向奖励,那么代理将会被阻止再次发送这条消息。因此,正向的回报是稀疏的,只有在发送和解释适当协调的情况下才会出现,这是很难通过随机探索发现的。
在这篇文章中提出了两种学习通信协议的方法。
强化代理间学习(Reinforced Inter-Agent Learning, RIAL)
通过DRQN输出环境动作和通信动作, Q a ( o t a , m t − 1 a ′ , h t − 1 a , u a ) Q^{a}\left(o_{t}^{a}, m_{t-1}^{a^{\prime}}, h_{t-1}^{a}, u^{a}\right) Qa(ota,mt−1a′,ht−1a,ua)为Q函数,其中 h t − 1 a h_{t-1}^a ht−1a是独立的隐藏状态, o t a o_t^a ota是观测, m t − 1 a ′ m_{t-1}^{a'} mt−1a′是来自其它代理的信息。为了简化网络结构,将网络分为了两个网络,分别用于输出环境动作 Q u a Q_u^a Qua和通信动作 Q m a Q_m^a Qma。选择器采取 ϵ − g r e e d y \epsilon-greedy ϵ−greedy策略,基于两个网络的输出选择 u t a u_t^a uta和 m t a m_t^a mta。因此网络的输出节点数量由 ∣ U ∣ ∣ M ∣ |U||M| ∣U∣∣M∣减少为 ∣ U ∣ + ∣ M ∣ |U|+|M| ∣U∣+∣M∣。
使用DQN来训练 Q u Q_u Qu和 Q m Q_m Qm。DQN在此算法中有两个改变以使用多代理环境。第一个改变是取消了经验回放,因为多代理学习策略会使环境不稳定,过去的经验可能没有用处,会对训练造成误导。第二个改变是将每个代理的动作 u u u和消息 m m m作为下一时间步的输入。因为这个方法将每个代理视为一个独立的网络,所以学习过程也不是集中的。代理在训练和执行阶段是一样的。图一(a)是算法中的信息流动和决策流程。
算法使用了参数共享。通过参数共享可以减少参数数量,从而加快训练。Q网络中丰富的表示也可以加速学习过程并能有助于对每个代理区别化。在参数共享下,代理学习两个Q函数 Q u ( o t a , m t − 1 a ′ , h t − 1 a , u t − 1 a , m t − 1 a , a , u t a ) Q_{u}\left(o_{t}^{a}, m_{t-1}^{a^{\prime}}, h_{t-1}^{a}, u_{t-1}^{a}, m_{t-1}^{a}, a, u_{t}^{a}\right) Qu(ota,mt−1a′,ht−1a,ut−1a,mt−1a,a,uta)和 Q m ( o t a , m t − 1 a ′ , h t − 1 a , u t − 1 a , m t − 1 a , a , u t a ) Q_{m}\left(o_{t}^{a}, m_{t-1}^{a^{\prime}}, h_{t-1}^{a}, u_{t-1}^{a}, m_{t-1}^{a}, a, u_{t}^{a}\right) Qm(ota,mt−1a′,ht−1a,ut−1a,mt−1a,a,uta)。在执行期间每个代理使用一个已学习网络的副本,发展自己的隐藏状态,选择自己的动作,并且仅通过通信信道来与其它代理通信。
可微代理间学习(Differentiable Inter-Agent Learning, DIAL)
RIAL能够共享参数,但没有利用集中学习的优势。代理之间对于通信动作没有反馈。为了解决这个限制,文章提出了可微代理间学习。DIAL的主要内在思想是将集中学习和Q网络的结合可以使代理间能够共享参数以及通过通信信道传送梯度。因此,DIAL可以代理间的端到端的训练。从而是代理之间有丰富的反馈。通过训练来找到高效的协议。
DIAL在集中训练期间的通信被一个代理网络输出到另一个代理网络输入之间的直接连接代替。因此,虽然代理的动作被限定为离散的,但在训练期间可以传输实值价值。从而能够进行代理间的反向传播。
文中网络被称为C-Net,网络输出两种不同类型的值,如图一(b)所示。分别是 Q ( ⋅ ) Q(\cdot) Q(⋅),环境动作的Q值,输入到动作选择器中。以及 m t a m_t^a mta发送给其它代理的实值向量消息,不通过动作选择器,而是在离散/正则单元(discretise/regularise unit, D R U ( m t a ) DRU(m_t^a) DRU(mta))中进行处理。DRU在集中训练时进行正则化 DRU ( m t a ) = Logistic ( N ( m t a , σ ) ) \operatorname{DRU}\left(m_{t}^{a}\right)=\operatorname{Logistic}\left(\mathcal{N}\left(m_{t}^{a}, \sigma\right)\right) DRU(mta)=Logistic(N(mta,σ)), δ \delta δ是标准的噪声偏差,在分散执行的过程中进行离散化处理 D R U ( m t a ) = 1 { m t a > 0 } DRU\left(m_{t}^{a}\right)=\mathbb{1}\left\{m_{t}^{a}>0\right\} DRU(mta)=1{mta>0}。在DIAL中,在代理间传递梯度能够比RIAL中直接计算DQN的损失提供更丰富的训练信号。DQN误差中只有选定的动作才是非零值,而梯度是一个 ∣ m ∣ |m| ∣m∣维向量,从而能够包含更多的信息。同时它允许网络直接调整消息来最小化下游的DQN损失,减少学习到好的协议所需要的训练时间。
DIAL可以用于处理连续消息空间。因为DIAL学习的二进制编码而不是one-hot编码,所以可以扩展到大的离散消息空间。
文章提出了学习通信协议的一个成功的技术。文章对于通过探索代理间的通信协议来解决多代理强化学习问题的思想非常有价值。并且通过通信动作的方式在代理间进行通信。在DIAL中,将代理之间的通信动作的连接,通过网络架构的修改,在集中训练期间能够传递实值向量,从而能够传递梯度,为通信协议的学习提供了更丰富的信息。这也就形成了多代理间端到端的训练方式,通过深度学习的方法学习到了多代理间的通信协议,从而使代理之间通过通信协议进行交流,形成协同动作来处理问题。