当前位置: 首页 > article >正文

构建由局部观测、分布式决策与全局奖励协同作用的多智能体强化学习系统

1. 问题背景与建模:从自治调度到POMDP

1.1 自治调度问题与多智能体环境

在实际应用中(例如生产调度、资源分配等),多个自治决策单元(智能体)需要在一个共享的环境中协同工作,每个智能体只能获取局部信息(例如自身状态或部分环境观测),但它们的行为会相互影响。传统的单智能体强化学习(RL)模型难以直接适用于这种场景,因此需要多智能体强化学习(MARL)的方法。

1.2 将问题转化为部分可观测马尔可夫决策过程(POMDP)

由于每个智能体无法获得全局状态信息,而只能通过局部观测 o i o_i oi 获取部分环境信息,因此整体问题可建模为部分可观测马尔可夫决策过程(POMDP)。在POMDP模型中:

  • 状态空间 S:环境的全局状态,但在实际训练和决策时并不可观测。
  • 观测空间 O i O_i Oi:每个智能体 i 能够获得的观测信息 o i ∈ O i o_i \in O_i oiOi
  • 动作空间 A i A_i Ai:每个智能体的动作集合。
  • 状态转移函数 T ( s ′ ∣ s , a ) T(s'|s, \mathbf{a}) T(ss,a):给定当前全局状态 s 以及所有智能体的联合动作 a = ( a 1 , … , a N ) \mathbf{a}=(a_1,\dots,a_N) a=(a1,,aN),环境转移到下一个状态 s’ 的概率。
  • 奖励函数 R:全局奖励信号,反映了整个系统(所有智能体协同)的表现。

这样,尽管每个智能体只能基于其局部观测做决策,但整个系统仍遵循马尔可夫性质(在状态转移和奖励上),只不过智能体的可观测性受限。


2. 智能体的策略设计与局部观测

2.1 局部观测 o i o_i oi 与策略参数化

对于每个智能体 i 来说,其基于局部观测 o i o_i oi 采用参数化策略:

π i ( o i ; θ i ) \LARGE \pi_i(o_i; \theta_i) πi(oi;θi)

其中:

  • π i \pi_i πi 表示智能体 i 的策略,通常为概率分布,给定观测 o i o_i oi 后输出在动作空间 A i A_i Ai 上各动作的选择概率。
  • θ i \theta_i θi 为策略参数,可以通过深度神经网络进行参数化表示(例如利用深度Q网络、策略梯度方法等)。

这种设计的主要意义在于:

  • 局部信息处理:智能体只依赖于自身局部信息进行决策,适应真实系统中信息不完全的情况。
  • 并行性与分布式执行:每个智能体独立决策,便于分布式系统部署。

2.2 数学建模与策略优化目标

每个智能体的目标是最大化其长期累计回报,而在协作任务中,往往设计全局奖励 RR 来驱动所有智能体朝着共同目标前进。联合策略的优化目标可写为:

  J ( θ 1 , … , θ N ) = E τ ∼ π 1 , … , π N [ ∑ t = 0 T γ t R ( s t , a t ) ] \Large\ J(\theta_1, \dots, \theta_N) = \mathbb{E}_{\tau \sim \pi_1, \dots, \pi_N}\left[ \sum_{t=0}^{T} \gamma^t R(s_t, \mathbf{a}_t) \right]  J(θ1,,θN)=Eτπ1,,πN t=0TγtR(st,at)

其中:

  • τ \tau τ 表示整个交互轨迹,
  • γ \gamma γ 为折扣因子,
  • R ( s t , a t ) R(s_t, \mathbf{a}_t) R(st,at) 是在状态 s t s_t st 下执行联合动作 a t = ( a 1 , … , a N ) \mathbf{a}_t = (a_1, \dots, a_N) at=(a1,,aN) 后获得的全局奖励。

3. 协作目标与全局奖励设计

在多智能体任务中,通常希望智能体间能够有效协作。全局奖励信号 R 的设计在协作中起到至关重要的作用:

  • 协作导向:全局奖励通常不是简单地各智能体奖励的叠加,而是根据整个系统的表现来设定,确保局部策略更新不会出现“自私”行为,而是推动系统整体最优。
  • 信用分配问题:如何将全局奖励合理地分配给各个智能体,使得每个智能体能够知道自己对全局奖励的贡献。这也是多智能体强化学习中的一个关键挑战。

常见的做法包括差分奖励、局部奖励与全局奖励的混合设计等技术,甚至引入集中式Critic(批评者)来评估各个智能体的动作对全局奖励的影响。


4. 协作策略学习方法

4.1 联合策略梯度算法

联合策略梯度方法(Joint Policy Gradient)是在联合状态-动作空间上直接对所有智能体的联合策略进行优化。其基本思想是:

∇ θ J = E τ [ ∑ t ∇ θ log ⁡ π ( a t ∣ o t ; θ )   Q ( o t , a t ) ] \Large \nabla_{\theta} J = \mathbb{E}_{\tau}\left[ \sum_{t} \nabla_{\theta} \log \pi(\mathbf{a}_t | \mathbf{o}_t; \theta) \, Q(\mathbf{o}_t, \mathbf{a}_t) \right] θJ=Eτ tθlogπ(atot;θ)Q(ot,at)

其中:

  • θ = ( θ 1 , … , θ N ) \theta = (\theta_1, \dots, \theta_N) θ=(θ1,,θN) 为所有智能体策略参数的集合,
  • π ( a t ∣ o t ; θ ) = ∏ i = 1 N π i ( a i , t ∣ o i , t ; θ i ) \pi(\mathbf{a}_t | \mathbf{o}_t; \theta) = \prod_{i=1}^{N} \pi_i(a_{i,t}| o_{i,t}; \theta_i) π(atot;θ)=i=1Nπi(ai,toi,t;θi)假设各智能体决策条件独立(在执行时是去中心化的),
  • Q ( o t , a t ) Q(\mathbf{o}_t, \mathbf{a}_t) Q(ot,at) 是联合状态-动作价值函数,可以通过集中式Critic进行估计。

这种方法的关键在于,利用梯度上升/下降方法更新参数,确保全局奖励最大化。但是,由于高维联合动作空间和局部观测的限制,直接计算联合策略梯度可能面临维数灾难和信用分配困难的问题。

4.2 集中训练分布式执行 (CTDE) 策略

CTDE方法旨在结合集中式学习与分布式执行的优势,其核心思路包括:

  • 集中训练:在训练阶段,利用所有智能体的全局信息(例如全局状态、其他智能体的观测和动作)来构造一个集中式的Critic或价值函数。这可以有效解决信用分配和联合策略估计的问题。常见算法有MADDPG(Multi-Agent Deep Deterministic Policy Gradient)、COMA(Counterfactual Multi-Agent Policy Gradients)等。

  • 分布式执行:在实际执行阶段,每个智能体只使用其局部观测和局部策略进行决策,保证系统的去中心化操作和高效性。

CTDE方法通过将集中式信息利用到训练过程中,极大地缓解了因局部信息不足而导致的学习困难,同时确保了实际系统中智能体操作的分布式特性。

数学细节:
  • 集中式Critic设计:设定联合价值函数 Q ( s , a ) Q(\mathbf{s}, \mathbf{a}) Q(s,a) 或者条件价值函数 Q i ( s , a ) Q_i(\mathbf{s}, \mathbf{a}) Qi(s,a) 来为每个智能体提供梯度信号。更新时,可以使用Bellman方程: Q ( s t , a t ) = R ( s t , a t ) + γ   E s t + 1 , a t + 1 [ Q ( s t + 1 , a t + 1 ) ] Q(\mathbf{s}_t, \mathbf{a}_t) = R(\mathbf{s}_t, \mathbf{a}_t) + \gamma \, \mathbb{E}_{\mathbf{s}_{t+1}, \mathbf{a}_{t+1}}\left[ Q(\mathbf{s}_{t+1}, \mathbf{a}_{t+1}) \right] Q(st,at)=R(st,at)+γEst+1,at+1[Q(st+1,at+1)]
  • 策略更新:利用集中式Critic,针对每个智能体 i 的策略梯度可以写成: ∇ θ i J ≈ E s , a [ ∇ θ i log ⁡ π i ( a i ∣ o i ; θ i ) ( Q i ( s , a ) − b ( o i ) ) ] \nabla_{\theta_i} J \approx \mathbb{E}_{\mathbf{s},\mathbf{a}}\left[ \nabla_{\theta_i} \log \pi_i(a_i|o_i; \theta_i) \left( Q_i(\mathbf{s}, \mathbf{a}) - b(o_i) \right) \right] θiJEs,a[θilogπi(aioi;θi)(Qi(s,a)b(oi))] 其中 b ( o i ) b(o_i) b(oi) 为基线函数(baseline),用于减少方差。这样的设计能更精确地估计单个智能体对全局奖励的贡献。

5. 算法实现与具体方法

5.1 算法选择

在具体实现中,根据问题特性和系统要求,常用的MARL算法包括:

  • MADDPG:基于确定性策略梯度的方法,每个智能体有去中心化的执行策略,但训练时使用集中式Critic。
  • COMA:利用反事实(counterfactual)基线来解决多智能体中的信用分配问题。
  • QMIX:采用混合网络结构,通过单调性约束将各智能体局部的价值函数组合成全局价值函数,适合于协作任务。

每种算法在联合策略梯度的计算、局部信息利用与全局奖励的融合上各有侧重,需要根据具体任务调研其适用性。

5.2 数学模型与实现步骤

(1)建模阶段:
  • 定义全局状态 ss、局部观测 o i o_i oi 以及动作 a i a_i ai
  • 构造环境转移概率 T ( s ′ ∣ s , a ) T(s'|s, \mathbf{a}) T(ss,a) 和奖励函数 R ( s , a ) R(s, \mathbf{a}) R(s,a)
(2)策略网络设计:
  • 为每个智能体设计基于局部观测的策略网络 π i ( o i ; θ i ) \pi_i(o_i; \theta_i) πi(oi;θi)(例如,使用卷积神经网络处理图像观测或循环神经网络处理时间序列数据)。
  • 如果使用值函数方法,还需设计局部或集中式的Critic网络 Q ( ⋅ ) Q(\cdot) Q() Q i ( ⋅ ) Q_i(\cdot) Qi()
(3)训练过程(CTDE):
  • 集中训练:在每个训练步骤中,收集所有智能体的观测、动作和全局状态信息,利用集中式Critic估计联合价值函数,并计算策略梯度。
  • 分布式执行:更新后的策略仅依赖各自的局部观测进行动作选择,确保训练与执行环境不出现信息不匹配。
(4)策略梯度更新:
  • 利用联合策略梯度公式更新每个智能体的参数,确保全局奖励最大化。具体实现时常用梯度下降/上升方法,配合经验回放(experience replay)、目标网络(target network)等技术稳定训练过程。
(5)信用分配与奖励平滑:
  • 设计合适的信用分配机制,如反事实基线或差分奖励,以降低各智能体间的竞争与干扰,提高协作效率。

6. 总结与关键技术点

  1. 模型转换:将自治调度问题转化为POMDP,是处理局部信息不全和多智能体协作的基本出发点。

  2. 局部观测与策略参数化:每个智能体基于自身局部观测 o i o_i oi 采用参数化策略 π i ( o i ; θ i ) \pi_i(o_i; \theta_i) πi(oi;θi),这是实现分布式执行的关键。

  3. 全局奖励设计:设计一个能够反映系统整体表现的全局奖励 R,并通过集中式Critic等方法解决信用分配问题,是多智能体协作的核心挑战之一。

  4. 联合策略梯度与CTDE:联合策略梯度方法结合了各个智能体的策略更新,而CTDE方法则利用集中式训练信息指导分布式执行,二者结合能够有效平衡局部信息不足与全局协作目标。

  5. 具体算法实现:例如MADDPG、COMA、QMIX等算法在不同场景下展示了各自的优势,实际应用时需要根据问题特性选择合适的算法,并针对性地设计网络结构、训练流程与超参数调节。


通过上述详细的分解,可以看到多智能体强化学习(MARL)在理论上构建了一个由局部观测、分布式决策与全局奖励协同作用的系统,而在实践中需要充分利用集中训练与分布式执行(CTDE)的策略来有效解决信息不对称和信用分配问题。这些技术和数学模型为解决自治调度、协作决策等复杂任务提供了坚实的理论基础和实施路径。


http://www.kler.cn/a/529879.html

相关文章:

  • 在GPIO控制器中,配置通用输入,读取IO口电平时,上拉和下拉起到什么作用
  • MySQL 存储函数:数据库的自定义函数
  • go-zero学习笔记(一)
  • 2025:影刀RPA使用新实践--CSDN博客下载
  • MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
  • 神经网络的数据流动过程(张量的转换和输出)
  • 吴恩达深度学习——机器学习的策略
  • 重生之我在异世界学编程之C语言:深入指针篇(上)
  • Avalonia与QtQuick的简单对比
  • [Java]多态
  • 本地Deepseek添加个人知识库
  • js对象方法大全
  • leetcode——删除链表的倒数第N个节点(java)
  • Lesson 125 Tea for two
  • Tensorflow 中的卷积神经网络(CNN)
  • 【背包问题】二维费用的背包问题
  • 力扣动态规划-18【算法学习day.112】
  • C#基础知识
  • 【C++语言】卡码网语言基础课系列----13. 链表的基础操作I
  • 7.DP算法
  • LabVIEW如何高频采集温度数据?
  • lstm预测
  • 解密高性能异步I/O:io_uring的魔力与应用
  • 理解知识蒸馏中的散度损失函数(KLDivergence/kldivloss )-以DeepSeek为例
  • scrape登录(js逆向)
  • 负载均衡器高可用部署