群体智能与智能网联:原理、算法与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.1 直接通信

直接通信是采用智能体进行彼此共享信息的外部通信方法,通过特定的介质(如文本、声音或光)以共同制定的规则或特定的协议直接在智能体之间实现信息的传递。通信协议指定通信过程和构造、编码消息的格式。直接通信的唯一目的是传递信息,如言语行为或无线电信息的传输。更具体地说,直接通信是针对特定接收者的通信,可以是一对一的,也可以是一对多的[2]。基于特定的协议,消息交换可以是私有的(即在两个或选定的组成员之间)、本地的(即在邻近的邻居之间)或全局的(即在所有成员之间)。

这种直接通信的方式可以使信息、数据在智能体之间高效、快速地进行交换和传递,但同时也会受到吞吐量、延迟、局部性、智能体类别(同构/异构)等条件的约束。在群体智能理论中,具有相同的动力学模型/内部架构的是同构智能体,反之则是异构的。内部架构是指本地目标、传感器能力、内部状态和可能的动作等。同构智能体之间的区别在于其位置和动作作用的部分环境,例如,在经典的捕食者—猎物场景中,捕食者之间是同构的。

常见的直接通信例子包括消息传递和黑板发布/修改消息,如图2-1所示。

图2-1 多智能体通信方法

1.消息传递

以消息对话形式在智能体之间直接传递信息,但当智能体数目很大时,通信传输开销很高,并且需要考虑实现的复杂性。它包括点对点方式、广播方式。

❑ 点对点方式。通信双方建立直接的通信链路,发送方必须知道系统中接收方的指定位置。以多智能体机器人系统为例,一般采用TCP/IP保证信息包安全到达,实现端到端的确认。

❑ 广播方式。该方式在分布式系统中使用广泛,智能体一次向所有智能体广播消息,而不是发送到特定地址。但消息广播需要大量的带宽,并在实践中产生额外的通信延迟。可以将智能体空间结构化为组,利用组结构的形式进行广播消息传递。每个智能体都至少是一个组的成员,智能体广播一条消息,发送到组内的多个成员,实现分组广播消息传递。此外,并非每个智能体都能提供有用的信息,冗余信息甚至可能损害多智能体学习过程。在针对特定接收对象的广播消息中,消息会被所有智能体接收到。但若消息中的部分内容是针对某个特定智能体的,则该部分内容会附加对应标记;若该智能体发现这个标记,则予以处理,否则不予理会。

例2.1.1 I2C(Individually Inferred Communication)算法[3]采用点对点方式进行通信,在每个时间步上,先验网络b(·)将智能体获得的局部观测oi和与之进行通信智能体的ID(j)作为输入,输出信念(Belief)值表明是否与智能体j进行通信。基于此,智能体i通过通信信道向智能体j发送一个请求,智能体j使用消息mj响应,消息内容可以是局部观测的编码。智能体i将接收到的消息送入消息编码网络ei(·)来产生编码信息ci,最终策略网络输出动作的分布πiai|ci,oi)。

例2.1.2 TarMAC(Targeted Multi-Agent Communication)算法[4]采用广播方式将消息发送给所有智能体,使用基于签名的软注意力机制允许智能体对接收到的无关紧要的消息“视而不见”。发送的每条消息均由两部分组成:用于编码接收者特性的签名和包含实际消息的值。接收端的每个智能体都根据其隐藏状态预测一个询问向量,与所有N个消息的签名进行点乘,采用softmax函数获得每条接收消息的注意力权重αji。在这个框架中,虽然所有智能体之间还是全连接的,但是每个智能体在处理信息时,都会考虑对于不同智能体信息的权重,即注意力机制。消息发送方和接收方有相似的签名和问询向量时,注意力权重αji高代表智能体i对智能体j发送的消息较为关注。因此,在智能体i收集到的信息中,智能体j的信息所占比重大。

2.黑板发布/修改消息

黑板是通信对话参与者都可以访问的共享数据结构,各个智能体通过对黑板内容的直接读取和写入来实现智能体之间的通信和数据共享。多智能体系统中的黑板本身也可以看作一个智能体,其他智能体生成包含有关其内部状态和周围环境信息等的消息,按照相应的协议以显式格式与黑板进行通信。这种方式的特点是集中数据共享,但当系统中的智能体数量较多时,共享数据存储区中的数据量会呈指数增长,各个智能体在访问黑板时要从大量信息中搜索,并且共享数据结构,难以灵活使用异构数据源。

例2.1.3 文献[5]对捕食者—猎物(Predator and Prey, PP)场景使用共享黑板作为通信方法,所有捕食者智能体同时与一个黑板通信。每次迭代时,采用遗传算法的每个捕食者智能体从二进制符号{0, 1}中选择长度为l的字符串作为通信符号放置在黑板上,每个智能体都可以读取黑板上所有智能体的通信字符串,以决定下一步动作和要向黑板发送什么内容。这里的黑板可以看作一组状态节点,整个多智能体系统相当于一个包含状态节点可能状态集合的有限状态机(Finite State Machine, FSM),具体来说是Mealy型状态机,而它的输出取决于当前状态和输入。

