md_files/科研/草稿.md

6.4 KiB
Raw Blame History

以下是修改后的内容,所有公式已用 $$$ 规范包裹:


VDNValue-Decomposition Network笔记

参考你的 DQN 笔记格式,并在每一步里标出与 DQN 的主要差异


核心思想

DQN VDN
用单个深度网络近似 单智能体 的 Q-函数。 多智能体 框架下的"值分解"思想:把联合 Q 值 拆成各智能体局部 Q 值之和
$$ Q_{\text{team}}(h,a);\approx;\sum_{i=1}^{n} Q_i(h_i,a_i) $$。
目标是让一个智能体学会最优策略。 目标是让 n 个协作智能体,在只拿到 同一个团队奖赏 的前提下,仍能各自学习并在推理阶段独立运行。

好处

  1. 稳定性:通过集中式回传梯度来训练,避免了纯独立学习时的非平稳性与"懒惰智能体"现象。
  2. 可扩展执行:训练期需要集中,但执行期每个智能体只用自己的 $Q_i$,动作选择仍是局部、分布式的。
  3. 无需手工设计个体奖励VDN 直接把团队奖励拆解为梯度信号,由网络自动学习"谁贡献了多少"。

训练流程(对照 DQN粗体为新增或改动部分

1. 初始化

  1. 局部 Q 网络Online Networks

    • 每个智能体 i 初始化参数 $\theta_i$,并定义局部 Q 函数 $Q_i(h_i,a_i;\theta_i)$。
    • 可选:参数共享(所有 Q_i 共用一套 $\theta$+ 身份/角色 one-hot。
  2. 目标网络

    • 为每个智能体维护对应的 $\theta_i^{-}$,或共享式 $\theta^{-}$。
  3. 经验回放Replay Buffer

    • 存储的是联合元组
      
        (\,\mathbf h=(h_1,\dots,h_n),\; \mathbf a=(a_1,\dots,a_n),\; r,\; \mathbf h'\,)
      
      其中 r 是唯一的团队奖励。
  4. 超参数

    • 同 DQN\eta,\gamma,\epsilon,B,C 等。
    • 新增:智能体数 n、是否共享权重、是否启用通信通道等。

2. 与环境交互并存储经验

对每个时间步 $t$

步骤 与 DQN 的差异
动作选择 每个智能体独立实施 ε-greedy a_t^i = \arg\max_{a_i} Q_i(h_t^i,a_i) (或随机)。
环境反馈 环境返回单一团队奖励 r_t 与下一批局部观测 $\mathbf h_{t+1}$。
存入缓冲区 存联合元组,保证训练时能对齐多智能体的状态-动作。

3. 批量随机采样并训练

前提:缓冲区样本 ≥ $N_{\min}$。

  1. 采样小批量

    
      \{\!(\mathbf h^{(k)},\mathbf a^{(k)},r^{(k)},\mathbf h'^{(k)})\!\}_{k=1}^{B}
    
  2. 计算联合 TD 目标

    • 先用目标网络集合
      
        y^{(k)} = r^{(k)} + \gamma \max_{\mathbf a'}\sum_{i} Q_i^{-}\!\bigl(h_{i}'^{(k)},a_i';\theta_i^{-}\bigr)
      
    • 注意max 运算对 联合动作 $\mathbf a'$ 求和后再取最大;避免了枚举指数级动作的方法通常使用 分解后逐个最大化*
      
        \max_{\mathbf a'}\sum_i Q_i^{-}(\cdot)\;=\;\sum_i\max_{a_i'} Q_i^{-}(\cdot)
      
      这是 VDN 能高效扩展到多智能体的关键假设。
  3. 预测当前联合 Q 值

    
      \hat Q^{(k)} = \sum_{i} Q_i\!\bigl(h_i^{(k)},a_i^{(k)};\theta_i\bigr)
    
  4. 损失函数

    
      L = \frac1B\sum_{k=1}^{B}\bigl(y^{(k)} - \hat Q^{(k)}\bigr)^2
    
  5. 梯度更新

    • 对每个 \theta_i 反向传播同一个联合损失 L 的梯度。
    • 若共享权重,则只更新 \theta 一份。

4. 同步目标网络

  • 硬同步:每 C 次优化后令 $\theta_i^{-}!\leftarrow!\theta_i$。
  • 软更新(可选):$\theta_i^{-} \leftarrow \tau\theta_i + (1-\tau)\theta_i^{-}$。

5. 重复直到收敛

  • 同 DQN可线性或指数衰减 $\epsilon$。
  • 评估阶段,各智能体独立使用各自的 Q_i 做贪婪动作,无需中心化。

与 DQN 的关键区别速查

位置 DQN VDN
状态表示 单一 s 或历史 $h$。 局部历史向量 ${h_i}$
动作空间 单行动作 $a$。 联合动作 $\mathbf a$,但执行时每人只管自己的 $a_i$。
价值函数 $Q(s,a)$。 $Q_{\text{team}}(\mathbf h,\mathbf a)=\sum_i Q_i(h_i,a_i)$。
TD 目标 $r+\gamma\max_a Q^-(s',a)$。 对和取 TD$r+\gamma\max_{\mathbf a'}\sum_i Q_i^-(h_i',a_i')$。
损失回传 单网络。 同一联合损失回传到多网络/共享网络
执行 独立单体。 集中训练—分布执行CTDE

(可选)示例小算例

设两个智能体 A、B 在同一回合内只会得到一次共同奖励:

  • A 拾取物品得 3 分
  • B 成功送回物品得 5 分

VDN 训练后通常学到:

时刻 预测 Q_A 预测 Q_B 合成 \Sigma Q_i
A 正要拾取 ↑3.0 ≈0 ≈3
B 正要送回 ≈0 ↑5.0 ≈5
其它时刻 ≈基线 ≈基线 ≈基线

这说明网络已自动把团队奖励"归因"到对应智能体的局部价值上,而无需显式个体奖励设计。


小结

  • VDN = DQN + 值分解 + 多智能体联合 TD
  • 集中式梯度、分布式执行,天然适合合作任务。
  • 在确保分解假设(奖励/价值近似可加成立时VDN 能显著缓解联合动作维度爆炸与非平稳性问题,是协作 MARL 的入门基线之一。