【论文阅读笔记】GlobeDiff:用扩散模型从局部观测生成全局状态,破解多智能体部分可观测难题

ICLR 2026 poster

GlobeDiff: State Diffusion Process for Partial Observability in Multi-Agent Systemopenreview: https://openreview.net/forum?id=96g2BRsYZXarXiv: https://arxiv.org/abs/2602.15776

在多智能体强化学习(MARL)中,部分可观性(Partial Observability, PO) 是一个长期存在的难题。每个智能体只能看到局部信息,却需要基于此做出全局协调的决策。现有的方法(如信念状态估计或通信)往往难以准确还原全局状态,容易出现“模式坍塌”(Mode Collapse),即把多种可能的全局状态平均成一个模糊的状态,导致决策失误。

本文介绍了 GlobeDiff,一种基于条件扩散模型(Conditional Diffusion Model) 的全局状态推断算法。它的核心思想是将状态推断建模为一个生成过程,通过引入潜在变量 z z z 来解决局部观测到全局状态的“一对多”映射歧义。理论证明和实验表明,GlobeDiff 不仅能准确推断全局状态,还能显著提升多智能体协作任务的性能。

文章目录

1. 研究背景与问题

1.1 多智能体部分可观马尔可夫决策过程 (Dec-POMDP)

在完全可观测的多智能体系统中,每个智能体都能看到环境的完整状态,问题可以建模为 Markov 决策过程(MDP)。但现实场景往往是部分可观测的,因此我们通常使用 Decentralized Partially Observable Markov Decision Process(Dec‑POMDP) 来建模。一个 Dec‑POMDP 由以下要素组成:

  • 全局状态集合 $ \mathcal{S} $;
  • $ n $ 个智能体,每个智能体有动作空间 $ \mathcal{A} $;
  • 联合动作 $ \mathbf{a} = (a_1,\dots,a_n) $ 导致状态转移 $ \mathcal{P}(s’ \mid s,\mathbf{a}) $;
  • 所有智能体共享一个奖励函数 $ \mathcal{R}(s,\mathbf{a}) $;
  • 每个智能体 $ i $ 根据观测函数 $ \mathcal{U}(s,\mathbf{a}) $ 获得局部观测 $ o_i \in \mathcal{O} $;
  • 折扣因子 $ \gamma $。

智能体的目标是学习联合策略 $ \pi = (\pi_1,\dots,\pi_n) $ 最大化累计折扣奖励。在部分可观测下,智能体 i i i 只能看到 o i o_i oi​,而不知道真实的全局状态 s s s。每个智能体只能基于自己的局部观测历史 $ \tau_i^t = (o_i^1, a_i^1, \dots, o_i^t) $ 做决策。

1.2 核心难点:一对多映射歧义

部分可观性的核心困难在于歧义性(Ambiguity)。单个智能体的局部观测 x x x 可能对应多个截然不同的全局状态 s s s。这是一个典型的一对多映射(One-to-Many Mapping) 问题。

现有的解决方法主要有两类,但都有局限性:

  1. 信念状态估计(Belief State Estimation):使用 RNN 或 Transformer 整合历史观测。缺点是误差会随时间累积,且判别式模型倾向于输出单一的最可能状态,导致模式坍塌。它无法表达“这里有多种可能性”的不确定性。
  2. 显式通信(Inter-agent Communication):智能体之间交换信息。缺点是通信成本高,且协议设计复杂,在严重部分可观环境下消息聚合可能不可靠。

传统的处理方法(如 RNN 信念估计)试图学习一个确定性映射 $ x \mapsto \hat{s} $,这本质上是将多模态分布压缩成一个点,容易造成模式坍缩,即生成的全局状态要么是多个可能状态的“平均”(失去物理意义),要么随机选中一个可能而忽略其他。这样的推断结果对于后续策略学习显然是不利的。

GlobeDiff 的动机:既然局部观测对应的是全局状态的分布而不是单点,我们应该使用生成模型(Generative Model) 来学习这个条件分布 p ( s ∣ x ) p(s|x) p(s∣x),而不是用判别模型去预测一个点估计。扩散模型因其强大的分布建模能力,成为了理想的选择。

1.3 核心贡献

