147 lines
10 KiB
Markdown
147 lines
10 KiB
Markdown
# 第六章:算法设计 (Proposed Algorithm: Co-MADDPG)
|
||
|
||
在前述章节中,我们将语义通信环境下的资源竞争与协作建模为 Stackelberg 博弈,并从理论上证明了均衡点的存在性。为了在高度动态且状态空间连续的无线信道环境中实时求解该博弈的最优策略,本章提出了一种基于协作-竞争(Coopetitive)机制的改进型多智能体深度确定性策略梯度算法,即 Co-MADDPG (Coopetitive Multi-Agent Deep Deterministic Policy Gradient)。
|
||
|
||
## A. MARL问题转化 (MDP Formulation)
|
||
|
||
为了使深度强化学习框架能够处理 Stackelberg 博弈,首先需要将博弈过程转化为去中心化部分可观测马尔可夫决策过程 (Dec-POMDP)。在本场景中,Leader 智能体(语义代理 $S$)与 Follower 智能体(传统代理 $B$)共同构成智能体集合 $\mathcal{I} = \{S, B\}$。
|
||
|
||
### 1) 状态空间 (State Space)
|
||
系统的全局状态定义为 $\mathbf{s}(t) = [\mathbf{o}_S(t), \mathbf{o}_B(t)]$。对于每个智能体 $i \in \mathcal{I}$,其局部观测向量 $\mathbf{o}_i(t) \in \mathbb{R}^{N+4}$ 包含以下维度:
|
||
- 信道增益矢量 $[h_{i,1}, \ldots, h_{i,N}]$:描述当前时刻智能体 $i$ 在 $N$ 个子载波上的信道衰落情况。
|
||
- 平均服务质量 $\overline{\text{QoE}}_i$:过去一段滑动窗口内的 QoE 统计值。
|
||
- 个性化参数 $\text{param}_i$:对于语义 Agent 为内容敏感度,对于传统 Agent 为业务优先级。
|
||
- 资源分配状态 $N_i^{\text{alloc}}$:当前已占用的子载波数量。
|
||
- 负载情况 $\text{load}_i$:智能体待传输的数据量。
|
||
|
||
### 2) 动作空间 (Action Space)
|
||
智能体 $i$ 在时刻 $t$ 的动作定义为三维连续向量 $\mathbf{a}_i = [n_{\text{sub}}, p_{\text{frac}}, m_{\text{param}}] \in [0,1]^3$:
|
||
- $n_{\text{sub}}$:请求分配的子载波比例(相对于总可用子载波)。
|
||
- $p_{\text{frac}}$:发射功率比例(相对于最大功率限制)。
|
||
- $m_{\text{param}}$:传输模式调节。对于语义 Agent,此项对应压缩比 $\rho$;对于传统 Agent,此项对应调制阶数的连续映射。
|
||
|
||
### 3) 奖励函数 (Reward Function)
|
||
这是 Co-MADDPG 的核心创新设计。为了在不同系统状态下灵活调整智能体的行为逻辑,我们引入了动态权重 $\lambda(t)$ 来平衡协作与竞争:
|
||
$$r_i(t) = \lambda(t) \cdot r_i^{\text{coop}}(t) + (1 - \lambda(t)) \cdot r_i^{\text{comp}}(t)$$
|
||
|
||
其中,各部分奖励定义如下:
|
||
- **协作项**:$r_i^{\text{coop}} = 0.5 \cdot \text{QoE}_i + 0.3 \cdot \text{QoE}_j + 0.2 \cdot \text{QoE}_{\text{sys}}$。该项旨在鼓励智能体在资源稀缺时考虑他人利益与系统全局吞吐量。
|
||
- **竞争项**:$r_i^{\text{comp}} = 0.8 \cdot \text{QoE}_i + 0.2 \cdot \text{QoE}_{\text{sys}}$。该项侧重于最大化智能体自身的效用。
|
||
- **动态调节因子**:$\lambda(t) = \sigma(\beta \cdot (\text{QoE}_{\text{sys}}(t) - Q_{\text{th}}))$。当系统总 QoE 低于阈值 $Q_{\text{th}}$ 时,$\lambda$ 增大,驱动智能体转向协作模式;反之则回归竞争模式。
|
||
|
||
## B. 网络架构 (Network Architecture)
|
||
|
||
Co-MADDPG 采用“中心化训练,去中心化执行”(CTDE) 架构。每个智能体维护一套独立的 Actor 和 Critic 网络。
|
||
|
||
### 1) Actor 网络
|
||
Actor 网络 $\mu_i(\mathbf{o}_i; \theta_i^{\mu})$ 负责从局部观测映射到具体动作。为了平衡表示能力与实时性,其结构设计如下:
|
||
- **输入层**:接收 $N+4$ 维局部观测。
|
||
- **隐藏层**:采用三层全连接网络 FC(256, ReLU) $\to$ FC(256, ReLU) $\to$ FC(128, ReLU)。
|
||
- **输出层**:3 维连续输出,使用 Tanh 激活函数将值域限制在 $[-1, 1]$,随后线性映射至 $[0, 1]$ 以符合物理参数范围。
|
||
|
||
### 2) Critic 网络
|
||
Critic 网络 $Q_i(\mathbf{o}_1, \mathbf{o}_2, \mathbf{a}_1, \mathbf{a}_2; \theta_i^Q)$ 仅在训练阶段使用,负责评估当前联合状态与联合动作的 Q 值。
|
||
- **输入层**:拼接所有智能体的观测与动作,输入维度为 $2(N+4)+6$。
|
||
- **隐藏层**:采用更深的网络结构 FC(512, ReLU) $\to$ FC(512, ReLU) $\to$ FC(256, ReLU) 以捕捉智能体间的策略交互。
|
||
- **输出层**:标量 Q 值,用于指导 Actor 网络的参数更新。
|
||
|
||
> **Remark 1**: CTDE 架构的关键在于 Critic 网络可以利用训练时的全局信息来缓解非平稳环境问题,而执行时智能体仅依赖本地观测 $o_i$,保证了算法在实际基站侧部署的低延迟要求。
|
||
|
||
## C. Stackelberg 训练机制 (Stackelberg Training Mechanism)
|
||
|
||
标准 MADDPG 算法中,所有智能体的策略通常是同步更新的。然而,在 Stackelberg 博弈中,Leader 的动作会引发 Follower 的连锁反应。为了体现这种层级依从关系,Co-MADDPG 引入了序贯更新机制。
|
||
|
||
### 1) Phase 1: Follower 更新
|
||
首先固定 Leader 的策略 $\mu_S$,对 Follower(Agent $B$)的网络进行训练。Follower 的目标是针对当前的 Leader 策略给出最优响应。
|
||
- **Critic 损失函数**:
|
||
$$\mathcal{L}(\theta_B^Q) = \mathbb{E}_{\mathcal{D}} \left[ (Q_B(\mathbf{s}, \mathbf{a}) - y_B)^2 \right], \quad y_B = r_B + \gamma Q_B^{\text{target}}(\mathbf{s}', \mathbf{a}') |_{\mathbf{a}_S' = \mu_S'(o_S')}$$
|
||
- **Actor 梯度**:通过链式法则在 $Q_B$ 上传导:
|
||
$$\nabla_{\theta_B^{\mu}} J_B \approx \mathbb{E}_{\mathcal{D}} \left[ \nabla_{\mathbf{a}_B} Q_B(\mathbf{s}, \mathbf{a}) |_{\mathbf{a}_B = \mu_B(o_B)} \cdot \nabla_{\theta_B^{\mu}} \mu_B(o_B) \right]$$
|
||
|
||
### 2) Phase 2: Leader 更新
|
||
在 Follower 更新完成后,Leader 利用最新的 Follower 策略 $\mu_B'$ 来估计其动作对未来的影响。
|
||
- **策略感知更新**:Leader 的 Critic 网络在评估动作效用时,会显式考虑 Follower 的最优响应。
|
||
$$Q_S(\mathbf{o}_S, \mathbf{o}_B, \mathbf{a}_S, \mu_B'(\mathbf{o}_B; \theta_B^{\mu}))$$
|
||
这种更新方式能够显著减少训练过程中的策略震荡,使算法更快收敛至第五章证明的博弈均衡点。
|
||
|
||
## D. 完整算法伪代码 (Algorithm Pseudocode)
|
||
|
||
以下是 Co-MADDPG 算法的详细实现流程。
|
||
|
||
```markdown
|
||
Algorithm 1: Co-MADDPG for Coopetitive Resource Allocation
|
||
-----------------------------------------------------------
|
||
Input: 无线环境参数, 网络超参数, λ切换灵敏度 β, QoE阈值 Q_th
|
||
Output: 训练后的策略网络 μ_S, μ_B
|
||
|
||
1: 初始化各智能体的 Actor/Critic 网络 θ_i^μ, θ_i^Q 及其目标网络 θ_i^μ', θ_i^Q'
|
||
2: 初始化经验回放缓冲区 D,设置容量为 10^5
|
||
3: for episode = 1 to E_max do
|
||
4: 重置环境状态,获取初始观测 o_S, o_B
|
||
5: for t = 1 to T_max do
|
||
6: // 动作选择:在确定性策略基础上增加 OU 噪声以保证探索空间
|
||
7: a_S = μ_S(o_S; θ_S^μ) + N_S(t)
|
||
8: a_B = μ_B(o_B; θ_B^μ) + N_B(t)
|
||
9: // 执行动作并与环境交互
|
||
10: 在系统模型中执行 (a_S, a_B),观测下一时刻状态 o_S', o_B' 并获得即时反馈
|
||
11: // 动态奖励计算
|
||
12: 计算系统总 QoE: QoE_sys(t)
|
||
13: 计算混合权重: λ(t) = sigmoid(β * (QoE_sys(t) - Q_th))
|
||
14: 根据公式(1)计算混合奖励 r_S(t), r_B(t)
|
||
15: // 存储经验轨迹
|
||
16: D ← D ∪ {(o_S, o_B, a_S, a_B, r_S, r_B, o_S', o_B')}
|
||
17: // 分阶段层级更新 (每 T_update 步执行一次)
|
||
18: if |D| ≥ batch_size and t mod T_update == 0 then
|
||
19: 从缓冲区 D 中随机采样 mini-batch 经验
|
||
20: // Phase 1: 优先更新 Follower (Agent B)
|
||
21: 更新 Critic_B:最小化 TD 误差 (Q_B - y_B)^2
|
||
22: 更新 Actor_B:根据 Critic_B 的输出进行策略梯度提升
|
||
23: // Phase 2: 更新 Leader (Agent S)
|
||
24: 基于更新后的 Follower 策略 μ_B,更新 Critic_S
|
||
25: 根据策略梯度更新 Actor_S 的权重 θ_S^μ
|
||
26: // 目标网络参数软更新
|
||
27: θ_i_target ← τ·θ_i + (1-τ)·θ_i_target, ∀i ∈ {S, B}
|
||
28: end if
|
||
29: 状态更迭: o_S ← o_S', o_B ← o_B'
|
||
30: end for
|
||
31: end for
|
||
```
|
||
|
||
## E. 复杂度分析 (Complexity Analysis)
|
||
|
||
### 1) 时间复杂度
|
||
在每一步训练更新中,复杂度主要集中在神经网络的前向与反向传播。对于具有 $d_o$ 维输入和 $d_h$ 维隐藏层的网络,单次梯度下降的时间复杂度约为 $O(d_o \cdot d_h + d_h^2)$。由于 Co-MADDPG 采用了层级更新,其单步计算开销略高于标准 MADDPG,但由于智能体数量较少(2 个),整体开销在毫秒级,能够满足 5G/6G 物理层时隙的控制要求。
|
||
|
||
### 2) 空间复杂度
|
||
空间开销由经验回放缓冲区与网络参数共同决定。
|
||
- **缓冲区**:存储规模为 $O(|\mathcal{D}| \cdot (2d_o + 2d_a + 2))$。
|
||
- **网络参数**:对于全连接结构,参数量约为 $O(d_o d_h + d_h^2)$。
|
||
在典型超参数设置下(见下表),总内存占用通常不超过 2GB,适合在边缘计算节点部署。
|
||
|
||
### 3) 与标准 MADDPG 的对比
|
||
Co-MADDPG 与基准算法的主要区别在于:
|
||
- **奖励结构的动态性**:通过 $\lambda$ 实现了协作与竞争的无缝切换。
|
||
- **更新顺序的逻辑性**:Stackelberg 层级更新显式利用了博弈的主从结构信息。
|
||
- **收敛速度**:得益于序贯更新对搜索空间的约束,预计在 3000 到 5000 个回合内即可实现收敛,比完全去中心化的独立学习 (IQL) 快约 40%。
|
||
|
||
## F. 超参数汇总表
|
||
|
||
下表总结了本算法在后续仿真实验中所采用的各项关键超参数。
|
||
|
||
| 超参数名称 | 符号 | 取值 |
|
||
| :--- | :---: | :--- |
|
||
| 最大训练回合数 | $E_{\max}$ | 5000 |
|
||
| 每回合最大步数 | $T_{\max}$ | 200 |
|
||
| 经验回放批量大小 | $B$ | 256 |
|
||
| 经验缓冲区容量 | $|\mathcal{D}|$ | $10^5$ |
|
||
| Actor 学习率 | $\alpha_{\mu}$ | $10^{-4}$ |
|
||
| Critic 学习率 | $\alpha_Q$ | $3 \times 10^{-4}$ |
|
||
| 折扣因子 | $\gamma$ | 0.95 |
|
||
| 目标网络软更新系数 | $\tau$ | 0.01 |
|
||
| OU 噪声初始标准差 | $\sigma_0$ | 0.2 |
|
||
| OU 噪声衰减下限 | $\sigma_{\min}$ | 0.01 |
|
||
| λ 调节系数 | $\beta$ | 5 |
|
||
| 系统 QoE 切换阈值 | $Q_{\text{th}}$ | 0.6 |
|
||
| 更新周期 | $T_{\text{update}}$ | 5 |
|
||
|
||
本章设计的 Co-MADDPG 算法通过对 Stackelberg 博弈逻辑的深度集成,为语义通信环境下的复杂资源分配提供了高效的求解方案。在下一章中,我们将通过大量对比实验验证该算法在系统 QoE 提升及能效平衡方面的优越性。 |