想象一辆自动驾驶汽车,其人工智能系统在数千小时明亮、晴朗的加州日间视频中接受训练。它能以惊人的准确度识别行人、汽车和骑行者。现在,把这辆车开到伦敦雾气弥漫的清晨、西雅图细雨蒙蒙的傍晚,或东京午夜灯光昏暗的街道。它还能依然表现得完美无缺吗?
这正是现代计算机视觉领域最大挑战之一的核心:** 域泛化 (domain generalization)** 。模型在某个特定环境 (一个“域”) 中训练后,部署到新的、未见过的环境时,往往会表现不佳。而当你只能从单一源域的数据中学习时,这个问题会更加棘手。这个具体、现实且艰难的挑战被称为单域泛化目标检测 (Single Domain Generalization Object Detection, S-DGOD) 。
图 1: S-DGOD 的设定旨在从单一源域学习并泛化到多个未见过的目标域。这需要从源域中提取因果特征,以实现域外 (Out-of-Domain, OoD) 泛化。
最近的一篇论文 G-NAS: Generalizable Neural Architecture Search for Single Domain Generalization Object Detection 直击这一问题。研究人员提出了一种方法,不仅仅是训练一个模型,而是设计出一种全新的神经网络架构,专门针对泛化能力进行优化。他们将神经架构搜索 (NAS) 的强大能力与一个巧妙的新损失函数结合起来,引导网络避免过拟合。
结果令人印象深刻。这种名为 G-NAS 的方法,即使在其他最先进模型束手无策的极端挑战场景下,也能准确检测物体。
图 2: G-NAS 在 S-DGOD 任务中的预测结果 (类别: 置信度) 。框的颜色表示物体类别。G-NAS 在极具挑战性的环境中也能稳定检测。
在本文中,我们将深入探讨:
- 伪相关性的核心问题,以及为什么它们是泛化的敌人。
- 可微分神经架构搜索 (NAS) 的工作原理。
- 作者的关键创新:** 可泛化损失 (G-loss)** 。
- 令人瞩目的实验结果,展示了 G-NAS 在 S-DGOD 领域创造了新的 SOTA (最先进水平) 。
过拟合陷阱: 为什么泛化如此困难
深度神经网络是极其强大的模式识别器——但有时它们会抓错“重点”。在单一域上训练时,它们往往会学到一些“容易”的特征,这些特征在训练数据中与标签相关,但在其他环境下却毫无意义。这些就是伪相关性 (spurious correlations) 。
想象白天的驾驶图像,其中大多数汽车都在沥青路面上。网络可能会学到“物体下方有一条深灰色的带状区域意味着这是汽车”的捷径。这在晴朗的白天数据中非常奏效,但在夜间或土路上就会失灵。模型从未真正学会汽车的定义,只是记住了一个只在训练域成立的偷懒规则。
在 S-DGOD 中,区分因果特征 (如物体的形状和结构) 与非因果特征 (如路面纹理、光照条件) 至关重要。以往方法主要聚焦于特征归一化或特征解耦。而 G-NAS 的作者则指出,一个被忽视的重要切入点是: 网络架构本身的设计。
神经架构搜索 (NAS) 登场
如果我们不把网络结构固定为 ResNet 之类的已有架构,而是自动搜索出天生就更擅长泛化的架构,会怎样?
该研究基于可微分 NAS (DARTS) 构建。核心思想是:
- 创建一个包含所有候选操作 (卷积、池化等) 的超网 (super-net) 。
- 为每个操作分配一个可学习的权重 \(\alpha\)。
- 通过梯度下降,同时训练架构参数 \(\alpha\) 与常规的网络权重。
- 最终保留权重最高的操作。
这种方法将离散的架构选择转化为连续优化问题,与早期方法相比,大大加快了 NAS 的速度。
至关重要的是,G-NAS 将 NAS 应用在目标检测器的预测头 (prediction head) ——即将特征图转化为边界框与类别标签的核心组件。
图 3: G-NAS 概览。搜索阶段使用 G-loss 训练超网预测头。增强阶段使用发现的架构重新训练检测器。
但这里有个问题: 如果没有引导,NAS 可能会生成一个高度依赖训练域中伪特征的架构。我们需要一种方法,引导 NAS 学习因果且可泛化的特征。
G-NAS 与可泛化损失
问题可视化
雾天场景清楚展示了仅在晴天训练的标准模型如何失效:
图 4: 雾天场景 Grad-CAM 图。基线模型关注与物体无关的背景线索;G-NAS 正确地集中在物体本身。
基线模型容易被与物体无关但显著的背景模式分散注意力——这些伪相关性一旦换到新域就会崩溃。G-NAS 通过可泛化损失 (Generalizable Loss) 来有效避免这一问题。
G-loss 公式
G-loss 定义为:
\[ \mathcal{L}_g(\theta, \omega, \alpha) = \frac{1}{2} \|\hat{\mathbf{y}}_1\|^{2} - \frac{1}{2} \|\hat{\mathbf{y}}_2\|^{2} \]其中:
- \(\hat{\mathbf{y}}_1\): 分类输出 (物体类别) 。
- \(\hat{\mathbf{y}}_2\): 回归输出 (边界框坐标) 。
乍看之下,符号设计似乎反常——为何要鼓励回归输出的范数更大而分类输出更小?NTK 理论给出了答案: 它改变了优化过程,使不同样本的梯度更加独立,从而减轻了梯度饥饿 (gradient starvation) ——即网络只关注最容易学的特征。
有了 G-loss,占主导地位的“简单”特征不再垄断学习;网络被迫整合更多元、更难捕捉的特征——这些特征往往是因果且可迁移的。
G-NAS 算法
整体流程分为两个阶段:
搜索阶段 (Search Stage) :
\[ \mathcal{L}_{\text{train}} = \mathcal{L}_{\text{det}} + \mathcal{L}_{\text{cls}} + \mathcal{L}_{\text{reg}} + \lambda_g \cdot \mathcal{L}_g \]
使用以下公式训练超网预测头:同时更新权重 \(\omega\) 与架构参数 \(\alpha\)。
增强阶段 (Augment Stage) :
从搜索阶段选出最佳架构 \(\alpha^*\),用它重建标准规模的预测头,并从零开始用相同的损失函数重新训练至收敛。
实验与结果
基准测试:** 仅**在 Daytime-Sunny 数据集上训练,然后在四个未见过的域上测试:
- Daytime-Foggy
- Dusk-Rainy
- Night-Sunny
- Night-Rainy
整体性能
表 1: mAP 结果。Average 为四个未见过目标域的平均值。
G-NAS 的平均 mAP 达 33.5%,大幅领先之前的最佳方法 (SRCD,29.6%) 。它在所有目标域上均获胜,其中 Night-Sunny 域提升最大 (+8.3 mAP) 。
为什么 NAS 和 G-loss 缺一不可
消融实验分别去掉 NAS、去掉 G-loss,以及同时去掉两者进行测试:
表 4: 移除 NAS 或 G-loss 均造成性能下降,体现了两者的协同效应。
结果:
- 基线: 27.0% mAP
- 仅 G-loss: 31.1%
- 仅 NAS: 28.2%
- NAS + G-loss:** 33.5%**
特征可视化: PCA
PCA 投影展示了 G-loss 的作用:
图 5: 使用 G-loss 学习到的表示使各域对齐更紧密,显示出更强的不变性。
没有 G-loss 时,不同域的特征簇彼此分离;有了 G-loss,各域特征明显更多重叠——域不变性得以直观体现。
定性结果
雾天与雨天场景:
图 8: 前三行: Daytime-Foggy;后三行: Dusk-Rainy。G-NAS (右) 始终检测到更多物体。
夜间场景:
图 9: 前三行: Night-Sunny;后三行: Night-Rainy。
结论与展望
G-NAS 标志着在高要求的 S-DGOD 设定下,设计鲁棒、可泛化目标检测器取得了重要进展。
核心要点:
- 问题: 标准模型 (即使结合 NAS) 也会过拟合单一域中的“简单”特征。
- 解决方案: G-NAS 引入**可泛化损失 **(\(\mathcal{L}_g\)) 引导 NAS 搜索能学习多样且因果特征的架构。
- 结果: 在多个未见过、充满挑战的环境中均达最先进水平。
这是 NAS 在 S-DGOD 领域的首次成功应用,而通过具备域外泛化意识的目标函数来引导架构搜索的思路,可能会深刻影响远超目标检测范畴的鲁棒模型设计。
随着人工智能系统迈入复杂、多变且难以预测的真实世界,像 G-NAS 这样将泛化能力置于首位的方法将变得不可或缺。