针对上述问题,GlobeDiff 做出了以下贡献:

  1. 重新定义问题:明确指出部分可观测的核心是一对多映射,并指出现有判别式方法的局限性。
  2. 提出生成式框架:首次将条件扩散模型引入多智能体全局状态推断,通过引入潜在变量 $ z $ 显式建模多模态分布,从根本上避免模式坍缩。
  3. 理论保证:证明了在单模态和多模态条件下,GlobeDiff 的估计误差均可被有界控制。
  4. 实验验证:在修改后的 SMAC 环境(SMAC‑v1/v2 PO)上,GlobeDiff 显著超越多种基线,并能直观展示高质量的状态重建。

2. GlobeDiff 方法详解

GlobeDiff 的核心是将全局状态推断 formulize 为一个条件扩散过程。为了解决一对多映射问题,作者引入了一个关键设计:潜在变量 z z z

2.1 引入潜在变量 $ z $ 解决一对多映射

如果直接学习条件分布 $ p(s \mid x) $,模型需要将同一个 $ x $ 映射到多个不同的 $ s $,这极易导致模式坍缩,模型可能会学习到这些 s s s 的平均值(模糊状态)。为了解决这个问题,GlobeDiff 引入了一个潜在变量 $ z $,其作用相当于一个“模式选择器”。模型被分解为:
p θ , ϕ ( s ∣ x ) = ∫ p θ ( s ∣ x , z ) p ϕ ( z ∣ x ) d z . (3) p_{\theta,\phi}(s \mid x) = \int p_\theta(s \mid x, z) \, p_\phi(z \mid x) \, dz. \tag{3} pθ,ϕ​(s∣x)=∫pθ​(s∣x,z)pϕ​(z∣x)dz.(3)
现在,给定 $ x $ 和一个具体的 $ z $,生成 $ s $ 变成了一个一对一的任务,因为 $ z $ 提供了足够的信息来指明应该对应哪个模式。然而,在推断时我们只有 $ x $,没有 $ z $,那该怎么办?

  • 训练时:我们同时拥有 $ x $ 和真实的 $ s $,因此可以训练一个后验网络 $ q_\psi(z \mid x, s) $ 来捕捉理想情况下应该用哪个 $ z $ 来生成 $ s $。
  • 推断时:我们训练一个先验网络 $ p_\phi(z \mid x) $,仅用 $ x $ 预测 $ z $ 的分布。这样,在推断时就可以先从 $ p_\phi(z \mid x) $ 采样 $ z $,再送入条件扩散模型 $ p_\theta(s \mid x, z) $ 得到全局状态。

这种结构类似于条件变分自编码器(CVAE)。通过最大化对数似然的证据下界(ELBO):
log ⁡ p θ , ϕ ( s ∣ x ) ≥ E q ψ [ log ⁡ p θ ( s ∣ x , z ) ] − K L ( q ψ ( z ∣ x , s ) ∥ p ϕ ( z ∣ x ) ) . (4) \log p_{\theta,\phi}(s \mid x) \ge \mathbb{E}_{q_\psi}[\log p_\theta(s \mid x, z)] - \mathrm{KL}\big( q_\psi(z \mid x, s) \,\|\, p_\phi(z \mid x) \big). \tag{4} logpθ,ϕ​(s∣x)≥Eqψ​​[logpθ​(s∣x,z)]−KL(qψ​(z∣x,s)∥pϕ​(z∣x)).(4)
因此,训练目标包含两项:

  • 让 $ p_\theta(s \mid x, z) $ 能准确重建 $ s $;
  • 让先验 $ p_\phi(z \mid x) $ 接近后验 $ q_\psi(z \mid x, s) $。

2.2 条件扩散模型 $ p_\theta(s \mid x, z) $

GlobeDiff 使用扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM)来参数化 $ p_\theta(s \mid x, z) $。扩散模型包含两个过程:

前向过程(加噪)

