VDN
用于协作式多智能体学习的价值分解网络
摘要
我们研究了具有单个联合奖励信号的协作式多智能体强化学习问题。这类学习问题很困难,因为通常有很大的动作和观察组合空间。在完全集中式和去中心化的方法中,我们发现了虚假奖励的问题和一种我们称之为 “惰性代理” 问题的现象,这是由于部分可观察性而出现的。我们通过使用一种新的价值分解网络架构来训练单个代理来解决这些问题,该架构学习将团队价值函数分解为代理价值函数。我们在一系列部分可观察的多智能体领域进行了实验评估,并表明学习这种价值分解会带来卓越的结果,特别是当与权重共享、角色信息和信息通道相结合时。
引言
我们考虑合作式多智能体强化学习(MARL)问题[,, , ],其中多个学习智能体需要共同优化随时间累积的单一奖励信号——即团队奖励。每个智能体只能访问自身的“局部”观测信息,并负责从其自身的动作集中选择动作。协作式MARL问题出现在诸如协调自动驾驶车辆和/或交通信号系统、优化由多个交互组件组成的工厂生产效率等应用中。更广泛地说,随着AI智能体的普及,它们必须学会协作以实现共同目标。
尽管某些实际应用可能需要局部自治,但原则上合作式MARL问题可以通过集中式方法处理,即将问题简化为单智能体强化学习(RL),通过拼接观测空间和组合动作空间进行学习。然而,我们证明集中式方法在相对简单的协作式MARL问题上始终失败。我们设计了一个简单实验:集中式方法会学习到低效的策略,仅有一个智能体活跃,而另一个变得“懒惰”。这是因为当一个智能体学习到有用策略时,第二个智能体因探索行为可能妨碍前者并导致团队奖励下降,从而被抑制学习。
另一种方法是训练独立学习者以优化团队奖励。然而,由于每个智能体的环境动态会随着其他智能体行为的变化而改变,每个智能体实际上面临非稳态学习问题[]。此外,由于单个智能体的视角是部分可观测的,它们可能接收到来自队友(未被观测的)行为的虚假奖励信号。这种无法解释自身观测奖励的缺陷使得朴素独立RL通常无法成功:例如[]表明,独立Q学习器无法区分队友的探索与环境本身的随机性,甚至无法解决一个看似简单的2智能体、无状态、3×3动作的问题。而一般的Dec-POMDP问题已被证明是难解的[, ]。尽管本文聚焦于双智能体协作,但需注意独立学习者和集中式方法的问题会随智能体数量增加而恶化,因为此时大多数奖励与个体无关,而集中式方法的动作空间会指数级膨胀。
改进独立学习者的方法之一是设计更直接关联个体观测的局部奖励函数。然而,即使在单智能体场景中,奖励塑形也极为困难,仅有一小类塑形奖励函数能保证与真实目标的最优性一致[, ]。本文旨在探索更通用的自主解决方案,即通过学习分解团队价值函数。
我们提出一种新型的可学习加性价值分解方法,通过对个体智能体的价值函数进行线性组合。具体而言,价值分解网络(VDN)旨在通过反向传播团队Q值的梯度到表示个体价值函数的深度神经网络中,从而从团队奖励信号中学习最优的线性价值分解。这种加性分解的动机是避免独立学习者中出现的虚假奖励信号。每个智能体隐式学习到的价值函数仅依赖于局部观测,因此更易训练。该方法还缓解了[]中强调的独立学习的协调问题,因为它在训练时以集中方式学习,而部署时智能体可独立运行。
此外,我们结合权重共享、角色信息和信息通道等近期被证明可提升样本效率与降低内存需求的技术[, , ],对所提出的智能体进行增强。但本文的核心比较集中在三种架构:基于个体的价值分解、独立学习者和集中式方法。我们在一系列新颖的双智能体协作场景中对这些技术的组合进行了实验与基准测试。结果表明,价值分解方法在性能上显著优于集中式或完全独立的学习者,且结合附加技术后,其表现更是大幅领先。
2.3 多智能体强化学习
如果我们将({h} := (h^1, h^2, …, hd))定义为智能体历史记录的元组(其中每个(hi)表示第(i)个智能体的历史),则联合策略通常是一个映射(: ^d (d))。此映射基于所有智能体的联合历史({h}),输出联合动作空间(d)上的概率分布。
不过,我们特别关注一类特殊的策略:对于任意历史({h}),其输出的分布(({h}))在(()^d)中具有独立分量。即,每个智能体的动作分布仅依赖于联合历史({h}),但各智能体的动作选择在概率上是相互独立的。因此,这类策略可表示为(: ^d ()^d)。
唯一的例外是使用最朴素的集中式智能体(即联合动作学习者)时,此时策略直接操作组合动作空间((d)),输出的分布属于((d))。
核心概念解释
智能体历史元组:
用({h} := (h^1, h^2, …, hd))表示所有智能体的历史记录集合,其中(hi)是第(i)个智能体的历史(包含其观测和动作序列)。联合策略的一般形式:
联合策略通常定义为映射(: ^d (d)),即基于所有智能体的联合历史({h}),输出一个联合动作空间(d)上的概率分布。- (^d):所有智能体历史记录的联合空间。
- ((^d)):所有可能的联合动作的概率分布集合。
- (^d):所有智能体历史记录的联合空间。
独立分量的联合策略:
作者特别考虑一种特殊形式:对于任何联合历史({h}),策略输出的分布(({h}))在(()^d)中具有独立分量。这意味着:- 每个智能体的动作选择仅依赖于联合历史({h}),但动作之间的概率分布是独立的。
- 数学上可分解为(({h}) = (^1({h}), ^2({h}), …,
d({h}))),其中每个(i({h})
())表示第(i)个智能体的局部策略。
- 优势:避免了组合动作空间的复杂性,同时仍能利用全局历史信息进行决策。
- 每个智能体的动作选择仅依赖于联合历史({h}),但动作之间的概率分布是独立的。
例外:集中式联合动作学习者:
当使用“最朴素的集中式智能体”时,策略直接操作组合动作空间(combinatorial action space),即联合动作学习者(joint action learners)。- 此时,策略输出的分布(({h}))属于((^d)),需考虑所有智能体动作的联合分布,而非独立分量。
- 问题:动作空间维度随智能体数量(d)指数增长((^d)),导致计算和训练复杂度极高。
- 此时,策略输出的分布(({h}))属于((^d)),需考虑所有智能体动作的联合分布,而非独立分量。
关键区别
策略类型 | 输入 | 输出分布 | 特点 |
---|---|---|---|
独立分量联合策略 | 联合历史({h}) | (()^d) | 动作分布独立,利用全局信息但保持动作解耦,复杂度线性增长((d ||))。 |
集中式联合动作学习者 | 联合历史({h}) | ((^d)) | 动作分布耦合,需建模联合动作,复杂度指数增长((||^d)),难以扩展。 |
实际意义
- 独立分量策略:适用于需要平衡全局协调与计算效率的场景,例如价值分解网络(VDN)等算法,通过共享观测历史但独立选择动作,缓解组合爆炸问题。
- 集中式联合动作学习者:尽管理论上能直接优化全局最优策略,但因动作空间过大,仅适用于智能体数量极少或动作空间极小的任务,实际应用受限。
这一区分为后续讨论集中式方法在复杂任务中的失败(如动作空间爆炸、探索效率低)以及独立学习者或价值分解方法的优势奠定了基础。
三、深度强化学习(Deep-RL)架构用于合作型多智能体强化学习(Coop-MARL)
减少可学习参数数量的一个方法是在代理之间共享某些网络权重。权重共享还引发了代理不变性的概念,这对于避免懒惰代理问题是有用的。
接下来,提到“权重共享还产生了智能体不变性的概念,这对避免懒惰智能体问题很有用”。“智能体不变性”应该是指通过共享权重,不同智能体在功能上变得相似或一致,从而避免某些智能体变得不活跃(即“懒惰智能体问题”)。
VDN代码实现
1 | VDN类由五个函数组成:init, learn, get_inputs, get_q_values, init_hidden, save_model; |