文献[5]讨论了在30×30的“离散网格(Grid)”世界中多个合作的捕食者共同捕获随机移动猎物的场景。在该仿真场景中,不允许两个捕食者智能体同时占据同一单元。如果两个智能体想要移动到相同的单元,就会被阻塞并保持在当前的位置。单个智能体通常有自己的内部状态,其他智能体是无法观察到的。另外,每个捕食者的观察范围都是有限的,既看不到彼此,也不知道彼此的位置,因此产生了隐藏状态问题,从而可以验证通信的需求。捕食者智能体所获得的感官信息包括猎物的活动范围和方位,并且可以访问黑板内容;所有与黑板通信的捕食者都可以提供信息。黑板上的符号数为mlm是捕食者智能体的数量,l是长度为l的字符串。黑板上所有符号的串联表示整个多智能体系统的状态,通过与黑板通信消除每个智能体观察到的环境状态的分歧。

每个追逐场景的开始,捕食者和猎物被随机放置在不同的单元内,4个捕食者智能体可以同时上、下、左、右移动,而不是轮流移动,一直持续到捕获到猎物为止,或者5000个时间步都没有捕获则结束。捕食者在捕获猎物时会得到奖励,因此性能指标是捕获猎物所花费的时间步数。重复1000次仿真,在无通信的情况下,捕食者捕获随机猎物平均需要110个时间步,而使用黑板进行通信交换信息后则可以在不到70个时间步里快速捕获猎物,显著提高了捕获性能。

3.消息内容

一旦在智能体之间建立通信连接,智能体应决定将哪些信息共享。由于多智能体系统通常假设环境是部分可观测性的,所以传输局部观察到的信息对于协调来说至关重要,而如何编码本地信息则成为消息传输的关键内容之一。

例2.1.4 对于合作关系的智能体,文献[6]中表明可以对以下三种消息内容编码提高团队整体性能:

❑ 共享即时的传感器信息来告知他人当前状态,如瞬时获得的感知、奖励等。

❑ 以分幕的形式共享有关自己过去的经历而其他智能体可能还没有经历过的信息,如<状态,动作,奖励>序列。

❑ 共享与其当前策略相关的知识,如强化学习智能体共享策略<状态,动作,效用(Utility)>。可以细分为两种情况:

- 所有智能体使用相同的策略,每一个智能体都独立的更新全局策略。

- 以一定的频率交换各自的策略,每一个智能体独立更新自己的策略,周期性地进行策略平均共享来相互补充。交流的频率越高,训练速度越快。

围绕例2.1.3中的捕食者—猎物追逐场景进行仿真,结果表明,对于n个独立的智能体分别训练来说,n个通信合作的智能体捕获猎物所需要的步数更少,可达到更好的学习效果。

4.通信限制

已有许多研究强化学习中多个智能体之间使用的通信协议和语言,但是智能体之间的交互是有成本的,通信带宽和容量也是有限的。带宽指通信链路上每秒最大所能传送的数据量(比特)。针对实际通信应用中会受到带宽的限制问题,一些工作通过防止建立不必要的通信连接或传输更简洁的消息来降低通信开销。

例2.1.5 SchedNet算法[7]针对有限带宽,使用基于权重的调度机制从n个智能体中决定K个智能体同时广播它们的消息。由神经网络直接将局部观测结果编码成消息向量:oimi,调度向量ci选择性地将K个智能体的编码消息通过无线信道广播给所有智能体,例如m=[010, 111, 101],c=[110],mc=010111,从而解决通信资源有限以及智能体竞争通信的问题。同样在例2.1.3的捕食者—猎物场景中测试算法,性能指标是捕获猎物所需的时间步数,算法性能优于无通信的IDQN算法和COMA算法,并且比RR(Round Robin,通信系统中所有智能体按顺序调度的一种规范调度方法)调度性能提高了43%,证明这种智能调度方法能更好地完成任务。

例2.1.6 VBC(Variance Based Control)算法[8]侧重于减少智能体之间传输的信息来降低通信开销。具体而言,VBC算法在智能体消息编码器输出的方差上引入了一个额外的损失项,从而有效提取和利用消息中有意义的部分。在每个时间步,智能体i的局部动作生成器先计算基于局部观测oi的动作价值函数,当动作价值中的最大值和第二大值之间的差异大于置信阈值δ1时才会广播通信请求。在接收到通信请求时,智能体j的消息编码器输出,其方差大于阈值δ2才会响应请求。消息编码器用多层感知机(Multi-Layer Perception, MLP)进行消息编码,包括两个全连接层和一个Leaky ReLU层。消息编码器的输入是另一个智能体i局部动作生成器的中间变量ci,输出fenc(ci)。通过只在智能体之间交换有用的信息,VBC算法减少通信开销。文献[8]从理论上证明了算法的稳定性。在星际争霸6个任务中,VBC算法比其他基准算法获得的胜率高20%,通信开销比SchedNet算法低2~10倍。在合作导航、捕食者—猎物场景中进行测试,也获得了更低的通信开销。