逐步向真实状态 $ s^0 $ 添加高斯噪声,得到一系列噪声状态 $ s^1, s^2, \dots, s^K $:
q ( s k ∣ s k − 1 ) = N ( s k ; 1 − β k s k − 1 , β k I ) , (5) q(s^k \mid s^{k-1}) = \mathcal{N}\big( s^k; \sqrt{1-\beta^k} s^{k-1}, \beta^k \mathbf{I} \big), \tag{5} q(sk∣sk−1)=N(sk;1−βk​sk−1,βkI),(5)
其中 $ \beta^k $ 是预定义的噪声方差(通常随 $ k $ 增大而增大)。利用重参数化技巧,可以直接从 $ s^0 $ 计算任意 $ s^k $:
s k = α ˉ k s 0 + 1 − α ˉ k ϵ , ϵ ∼ N ( 0 , I ) , (6) s^k = \sqrt{\bar{\alpha}^k} s^0 + \sqrt{1 - \bar{\alpha}^k} \, \epsilon,\quad \epsilon \sim \mathcal{N}(\mathbf{0},\mathbf{I}), \tag{6} sk=αˉk​s0+1−αˉk​ϵ,ϵ∼N(0,I),(6)
这里 $ \alpha^k = 1 - \beta^k , , , \bar{\alpha}^k = \prod_{i=1}^k \alpha^i $。

反向过程(去噪)

反向过程从纯噪声 $ s^K \sim \mathcal{N}(\mathbf{0},\mathbf{I}) $ 开始,逐步去噪恢复出 $ s^0 $。条件扩散模型将这个过程参数化为:
p θ ( s 0 : K ∣ x , z ) = N ( s K ; 0 , I ) ∏ k = 1 K p θ ( s k − 1 ∣ s k , x , z ) . (7) p_\theta(s^{0:K} \mid x, z) = \mathcal{N}(s^K; \mathbf{0},\mathbf{I}) \prod_{k=1}^K p_\theta(s^{k-1} \mid s^k, x, z). \tag{7} pθ​(s0:K∣x,z)=N(sK;0,I)k=1∏K​pθ​(sk−1∣sk,x,z).(7)
通常将 $ p_\theta(s^{k-1} \mid s^k, x, z) $ 建模为高斯分布,其均值由神经网络 $ \epsilon_\theta(s^k, x, z, k) $ 预测的噪声决定:
μ θ ( s k , x , z , k ) = 1 α k ( s k − β k 1 − α ˉ k ϵ θ ( s k , x , z , k ) ) , (8) \mu_\theta(s^k, x, z, k) = \frac{1}{\sqrt{\alpha^k}} \left( s^k - \frac{\beta^k}{\sqrt{1 - \bar{\alpha}^k}} \, \epsilon_\theta(s^k, x, z, k) \right), \tag{8} μθ​(sk,x,z,k)=αk​1​(sk−1−αˉk​βk​ϵθ​(sk,x,z,k)),(8)
方差固定为 $ \beta^k \mathbf{I} $。从而采样公式为:
s k − 1 = 1 α k ( s k − β k 1 − α ˉ k ϵ θ ( s k , x , z , k ) ) + β k ϵ , ϵ ∼ N ( 0 , I ) . (9) s^{k-1} = \frac{1}{\sqrt{\alpha^k}} \left( s^k - \frac{\beta^k}{\sqrt{1 - \bar{\alpha}^k}} \epsilon_\theta(s^k, x, z, k) \right) + \sqrt{\beta^k} \, \epsilon,\quad \epsilon \sim \mathcal{N}(\mathbf{0},\mathbf{I}). \tag{9} sk−1=αk​1​(sk−1−αˉk​βk​ϵθ​(sk,x,z,k))+βk​ϵ,ϵ∼N(0,I).(9)

2.3 训练目标

训练难点:在推断时,我们只有 x x x,没有 z z z。但在训练时,我们有真实状态 s s s。

解决方案

  1. 训练一个后验网络 q ψ ( z ∣ x , s ) q_\psi(z | x, s) qψ​(z∣x,s),利用真实状态 s s s 来学习理想的 z z z。
  2. 训练一个先验网络 p ϕ ( z ∣ x ) p_\phi(z | x) pϕ​(z∣x),仅利用 x x x 来预测 z z z。
  3. 通过最小化两者之间的 KL 散度,使得推断时的先验 p ϕ p_\phi pϕ​ 接近训练时的后验 q ψ q_\psi qψ​。

