当适应后的参数继续处理下一个 batch, Test-Time Adaptation 便从一次临时校准变成了在线学习系统. 它没有标签, 数据按时间相关顺序到达, 模型又用自己的预测产生下一步信号. 一次错误更新不只伤害当前样本, 还会改变后续伪标签和梯度. 持续 TTA 的主要矛盾是自适应速度与错误闭环: 越快跟随新分布, 越容易把噪声、类别失衡或攻击写入共享状态.
将更新写成动力系统
由熵、伪标签或自监督目标产生. 输入分布 在变, 梯度估计也依赖当前模型. 分析时至少追踪三类状态: 学习参数、归一化统计量、教师或记忆. 只回滚其中一项, 系统可能很快被另外两项再次污染.
1. 从连续 corruption 到动态世界
简单测试常将每种 corruption 分开处理并在域切换时重置模型. 真实数据流可能从晴天缓慢进入夜晚, 中间夹杂类别 burst 与重复帧;模型不知道边界, 也不能每次恢复源参数. TENT 在单域上有效, 跨域持续运行时会出现误差积累, 尤其在小 batch 和类别不平衡下.
CoTTA 用指数移动平均教师生成更稳定的伪标签, 并随机恢复一部分参数到源值. 数据增强一致性降低瞬时噪声, 教师平滑减慢错误传播, 恢复提供不会无限漂移的锚点. 代价是适应也被减慢, 教师一旦长期污染仍会把错误传给学生.
EATA 筛除高熵或冗余样本, 只让较可靠、信息量较高的输入参与更新, 再用 Fisher 约束重要参数. 它减少计算和错误梯度, 筛选规则却依赖模型置信度. 高置信错分可能通过, 真正的新类别因高熵被拒绝, 于是稳定来自少学而不是正确学习.
SAR 从尖锐度和可靠样本出发稳定熵最小化, RoTTA 用时序记忆与教师处理相关流, NOTE 针对非独立同分布的在线 batch 统计. 这些方法分别改变优化几何、样本分布和状态更新, 横向比较时要固定数据流与更新预算, 不能把不同流上的数字排成一张榜.
2. 锚定、筛选与恢复的统一坐标
持续适应方法可以用三个动作理解. 筛选决定哪些样本有写权限;锚定限制状态离源模型或教师多远;恢复在风险过高时撤销部分写入. 样本筛选控制输入, Fisher 或蒸馏控制更新方向, 周期性 reset 控制时间范围. 三者组合以后, 仍需说明触发条件是否依赖测试标签.
源模型是不可变锚点, 能阻止无限漂移, 也可能阻碍真正的长期变化. 环境暂时偏移时强恢复合理;新域永久到来时频繁 reset 会不断丢掉有效适应. 评测必须同时包含可逆 corruption、缓慢漂移和突然切域, 才能看到策略选择的条件.
教师、学生和优化器需要一致的生命周期. 只恢复学生参数、保留已经污染的 EMA 教师, 下一步又会被教师拉回错误方向;恢复权重而保留动量, 优化器也可能将模型推出锚点. 这些状态是算法语义, 应在方法说明和实验复现中明确.
3. 时间相关性会破坏 batch 假设
视频和用户流中, 相邻样本高度相关. 一段时间只出现一个类别时, BN 统计量和熵梯度都向该类别偏移;后续类别返回时模型已经失衡. 随机打乱测试集会消除这个困难, 却不再代表在线适应. 同一数据集至少应比较随机顺序、类别排序、自然时间顺序和突发流.
小 batch 放大统计噪声. 动态组批虽然提高估计稳定性, 也让请求彼此影响并增加等待. 如果不同用户共享适应状态, 一个用户的数据会改变另一个用户的模型. 会话、租户与全局状态的边界不是普通监控问题, 它规定经验在哪个范围内持久化, 直接改变学习目标.
开放集输入进一步挑战熵最小化. 未知类可能被高置信映射到已知类并写入状态;高熵筛选只能挡住一部分. 概念漂移更无法靠无标签目标解决: 同一个输入对应的标签语义改变时, 模型需要外部监督或规则版本, 低熵只会强化旧定义.
4. 安全性与机制证据
测试输入能够修改未来行为, 便形成新的攻击面. 攻击者可以提交一串精心构造的样本, 让适应状态向目标方向漂移. episodic reset 限制传播, 持续状态则需要样本权限、更新幅度和作用范围约束. 评测不只测当前攻击成功率, 还要看攻击停止后的残留时间、源域能力和其他类别影响.
机制实验可以分别冻结教师、筛选、恢复和统计量, 测量错误何时进入闭环. 对状态做交换也很有用: 将一条流适应后的参数用于另一条流, 判断学到的是通用域变化还是特定序列偏差. 更新次数、额外前向与存储统一报告, 避免把更高计算记成算法优势.
持续适应与安全边界 会详细比较 CoTTA、EATA、SAR、RoTTA 与 NOTE. 这条路线与传统持续学习共享遗忘问题, 又缺少可靠标签. 适合它的结论总是带条件: 输入流怎样变化、状态在哪个范围共享、什么样本能更新、何时恢复、用什么外部信号判断更新值得保留.
5. 评测一条流而不是一袋样本
持续适应的基本实验单位是有顺序的完整数据流. 每次运行要从同一源状态开始, 保留自然到达顺序, 在切域、burst 和恢复源域的位置连续测量. 将所有样本随机打乱后求平均, 会消除算法需要处理的时间相关性. 多条独立流和多个随机初始化才构成统计重复.
在线表现可以用 prequential 方式记录: 先对 预测, 再允许它参与更新. 这样每个标签只用于事后计分, 不泄漏给当前预测. 如果论文采用先更新后预测, 需要明确这是 transductive 设置, 与在线服务的因果顺序不同. 两种口径都可研究, 结果不能直接互换.
流结束后的源域测试衡量保持, 还应在中间多次插入只评测不更新的探针. 这能看见漂移何时开始, 也能区分突然事故与缓慢积累. 当方法触发恢复时, 同时报告恢复前损失、回退幅度以及随后重新适应的速度. 稳定性不能只由最终恢复后的数字代表.
方法还应在停止更新的对照下运行. 分布已经稳定后继续适应, 可能只是累计噪声;冻结当前状态则显示后续收益是否来自持续写入. 在切域前后分别比较源模型、冻结状态和持续更新, 可以判断方法跟上了变化, 还是偶然停在一个较好的参数点.
参考文献
- Wang, Q. et al. (2022). Continual Test-Time Domain Adaptation.
- Niu, S. et al. (2022). Efficient Test-Time Model Adaptation without Forgetting.
- Niu, S. et al. (2023). Towards Stable Test-Time Adaptation in Dynamic Wild World.
- Yuan, L. et al. (2023). Robust Test-Time Adaptation in Dynamic Scenarios.
- Gong, T. et al. (2022). NOTE.