PAN / JIANHAO
Published on

端到端自动驾驶中的 Loss 设计哲学

Authors

Loss 不是一张公式表:它直接表达了模型被允许忽略什么、必须在意什么。

一个核心判断

同样是规划轨迹,UniAD 可以用 L2 回归与碰撞约束,VADv2 可以用分布匹配,DiffusionDrive 则选择去噪损失加安全约束。区别不是“哪个 Loss 更高级”,而是每一种方法对驾驶问题的建模假设不同。

回归:逼近一个确定答案

L1=1Niyiy^iL2=1Ni(yiy^i)2\mathcal{L}_1 = \frac{1}{N}\sum_i |y_i-\hat{y}_i| \qquad \mathcal{L}_2 = \frac{1}{N}\sum_i (y_i-\hat{y}_i)^2
  • L1 对离群值更稳,常用于未来运动这类本身有噪声的预测。
  • L2 会强烈惩罚大偏差,适合需要精确控制的规划轨迹。
  • Smooth L1 在小误差处平滑、在大误差处鲁棒,常用于检测框回归。

分类:在大量候选中强调难例

感知任务中的背景远多于目标。Focal Loss 用调制因子压低已经分得很对的容易样本,使梯度集中在难例:

Lfocal=α(1y^)γlog(y^)\mathcal{L}_{focal}=-\alpha(1-\hat{y})^\gamma\log(\hat{y})

分布:承认驾驶有多种合理动作

路口场景并不存在唯一的人类轨迹。直接回归多条合理轨迹的平均值,反而可能得到不安全的“中间动作”。KL 散度和扩散去噪把重点转成学习轨迹分布:

DKL(PQ)=xP(x)logP(x)Q(x)D_{KL}(P\parallel Q) = \sum_x P(x)\log\frac{P(x)}{Q(x)}

安全不应只靠模仿

模仿学习只会让输出像训练数据,却不保证在长尾情形下安全。因此规划目标通常还要叠加碰撞、边界和舒适性约束:

L=Ltask+λcLcollision+λbLboundary+λjLcomfort\mathcal{L}=\mathcal{L}_{task}+\lambda_c\mathcal{L}_{collision}+\lambda_b\mathcal{L}_{boundary}+\lambda_j\mathcal{L}_{comfort}

好的 Loss 设计不是寻找万能公式,而是先回答三个问题:输出是否唯一?什么错误最不可接受?不同子任务的梯度会不会互相淹没?