总损失函数
基于变分下界(ELBO)推导,GlobeDiff 的训练损失为:
L ( θ , ϕ , ψ ) = E k , ϵ , ( s , x ) , z ∼ q ψ [ ∥ ϵ − ϵ θ ( α ˉ k s + 1 − α ˉ k ϵ , x , z , k ) ∥ 2 ] + β K L K L ( q ψ ( z ∣ x , s ) ∥ p ϕ ( z ∣ x ) ) . (10) \mathcal{L}(\theta,\phi,\psi) = \mathbb{E}_{k,\epsilon,(s,x),z\sim q_\psi} \left[ \big\| \epsilon - \epsilon_\theta\big( \sqrt{\bar{\alpha}^k} s + \sqrt{1-\bar{\alpha}^k}\epsilon, x, z, k \big) \big\|^2 \right] + \beta_{\mathrm{KL}} \, \mathrm{KL}\big( q_\psi(z \mid x,s) \,\|\, p_\phi(z \mid x) \big). \tag{10} L(θ,ϕ,ψ)=Ek,ϵ,(s,x),z∼qψ​​[​ϵ−ϵθ​(αˉk​s+1−αˉk​ϵ,x,z,k)​2]+βKL​KL(qψ​(z∣x,s)∥pϕ​(z∣x)).(10)

  • 第一项是标准的扩散模型去噪损失,保证能还原状态。
  • 第二项是 KL 散度约束,保证先验网络 p ϕ p_\phi pϕ​ 能预测出与后验网络一致的 z z z。

2.4 训练与推断过程

训练阶段,GlobeDiff 利用离线数据或在线收集的轨迹,$ (s, x) $,通过最小化式 (10) 更新 $ \theta, \phi, \psi $,学习一个条件扩散模型 $ p_\theta(s \mid x) $,其中 $ x $ 是辅助局部观测(下文解释)。

推断阶段,每个智能体根据当前 $ x $ 生成全局状态 $ \hat{s} $,然后基于 $ \hat{s} $ 做出决策($ a_i = \pi_i(\cdot \mid \hat{s}) $)。整个过程不需要任何全局信息,符合 CTDE(集中训练、分散执行)范式。

推断过程(Inference) 具体如下:

  1. 智能体获取局部观测 x x x。
  2. 通过先验网络采样 z ∼ p ϕ ( z ∣ x ) z \sim p_\phi(z | x) z∼pϕ​(z∣x)。
  3. 初始化 s K ∼ N ( 0 , I ) s_K \sim \mathcal{N}(0, I) sK​∼N(0,I)。
  4. 执行 K K K 步去噪采样,得到推断的全局状态 s ^ = s 0 \hat{s} = s_0 s^=s0​。
  5. 智能体基于 s ^ \hat{s} s^ 执行动作 a i = π ϑ i ( ⋅ ∣ s ^ ) a_i = \pi_{\vartheta_i}(\cdot | \hat{s}) ai​=πϑi​​(⋅∣s^)。

2.5 辅助观测的构造

论文考虑了两种场景来构造辅助观测 $ x $:

  • 场景一:观测信息较丰富:用单个智能体最近 $ m $ 步的历史观测构成 $ x $:
    x t = { o t − m i , o t − m + 1 i , … , o t i } . (1) x_t = \{ o_{t-m}^i, o_{t-m+1}^i, \dots, o_t^i \}. \tag{1} xt​={ot−mi​,ot−m+1i​,…,oti​}.(1)
    这适用于每个智能体自身已能积累较多信息的情况。
  • 场景二:观测信息非常有限:允许智能体之间通信,将当前时刻所有智能体的观测拼接起来:
    x t = { o t 1 , o t 2 , … , o t n } . (2) x_t = \{ o_t^1, o_t^2, \dots, o_t^n \}. \tag{2} xt​={ot1​,ot2​,…,otn​}.(2)
    此时 $ x $ 包含了全体的瞬时观测,但仍不等于全局状态,因为观测可能丢失部分属性(如敌方血量、兵种等)。

3. 理论分析:误差边界

论文给出了两个重要的理论结果(定理1和定理2),证明在合理假设下,GlobeDiff 的估计误差可以被控制。

证明细节请参考论文附录,这里我们只需理解:GlobeDiff 的理论保证了即使在复杂的一对多映射下,其推断结果仍然具有高保真度。

3.1 单样本期望误差界 (Theorem 1)

