Personal Knowledge Base

A long-term research and learning notebook for posts, notes, papers, projects, and research directions.

Skip to content
Back to papers

Learning Naturalistic Driving Environment with Statistical Realism

NeuralNDE:用 Transformer 行为模型 + Conflict Critic + Safety Mapping + 对抗训练,生成统计意义上逼近真实世界的自然驾驶环境,包括 crash 与 near-miss 等长尾安全关键事件。

13 min read

论文:Xintao Yan et al., Learning naturalistic driving environment with statistical realism 期刊:Nature Communications, 2023, 14:2037 DOIhttps://doi.org/10.1038/s41467-023-37677-5

NeuralNDE 是一个面向自动驾驶训练与测试的多智能体交通环境生成框架:用 Transformer 行为模型学习真实驾驶行为分布,用 Conflict Critic 控制危险事件出现的频率与类型,用 Safety Mapping Network 修正不合理的危险行为,并用 GAN/GAIL 式对抗训练缓解长时间自回归仿真中的分布偏移,最终使正常驾驶与安全关键事件在统计层面都接近真实世界。

研究背景:为什么需要 Naturalistic Driving Environment?

自动驾驶开发依赖大规模仿真。现有仿真器(CARLA、AirSim、DRIVE Sim 等)主要强调车辆动力学、渲染和传感器模拟,而背景交通行为多采用轨迹回放、启发式规则或传统微观交通模型。论文指出:

Simulator fidelityDriving-environment fidelity\boxed{\text{Simulator fidelity} \neq \text{Driving-environment fidelity}}

真正的目标是让模拟交通在统计意义上与真实世界一致:

PsimulationPreal world\boxed{P_{\text{simulation}} \approx P_{\text{real world}}}

而不只是单条轨迹"看起来像"。难点集中在长尾安全关键事件:crash rate、crash type、crash severity、near-miss、PET 等。

三大挑战

1. Curse of Dimensionality:真实交通是 NN 个智能体在长时间跨度上的联合演化,需要建模高维联合分布 P(a1,,aNStτ:t)P(a_1,\ldots,a_N \mid S_{t-\tau:t})

2. Curse of Rarity:crash 的发生率约为 10610^{-6} 次/英里,真实数据几乎全是正常驾驶。普通模仿学习只能学好 P(normal)P(\text{normal}),却学不准 P(safety-critical)P(\text{safety-critical})——单步预测看似不错,rollout 后的 crash 统计量却可能严重偏离真实世界。

3. Distribution Shift:自回归 rollout 中,单步微小误差逐步累积,加上多智能体间的错误传播,最终可能导致 off-road、不合理碰撞甚至 simulation collapse。

NeuralNDE 整体框架

作者将问题拆为三层:行为建模 + 安全控制 + 分布校正,对应四个模块:

  • Behavior Modeling Network FMF_M:真实驾驶员通常会怎么行动?
  • Conflict Critic FCF_C:当前潜在危险行为是否应该真正发生?
  • Safety Mapping Network FSF_S:若不该发生,如何修正为安全可行行为?
  • Discriminator DD:长期生成的轨迹整体上是否像真实世界?

NeuralNDE 模型流程图

单步推理流程可抽象为:

