时间:2024-05-04
樊敏风,洪居亭
(四川大学电子信息学院,成都610065)
沟通、交流是智能的一个基本方面,它可以使得智能体能够作为一个群体而不是个体的集合。在现实世界中,交流对于执行复杂的任务至关重要,因为在现实世界中,每个参与者的能力和世界的可见度都是有限的。在多智能体场景中,智能体如果要进行有效地协同、合作,它们就需要学会沟通、交流,来达成一致的协议。交流的目的之一是智能体之间共享部分观察,相邻的智能体可以更容易地相互理解;其次,相邻智能体之间可以更容易地完成协作决策;最后,所有智能体共享一个策略网络,这就意味着相邻智能体可能有类似的行为,但交流可以增加其策略的多样性。在任何部分可观察的环境中,智能体之间的交流对于协调每个智能体的行为至关重要,而控制每个智能体的模型通常是通过强化学习来实现的[2]。多个智能体在通过各自的观察之后,可以相互合作,经过不断地向环境学习,逐渐接近最终的集体目标。多个智能体在环境中感知和行动问题的目的是最大限度地利用它们的共享效用,在这些环境中要想解决任务所需的共享信息问题,智能体不仅要具备交流能力,还必须发现,学会通信协议。
智能体如何能利用深度强化学习的方法来自动发现通信协议,学会它们需要的通信协议来协调它们的行为呢?本文针对这些问题提出一些方案:首先,提出了一组需要交流的多智能体基准测试任务(开关谜语游戏[3]);然后针对这些任务提出了DIAL(Differentiable Inter-Agent Learning)算法;最后,分析该算法是如何为这些智能体学习或者不学习通信协议的。本文考虑的基准测试任务是完全合作的、部分可观察的多智能体决策问题。所有的智能体只有一个共同的目标,那就是最大限度地获得同样折扣的奖励总和。虽然没有一个智能体能够观察潜在的马尔科夫状态,但是每一个智能体都能接收到一个与该状态相关的私有观察,除了采取影响环境的行为之外,每个智能体还可以通过离散的有限带宽信道与其他的智能体进行交流。由于部分可观察性和有限的信道容量,智能体必须发现一种通信协议,使它们能够协调自己的行为并完成任务。
本文给出的多智能体基准测试任务是开关谜语游戏,该游戏具体描述如下:
一百名囚犯新被送进监狱。典狱长告诉他们,从明天开始,他们每个人都将被安置在一个孤立的牢房里,无法相互交流。每天,监狱长都会随机选择一名囚犯,并将他安置在一个无人的院子里,院子里面只有一个带有开关的灯泡。囚犯将能够观察灯泡的当前状态。如果他愿意,他可以通过院子里的开关开灯关灯。他还可以选择告诉典狱长,他认为所有囚犯都在某一时间访问了该院子。如果他说的是正确的,那么所有囚犯都会被释放,但如果是错误的,所有囚犯都被处决。典狱长离开了,囚犯们聚在一起讨论他们的命运。他们能否就保证他们自由的协议达成一致的协议呢?
在上面的形式中,如果所有的智能体都已经到过院子,则任务成功完成,奖励为1,否则为-1。所有智能体的目标就是最大限度地获得折扣奖励,即智能体达到的最优性能。智能体学习效率越高,训练的成功率越大,最优性能就越好。开关谜语游戏带来了重大的交流与学习协议挑战,因为智能体之间只有通过交流来达成一致的通信协议才能完成这个任务。
为了完成上面的基准测试任务,可以使用DIAL 方法来训练智能体。DIAL 允许在集中学习期间,智能体之间可以传递实值消息,从而将交流行为视为智能体之间的瓶颈连接。因为可以通过通信信道推动梯度,从而产生一个系统,该系统在智能体之间也是可以端到端训练的。在分散执行期间[4-5],实值信息被离散化,并映射到任务允许的一组离散交流操作中,由于DIAL传递梯度是从一个智能体传递到另一个智能体当中去的,所有这是一种内在的深度学习的方法。其次,DIAL的端到端训练是跨智能体的,也就是在不同智能体间进行端到端训练。让梯度从一个智能体流向另一个智能体,给它们提供更丰富的反馈,然后通过试错来减少所需的学习量,并简化有效协议的发现。DIAL 是最早提出的通过反向传播与深度Q 网络相结合进行学习交流的方法,在每个时间步骤中,智能体生成的信息作为下一个时间步骤中其他智能体的输入,然后梯度再通过通信信道从一个智能体反向流到另一个智能体,带来丰富的反馈来训练智能体有效地学会交流。
在集中学习期间,一个智能体网络的输出与另一个智能体的网络输入之间的直接连接取代了交流行为。因此,虽然任务限制了对离散信息的交流,但是在学习过程中,智能体可以自由地互相发送真正有价值的信息。由于这些信息的功能与其他任何网络的激活功能相同,梯度可以沿信道传递回来,从而允许在智能体之间进行端到端的反向传播。每个智能体由一个循环神经网络组成,该网络输出单个智能体的Q 值,以及为每个时间步骤传输的信息,然后将生成的信息传输到其他智能体,作为下一时间步骤中其他智能体的输入。接收到的信息将嵌入智能体当前的观察和最后的行为,作为全局信息的表示。
DIAL 中的神经网络输出两种不同类型的值,如图1 所示:(a)环境行为的Q 值Q(∙)被馈送给行为选择器。(b)传递给其他智能体的实值信息绕过行为选择器,由DRU 来处理(DRU())。在集中学习过程中,DRU 规范了它。
图1 DIAL—交流
该过程的表达式为:
同时,在分散执行过程中DRU 使它离散化,其中σ是添加到信道中的噪声。图1 显示了梯度是如何在DIAL 中流动的,DIAL 中Q的梯度链是基于DQN 损失的,但是DIAL 中m的梯度项是从信息的接收者向发送者反向传递的误差。使用这种跨智能体梯度来进行训练比RIAL 中Qm的DQN 损失提供了更加丰富的训练信号。
在图1 中,智能体1 在t时刻输出的信息是绕过行为选择器由DRU 处理,并作为连续值传递到下一个Q 神经网络,也就是t+1 时刻的智能体2 中。与此同时,梯度在智能体之间流动,从接收方向流向发送方。同时,所有智能体梯度的更新可以通过整个网络进行高效地传播。
虽然DQN 的误差仅对所选的信息为非零,但是传入的梯度是一个 |m|维的,可包含更多信息的向量,这里的 |m|是m的长度。它还允许网络来直接调整信息,以最大限度地减少下游的DQN 损失,减少对试错探索的需要来学习良好的协议。由于梯度在智能体之间流动,DIAL 还可以优化信息的内容,使之与随后多次执行的奖励相关。
当我们把我们的分析局限于离散信息时,DIAL 自然而然地处理连续的协议,因为它们是差异训练的。同时DIAL 也自然而然地处理连续的信息空间,因为它们在集中学习期间无论如何都会被使用,DIAL 也可以自然而然地扩展到大的离散信息空间,因为它学习的是二进制编码。
DIAL 方法虽然可以很好地训练多智能学会交流,但是,DIAL 在信息交流架构上采用的是单向环状的交流架构,而且它的动态规划能力不是很好。在DIAL中,神经网络中的信息传递方式只能按照固有的智能体编号进行传递:在1,2,3,…i,…3,2,1,的顺序中往复循环[6]。当智能体的个数增多时,遍历一次信息所需要的时间比较长,同时,在这段时间内,如果智能体的状态出现大幅度地改变,网络就会失去实时性,从而失效了,这样就无法高效地训练多智能体,这是因为智能体的交流方式是单向环状交流方式。另外,如果单向环状网络上的某个点出现了问题,交流序列在后面的智能体将永远无法将信息传递给交流序列在前面的智能体,这样就会导致智能体之间的交流彻底失效。同时,DIAL 使得智能体之间的连接结构比较不稳定,不能很好地处理复杂的动态环境问题,也承受不了网络架构上的破坏。总而言之,DIAL 虽然可以很好地解决多智能体交流问题,但是在信息交流速度方面以及处理复杂的动态环境问题方面,表现依然不是很好。所以本文在下面的内容中通过借鉴BRNN[7]的思想对DIAL 进行了改进,得出了双向DIAL。
由于DIAL 在处理多智能体交流问题中仍然有些不足,例如交流信息的速度不是很快,智能体之间的连接结构不是很稳定,不能很好地处理复杂的动态环境较问题,也无法承受神经网络架构上的破坏。针对这些问题本章提出了用正反两个方向的连接方式来对智能体进行连接的方法。这个方法就是在原DIAL 的基础上将单向的信息传递方式变成双向的信息传递,使得单向DIAL 变成双向DIAL。这样智能体就可以进行双向信息交流,交流信息的速度就会变快,智能体之间的连接结构也更加稳定,在处理复杂的动态环境问题上表现得更好。
DIAL 是在允许智能体之间传递信息的部分可观察设置中引入的。智能体也被称为独立学习者,也可以找到学习独立智能体的想法[8]。在DIAL 中,每个智能体由一个循环神经网络组成,该网络输出单个智能体的Q 值并为每个时间步骤传送一条消息。然后将生成的信息转移到其他智能体,并在下一个时间步中用作其他智能体的输入。接收到的信息将嵌入智能体当前的观察结果和最后一个行动,作为全局信息的表示形式。独立智能体之间的沟通是一种方法,可以缓解智能体间臭名昭著的非平稳问题,因为梯度至少会在智能体之间流动。对于双向DIAL 的学习,可以直观地考虑通过受控智能体的数量的网络,然后通过时间反向传播来计算反向梯度,这些梯度同时传递给每个智能体的策略函数和Q 函数,这些梯度来自所有智能体的行为。换句话说,所有智能体奖励的梯度首先被反向传递来影响每个智能体的行为,同时这个智能体产生的梯度被进一步传递回来更新参数。
图2 显示了双向DIAL 的交流原理。在该图中,智能体1 在t时刻输出的信息绕过行为选择器由DRU 处理,处理之后在t+1 时刻传递给智能体2。智能体2 输出的信息m不仅经由DRU 处理之后传递给了后面智能体3,同时也传递给了前面的智能体1。从信息流动方向来看,是双向流动的。这也说明了智能体2 的输入由智能体1 的输出和智能体3(图中未标出)的输出共同组成的。而梯度还是从后一个智能体反向流向前一个智能体,还是单向流动的。
图2 双向DIAL—交流
从图2 中可以还看出双向DIAL 可以使用向前传递和向后传递的所有可用的输入信息进行训练,这也说明了在训练的时候双向DIAL 可以用与单向DIAL基本相同的方法进行训练。
本次仿真实验使用的是ε=0.5 的贪婪策略,折扣因子γ=1,每训练100 次目标网络重置一次,神经网络优化器选择了RMSProp 优化器,动量为0.95,学习率为5×10-4。
图3 是3 个智能体20 次实验结果的指数加权平均值得出来的。从图3 中可以看出,训练开始时DIAL的最优标准化奖励要高于双向DIAL。当训练到500次左右时,双向DIAL 的最优标准化奖励开始反超DIAL,并在后面的训练过程始终保持着领先。
图4 是4 个智能体5 次实验结果的指数加权平均值得出来的。从图4 中可以看出,当训练到2000 次左右时,双向DIAL 开始优于DIAL,并在后面的训练过程中始终保持着领先。图3 和图4 证明了双向DIAL 在一定程度上确实可以提高训练的速度及成功率,在性能上更优于DIAL。
图3 智能体的个数n=3
图4 智能体的个数n=4
本文针对在DIAL 方法存在的不足,即单向信息传递方式使得智能体之间的信息交流速度不是很快,学习效率不高。同时单向连接方式使得智能体之间的连接结构比较不稳定,不能很好地处理复杂的动态环境问题,也承受不了网络架构上的破坏,这样会导致训练的成功率不是很高。提出了引入BRNN 的思想将单向信息传递方式变成正反方向的双向信息传递方式,智能体之间的连接方式也才从单向连接变成了正反方向的双向连接,于是DIAL 就变成了双向DIAL。最后是通过实验证明了双向DIAL 的性能确实比DIAL 的性能更好,因为双向DIAL 进一步提高了训练的速度及成功率。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!