假设扩散噪声预测误差有界(MSE ≤ δ 2 \leq \delta^2 ≤δ2),且先验对齐误差有界(KL ≤ ε K L \leq \varepsilon_{KL} ≤εKL​)。对于生成的样本 s ^ \hat{s} s^ 和真实样本 s s s,期望平方误差满足:
E [ ∥ s ^ − s ∥ 2 ] ≤ 2 W 2 2 ( p θ , ϕ ( s ∣ x ) , p ( s ∣ x ) ) + 4 Var ( s ∣ x ) \mathbb{E}[\|\hat{s} - s\|^2] \leq 2 W_2^2(p_{\theta, \phi}(s|x), p(s|x)) + 4 \text{Var}(s|x) E[∥s^−s∥2]≤2W22​(pθ,ϕ​(s∣x),p(s∣x))+4Var(s∣x)

  • W 2 W_2 W2​ 是 Wasserstein-2 距离,衡量生成分布与真实分布的差异。
  • Var ( s ∣ x ) \text{Var}(s|x) Var(s∣x) 是给定观测下的状态条件方差(即环境本身的不确定性)。

解释:误差主要由两部分组成:模型分布与真实分布的距离,以及环境本身固有的不确定性。模型无法消除环境固有的不确定性,但可以将分布距离最小化。

3.2 多模态误差界 (Theorem 2)

针对本文重点解决的多模态情况(即 p ( s ∣ x ) p(s|x) p(s∣x) 有多个峰值),假设真实分布是 N N N 个高斯模式的混合:
p ( s ∣ x ) = ∑ i = 1 N w i N ( s ; μ i ( x ) , Σ i ( x ) ) p(s|x) = \sum_{i=1}^N w_i \mathcal{N}(s; \mu_i(x), \Sigma_i(x)) p(s∣x)=i=1∑N​wi​N(s;μi​(x),Σi​(x))
若模式之间分离度足够大(距离 D D D 足够远),则生成的样本 s ^ \hat{s} s^ 至少会落在某一个真实模式中心 μ j ( x ) \mu_j(x) μj​(x) 的附近,误差满足:
E [ ∥ s ^ − μ j ( x ) ∥ 2 ] ≤ C 1 K δ 2 + C 2 ε K L + 2 max ⁡ i Tr ( Σ i ( x ) ) + O ( e − D 2 / ( 8 σ max ⁡ 2 ) ) \mathbb{E}[\|\hat{s} - \mu_j(x)\|^2] \leq C_1 K \delta^2 + C_2 \varepsilon_{KL} + 2 \max_i \text{Tr}(\Sigma_i(x)) + O(e^{-D^2/(8\sigma^2_{\max})}) E[∥s^−μj​(x)∥2]≤C1​Kδ2+C2​εKL​+2imax​Tr(Σi​(x))+O(e−D2/(8σmax2​))
解释:这个定理证明了即使存在多模态歧义,GlobeDiff 生成的状态也不会乱跑,而是会收敛到某一个合理的真实状态模式中心附近,且误差有界。这保证了模型能正确捕获多模态特性,而不是在模态间“和稀泥”。误差项分别对应扩散步数误差、先验对齐误差、模式内方差以及模式间分离度带来的指数级小误差。

4. 实验场景与结果

4.1 环境与设置

实验在 SMAC(StarCraft Multi-Agent Challenge)及其变体上进行。作者发现原始 SMAC 的局部观测信息量过大,即使将视野缩小到 3,标准 MARL 算法 MAPPO 的性能下降也非常有限(仅 0.03 的胜率下降),这说明原始环境不适合研究部分可观测性。因此,他们修改了环境,移除局部观测中的敌方单位类型和生命值,使得观测与全局状态之间的映射变得更模糊。修改后的环境称为 SMAC‑v1 (PO)SMAC‑v2 (PO)

实验中,对于 SMAC‑v1 (PO),辅助观测采用单智能体历史轨迹(式 (1));对于 SMAC‑v2 (PO),辅助观测采用所有智能体的瞬时观测(式 (2))。所有结果基于三次随机种子取平均。

  • SMAC-v1(PO):基于单个智能体的历史轨迹构建辅助观测 x t = { o t − m , . . . , o t } x_t = \{o_{t-m}, ..., o_t\} xt​={ot−m​,...,ot​}。
  • SMAC-v2(PO):环境随机性更强(随机阵容、随机出生点),允许智能体间通信,辅助观测构建为联合观测 x t = { o t 1 , . . . , o t n } x_t = \{o^1_t, ..., o^n_t\} xt​={ot1​,...,otn​}。