StH:tFMAtFC/FSAtTSt+1\boxed{S_{t-H:t} \xrightarrow{F_M} A_t \xrightarrow{F_C/F_S} A_t' \xrightarrow{T} S_{t+1}}

训练阶段再通过 D(τsim)D(τreal)D(\tau_{\text{sim}}) \leftrightarrow D(\tau_{\text{real}}) 约束长期轨迹分布。其中 FSF_S 在联合训练前预训练完成并固定,FMF_MDD 通过 imitation loss 和 adversarial loss 联合训练。

模块一:Behavior Modeling Network FMF_M

用 Transformer 建模多智能体交互

每个 road user 被视为一个 Agent Token,输入是所有车辆在历史窗口中的状态 Sτ:tNS_{\tau:t}^{N},目标是联合预测所有车辆的未来动作:

P(a1t,,aNtSτ:tN)P(a_1^t,\ldots,a_N^t \mid S_{\tau:t}^{N})

选择 Transformer 的三个理由:

  1. Self-Attention 天然建模交互Attention(Q,K,V)=softmax(QKT/d)V\text{Attention}(Q,K,V) = \text{softmax}(QK^T/\sqrt{d})V 直接学习车辆间相互影响;
  2. 可扩展:实验中最多同时处理 N=32N=32 个对象,"一个 agent 一个 token"的设计可继续扩展;
  3. 排列不变:车辆位于二维空间、没有自然一维顺序,因此去掉了 positional encoding,token 排列不影响预测。

网络结构:Historical states → Frequency Encoding → Input Embedding → Transformer/BERT Layers ×4 → Prediction Heads(Mean / Variance / Heading)。关键超参:历史窗口 τ=5\tau=5、步长 0.4s、hidden dim 256、4 个 attention heads、FFN dim 512、预测 horizon κ=5\kappa=5

Frequency Encoding:将低维状态映射到高维空间以表达高频变化:

γ(s)=[s,sin(20πs),cos(20πs),,sin(2L1πs),cos(2L1πs)],L=4\gamma(s) = [s, \sin(2^0\pi s), \cos(2^0\pi s), \ldots, \sin(2^{L-1}\pi s), \cos(2^{L-1}\pi s)], \quad L=4

输出分布而非确定性动作

这是关键设计。模型不输出 at=FM(St)a_t = F_M(S_t),而是输出 Gaussian 分布:

AtN(μat,Σat)A_t \sim \mathcal{N}(\mu_a^t, \Sigma_a^t)

以显式建模人类驾驶的随机性。协方差简化为对角矩阵,单个 agent 的动作概率为:

p(aitSt)=j=1D12πσi,jtexp[(μi,jtai,jt)22(σi,jt)2]p(a_i^t \mid S_t) = \prod_{j=1}^{D} \frac{1}{\sqrt{2\pi}\,\sigma_{i,j}^t} \exp\left[-\frac{(\mu_{i,j}^t - a_{i,j}^t)^2}{2(\sigma_{i,j}^t)^2}\right]

训练目标为真实轨迹的负对数似然(variance 无 ground truth,作为隐变量与 mean 一起学习):

LM=tij[logσi,jt+(μi,jtai,jt)22(σi,jt)2]\mathcal{L}_M = \sum_t \sum_i \sum_j \left[ \log \sigma_{i,j}^t + \frac{(\mu_{i,j}^t - a_{i,j}^t)^2}{2(\sigma_{i,j}^t)^2} \right]

实现细节:论文实验中并非直接预测 acceleration / yaw rate,而是直接预测未来 vehicle states(position mean、position variance、deterministic heading)。

模块二:Conflict Critic FCF_C

由于正常数据远多于危险数据,FMF_M 对 safety-critical 情形的统计建模不准,可能产生不真实的 crash rate 或错误的 crash type 分布。

输入输出:输入当前向未来预测 κ\kappa 步的所有车辆轨迹 SNt:κS_N^{t:\kappa},输出 acceptance probability pa=FC(SNt:κ)p_a = F_C(S_N^{t:\kappa}),即"该潜在冲突是否应被保留"。

核心思想:传统安全机制是"有冲突就拒绝",但这会让仿真中 P(crash)=0P(\text{crash}) = 0,不符合真实世界。NeuralNDE 认为:

DangerousUnrealistic\boxed{\text{Dangerous} \neq \text{Unrealistic}}

真实世界确实存在激进驾驶、未让行、违规变道、near-miss 和 crash,因此:

Potential Conflict{Accept,paReject + Safety Mapping,1pa\text{Potential Conflict} \rightarrow \begin{cases} \text{Accept}, & p_a \\ \text{Reject + Safety Mapping}, & 1 - p_a \end{cases}

pap_a轨迹相关的——不同危险模式有不同接受概率,从而同时控制危险事件的频率与模式

概率校准分两步:

  1. 匹配总体 crash rate:先设统一概率 puap_{ua},反复仿真,按下式迭代直到 csimcgtc_{sim} \approx c_{gt}
puai+1=cgtcipuaip_{ua}^{i+1} = \frac{c_{gt}}{c_i}\, p_{ua}^{i}
  1. 匹配 crash type 分布:对每种 crash type jjpa(j)p_a^{(j)},在保持总 crash rate 不变(jp(j)pa(j)=pua\sum_j p^{(j)} p_a^{(j)} = p_{ua})的约束下解得:
pa(j)=puacgt(j)p(j)p_a^{(j)} = p_{ua} \cdot \frac{c_{gt}^{(j)}}{p^{(j)}}

因此 FCF_C 本质是一个统计校准器,而不仅是碰撞检测器。

模块三:Safety Mapping Network FSF_S

当 Conflict Critic 拒绝某个危险行为时,需要将其修正为安全可行行为:

ANt:κ,=FS(SNt,ANt:κ)A_N^{t:\kappa,*} = F_S(S_N^t, A_N^{t:\kappa})

原始动作无冲突则保持不变,预测会导致 crash 则修改动作消除冲突。

训练数据不依赖稀少的真实 crash 数据,而是由一个 Physics-based Safety Guard 作为 teacher:当两车即将碰撞时加入 repulsive force 并投影到车辆 heading 方向,生成大量 (unsafe state/action, safe action) 样本,用 L1 损失训练:

LS=FS(S,A)A1L_S = \| F_S(S, A) - A^* \|_1

训练完成后 FSF_S 固定并嵌入 NeuralNDE。这样既保留物理安全知识,又能融入神经网络仿真管线。

解耦作用:没有 FSF_S 时,FMF_M 必须同时兼顾行为真实性与安全约束,两个目标在 crash 数据极少的情况下互相冲突。引入 FSF_S 后:

FM专注真实行为建模,FS专注安全修正F_M \rightarrow \text{专注真实行为建模}, \qquad F_S \rightarrow \text{专注安全修正}

实验表明 Safety Mapper 可将 crash rate 等建模误差降低多个数量级。

模块四:对抗训练缓解 Distribution Shift

长期自回归 rollout 不可避免产生分布偏移,因此引入 Discriminator DD:输入一条轨迹,判别其是真实还是生成。结构为 Trajectory → Frequency Encoding → MLP(102451225611024 \to 512 \to 256 \to 1,LeakyReLU)。对抗损失:

Ladv=EτpR[logD(τ)]+EτpG[log(1D(τ))]\mathcal{L}_{adv} = \mathbb{E}_{\tau \sim p_R}[\log D(\tau)] + \mathbb{E}_{\tau \sim p_G}[\log(1 - D(\tau))]

整体训练目标:

L=LM+βLadv\boxed{\mathcal{L} = \mathcal{L}_M + \beta \mathcal{L}_{adv}}

LM\mathcal{L}_M 负责局部行为精度,Ladv\mathcal{L}_{adv} 负责长时程分布真实性。

完整推理流程

FM(St)P(AtSt)sampleAtSt:t+κFCpaF_M(S_t) \rightarrow P(A_t \mid S_t) \xrightarrow{\text{sample}} A_t \rightarrow S_{t:t+\kappa} \xrightarrow{F_C} p_a At={At,无冲突,或以概率 pa 接受FS(St,At),以概率 1pa 拒绝并修正St+1=T(St,At)A_t' = \begin{cases} A_t, & \text{无冲突,或以概率 } p_a \text{ 接受} \\ F_S(S_t, A_t), & \text{以概率 } 1 - p_a \text{ 拒绝并修正} \end{cases} \qquad S_{t+1} = T(S_t, A_t')

如此循环 S0A0S1STS_0 \rightarrow A_0 \rightarrow S_1 \rightarrow \cdots \rightarrow S_T。因此 NeuralNDE 本质不是轨迹预测器,而是一个 generative driving environment,可进行小时级仿真。

实验设置与评估

数据集:以美国 Ann Arbor 的 AA roundabout 数据集为主(2.5Hz 轨迹,含 crash 轨迹、视频与警方报告),并用德国 rounD 数据集验证正常驾驶行为。

仿真设置:每个 episode 仿真 1 小时(3600s,步长 0.4s),用 2s 真实轨迹初始化;新车辆按 Poisson 过程进入路网(到达率根据真实数据校准);发生 crash 则 episode 终止。共约 15,000 个仿真小时用于验证。

评估指标:不看 ADE/FDE,而看统计分布是否匹配,用 Hellinger DistanceKL Divergence 比较 PrealP_{real}PsimP_{sim},覆盖:

  • 正常驾驶:速度分布、车距分布、让行距离/速度分布;
  • 安全关键:crash rate、crash type 分布、crash severity 分布、near-miss 距离分布、PET 分布。

主要结果

正常驾驶:NeuralNDE 能较好复现速度、车距与让行行为的分布,并能体现不同驾驶员的异质性(激进 vs. 保守)。

安全关键事件:真实 crash rate 为 1.21×1041.21 \times 10^{-4} crash/km,NeuralNDE 为 1.25×1041.25 \times 10^{-4} crash/km,高度接近;同时匹配 crash type 与 crash severity 分布,并能复现真实的 near-miss 距离分布与 PET 分布。论文展示的三类典型生成事故——angle crash(未让行)、sideswipe crash(违规变道)、rear-end crash(未保持安全距离)——与真实摄像头记录的事故模式相似。

消融实验

去掉的组件退化的能力
Transformer多智能体交互建模
GAN/GAIL长时程分布真实性
Conflict Critic安全关键事件统计
Safety Mappingcrash rate / 安全真实性

可扩展性:扩展到大型路网时,仅在关键交互节点(交叉口、环岛、高速出入口)使用 NeuralNDE,普通路段使用 IDM / SL2015 等传统模型,降低数据需求与误差累积。

三个挑战与三个对策、核心创新

挑战NeuralNDE 对策
Curse of DimensionalityTransformer 多智能体建模
Curse of RarityConflict Critic + Safety Mapping
Distribution ShiftGAN/GAIL 对抗训练
  1. 从轨迹预测转向环境生成HistoryFutureHistory \rightarrow Future 变为 HistoryActionStateHistory \rightarrow Action \rightarrow State \rightarrow \cdots,即 Prediction → Simulation;
  2. 不过滤所有危险行为:Dangerous ≠ Unrealistic,用 pap_a 决定危险行为是否发生,使 Normal / Near-miss / Crash 共存;
  3. 把安全规则变成可微的 Neural MapperFS(S,A)AF_S(S,A) \rightarrow A^*,可理解为将 unsafe action 投影回安全域的 Safety Projection;
  4. 用统计分布而非单条轨迹评价仿真:目标是 Psim(X)Preal(X)P_{sim}(X) \approx P_{real}(X),关注 Statistical Realism 而非 ADE/FDE。

局限与展望

论文指出一个重要开放问题:人类驾驶员与 AV 交互时的行为可能不同于与普通人类交互时,即 P(ahumanS)P(a_{human} \mid S) 在 human-human 与 human-AV 场景下分布不同。未来需要考虑 AV 对周边车辆行为的影响(AV → Human Driver Behavior → Traffic Environment)。

NeuralNDE 的价值不在于提出一个"更准的轨迹预测模型",而在于建立了"从真实轨迹学习 → 生成交通行为 → 控制危险事件 → 长期 rollout → 统计校准"的自然驾驶环境生成范式。一句最值得记住的话:

NeuralNDE 不追求"永远安全"的仿真环境,而追求"像真实世界一样安全"的仿真环境:正常行为要像真实世界,near-miss 要像真实世界,crash 也要以真实世界的频率、类型和严重程度发生。

Related Posts