4.2 基线方法

  • LBS(Learned Belief Search):学习自回归信念模型,用 RNN 编码观测历史。
  • Dynamic Belief:用变分推断预测其他智能体的动态信念。
  • CommFormer:学习动态通信图,基于注意力传递消息。
  • MAPPO (VAE):用条件 VAE 替换 GlobeDiff。
  • MAPPO (MLP):用 MLP 直接回归全局状态。
  • MAPPO (Joint):将联合观测直接作为策略输入(无生成模型)。

4.3 主要实验结果

Q1:GlobeDiff 能准确推断全局状态吗?

通过 t-SNE 可视化全局状态空间,GlobeDiff 推断出的状态分布结构(Voronoi 多边形形状)与真实状态高度相似,且随着训练进行,相似度不断提高,说明 GlobeDiff 确实学到了高保真的条件分布。

Q2:用 GlobeDiff 生成的全局状态能提升 MARL 性能吗?

在 SMAC‑v1 (PO) 和 SMAC‑v2 (PO) 上,GlobeDiff 在所有地图上均显著超过 LBS、Dynamic Belief、CommFormer 等基线,尤其在超难地图(如 6h_vs_8z)上优势明显。这证明精确的全局状态推断对策略学习至关重要。

Q3:GlobeDiff 优于其他生成模型吗?

将 GlobeDiff 与 VAE、MLP、直接使用联合观测的 MAPPO 对比,结果显示,VAE 和 MLP 几乎没有带来性能提升,说明它们无法有效处理一对多映射;而直接使用联合观测甚至可能引入冗余信息,导致性能下降。GlobeDiff 的扩散模型凭借强大的表达能力和多模态建模,取得了最佳效果。

4.4 消融与可视化

  • 先验网络的作用:移除先验网络约束(GlobeDiff w/o p)后,性能下降。证明了对齐 p ( z ∣ x ) p(z|x) p(z∣x) 和 q ( z ∣ x , s ) q(z|x,s) q(z∣x,s) 对于推断阶段至关重要。
  • 超参数鲁棒性:扩散步数 K K K 增加能提高推断精度,但模型参数量(残差块数量)对性能影响较小,说明不需要极大的模型即可实现准确推断。
  • 参数量对比:即使将 Vanilla MAPPO 的参数量增加到与 GlobeDiff 相当(Vanilla MAPPO Large),其性能仍不如 GlobeDiff。这说明性能提升来自于生成式建模架构的优势,而非单纯的容量增加。

5. 总结与展望

GlobeDiff 首次将条件扩散模型引入多智能体全局状态推断,通过引入潜在变量 $ z $ 显式建模一对多映射,从根本上解决了部分可观测下传统方法容易模式坍缩的问题。理论分析给出了误差上界,实验证明其在 SMAC 环境下能显著提升算法性能,且能够直观地展示状态重建的质量。

未来工作可考虑将 GlobeDiff 应用到真实机器人系统或自动驾驶等更复杂的场景中,并探索如何与在线学习更紧密地结合,进一步减少分布偏移的影响。

附录:重要符号速查

符号含义
$ s $全局状态
$ x $辅助观测(由局部观测构造)
$ z $潜在变量,用于指示多模态中的具体模式
$ q_\psi(z \mid x,s) $后验网络,训练时根据真实状态推断 $ z $
$ p_\phi(z \mid x) $先验网络,推断时仅用 $ x $ 预测 $ z $ 分布
$ \epsilon_\theta(s^k, x, z, k) $噪声预测网络,用于反向扩散过程
$ \beta^k, \alpha^k, \bar{\alpha}^k $扩散过程的噪声方差及相关参数
$ K $总扩散步数
$ \mathcal{L}_{\mathrm{diff}} $扩散模型的噪声预测损失
$ \beta_{\mathrm{KL}} $KL 项的平衡系数

Read more

Python | XGBoost+SHAP可解释性分析回归预测及可视化算法

Python | XGBoost+SHAP可解释性分析回归预测及可视化算法

立个flag,这是未来一段时间打算做的Python教程,敬请关注。 1 数据及应用领域 我的程序中给出数据data.xlsx(代码及数据见文末),10 列特征值,1 个目标值,适用于各行各业回归预测算法的需求,其中出图及数据自动保存在当前目录,设置的训练集与预测集的比例为 80%:20%。 (1)地球科学与环境科学 * 遥感反演:利用多源遥感数据预测水体深度、土壤湿度、植被指数、叶面积指数等。 * 气象与气候研究:预测降水量、气温、风速、风向等连续气象变量。 * 水文与水资源管理:河流流量、地下水位、径流量预测。 * 环境污染监测:空气质量指数、PM2.5/PM10浓度、重金属污染水平预测。 * 地质与矿业:预测矿区地表沉降、地裂缝发展趋势,或矿产储量评估。 (2)生物学与医学 * 生态学:预测物种分布密度、群落生物量或生态环境因子变化。 * 公共卫生:基于环境、

By Ne0inhk
基于纯verilogFPGA的双线性差值视频缩放 功能:利用双线性差值算法,pc端HDMI输入...

基于纯verilogFPGA的双线性差值视频缩放 功能:利用双线性差值算法,pc端HDMI输入...

基于纯verilogFPGA的双线性差值视频缩放 功能:利用双线性差值算法,pc端HDMI输入视频缩小或放大,然后再通过HDMI输出显示,可以任意缩放。 缩放模块仅含有ddr ip,手写了 ram,fifo 代码,可以较为轻松地移植到其他平台。 硬件平台:易灵思 ti60f225 EDA平台:efinity 引言 在现代嵌入式图像处理系统中,实时视频缩放是一项基础且关键的功能。本文基于一套完整的 FPGA 视频缩放系统设计,深入剖析其整体架构、关键模块实现逻辑与数据流控制机制。该系统以易灵思(Efinix)FPGA 为核心平台,采用双线性插值算法实现任意比例的图像缩放,并结合伽马校正提升输出画质,最终通过 HDMI 接口输出流畅视频。整套系统具备高实时性、良好的图像质量以及良好的可扩展性,适用于机器视觉、医疗影像、智能显示等多种应用场景。 系统架构概览 整个视频缩放系统采用典型的“输入—处理—输出”流水线架构,其核心处理流程如下: 1. 视频输入:通过

By Ne0inhk
哈希表的介绍和使用

哈希表的介绍和使用

一.哈希表的概念   哈希又称散列,本质是通过一种键值对存储的高校组织方式。通过一个哈希函数,将数据的关键字直接映射到存储的数据中,实现快速的定位。   就像在图书馆中可以根据图书的编号来快速查找图书的位置。 二.直接定址法   直接借用关键字作为存储位置的下标, class Solution { public:     int first(string s) {         int count[26] = { 0 };         for (auto e : s) {             count[e - 'a']++;         }         for (size_t i = 0; i < s.size(); i++) {             if (count[s[i] - 'a'

By Ne0inhk
【数据结构】队列的完整实现

【数据结构】队列的完整实现

队列的完整实现 * 队列的完整实现 * github地址 * 前言 * 1. 队列的概念及其结构 * 1.1 概念 * 1.2 组织结构 * 2. 队列的实现 * 接口一览 * 结构定义与架构 * 初始化和销毁 * 入队和出队 * 取队头队尾数据 * 获取size和判空 * 完整代码与功能测试 * 结语 队列的完整实现 github地址 有梦想的电信狗 前言 队列(Queue)作为一种基础且重要的数据结构,在计算机科学中扮演着关键角色。无论是操作系统的任务调度、网络数据包的管理,还是算法中的广度优先搜索(BFS),队列的“先进先出”(FIFO)特性都使其成为不可或缺的工具。理解队列的实现原理,不仅能帮助开发者更高效地处理数据,还能为后续学习复杂的数据结构打下坚实基础。 本文将以 链式结构 为核心,详细介绍队列的完整实现。从结构设计、接口定义到功能测试,一步步剖析如何用C语言实现一个高效、健壮的队列。文章重点讲解入队(

By Ne0inhk