论文阅读-SAR

Towards Stable Test-Time Adaptation in Dynamic Wild World:SAR论文精读笔记

1. 论文基本信息与研究背景

1.1 论文信息

项目 内容
论文题目 Towards Stable Test-Time Adaptation in Dynamic Wild World
方法名称 SAR:Sharpness-Aware and Reliable Entropy Minimization
发表会议 ICLR 2023
研究方向 Test-Time Adaptation,TTA
核心问题 动态、非平稳测试环境下,模型如何持续适应而避免错误适应与模型崩溃
对比基线 主要围绕 TENT 展开,并涉及其他 TTA 方法
核心关键词 Reliable Sample、Sharpness-Aware Update、Model Recovery、Entropy Minimization、Error Accumulation、Parameter Change

1.2 研究背景

传统模型通常满足:

训练集分布:

P_s(x,y)

测试集分布:

P_t(x,y)

当:

P_s(x,y) ≠ P_t(x,y)

时,模型性能可能下降。

TTA 的基本思想是:源域训练结束后,不再访问源数据,仅利用测试阶段出现的无标签目标数据,对模型进行在线调整。

传统监督学习:

有标签源数据 → 训练模型 → 测试

TTA:

源域训练模型 → 无标签目标数据 → 测试时更新模型 → 输出预测

SAR 关注的进一步问题是:目标环境并不是固定的,而可能持续变化,因此模型需要连续更新:

x₁ → 更新 θ₁ → x₂ → 更新 θ₂ → x₃ → 更新 θ₃ → ...

这使得 TTA 变成一个动态状态更新问题:

θ_{t+1}=F(θ_t,x_t)

一次错误更新不仅影响当前样本,还可能影响后续所有样本。


2. TENT与SAR要解决的核心问题

2.1 TENT的基本思想

TENT 是 SAR 重点讨论的基础方法,其核心是测试时进行熵最小化。

对于模型输出概率:

p(y|x;θ)=p₁,p₂,...,p_C

预测熵为:

H(p)=-Σ_c p_c log p_c

TENT 的优化目标:

min_θ H(p(y|x;θ))

直观上:

预测不确定 → 熵较高 → 更新模型 → 预测更加确定 → 熵降低

TENT 通常并不更新整个网络,而主要更新 Batch Normalization 中的仿射参数 γ、β,以降低测试时适应的参数规模和破坏风险。

TENT设计 作用
无标签测试数据 不需要目标域标签
熵最小化 将预测向低不确定性方向调整
更新BN相关参数 减少可更新参数,降低计算和破坏风险
在线更新 当前测试数据直接影响后续模型状态

2.2 TENT的根本局限:低熵不等于正确

TENT 隐含了一个重要假设:

低熵 → 高置信度 → 更可能正确

但实际上:

低熵 ≠ 正确

例如三分类模型:

情况 输出概率 特征
正确预测 0.70, 0.20, 0.10 相对确定
错误但高置信度 0.99, 0.005, 0.005 极度确定但可能错误

第二种情况下:

H(p) 很低

但预测可能是错误类别。

因此:

min H(p)

可能导致:

模型错误 → 熵最小化 → 更自信地犯错 → 错误梯度 → 参数改变 → 后续样本继续错误

这就是 TTA 中的重要问题:

Error Accumulation。

2.3 TENT为什么会发生错误适应

问题 具体表现
错误样本参与更新 错误预测产生错误梯度
低熵被误认为可靠 错误高置信度样本也可能被用于更新
连续更新 一次错误更新会改变后续模型
参数漂移 θ_t 与初始参数 θ₀ 的距离逐渐增大
错误累积 后续样本建立在已经被污染的模型上
模型坍塌 模型进入异常低熵但低准确率状态

因此 TENT 的关键问题可以概括为:

低熵目标本身没有判断"预测是否正确",也没有直接约束"参数更新是否稳定"。


3. SAR整体框架

3.1 SAR的核心思想

SAR = Sharpness-Aware and Reliable Entropy Minimization。

它不是简单地继续改进:

min H(p)

而是从三个层面控制测试时更新:

层面 解决的问题 SAR机制
样本层面 当前样本是否值得更新 Reliable Sample
参数层面 更新后是否容易进入脆弱区域 Sharpness-Aware Update
模型层面 模型已经发生严重退化怎么办 Model Recovery

整体逻辑:

可靠样本筛选 → Sharpness-Aware参数更新 → EMA监控模型状态 → 异常时恢复初始模型

3.2 SAR与TENT的区别

方法 核心目标 是否考虑样本可靠性 是否考虑参数局部稳定性 是否具有恢复机制
TENT 熵最小化 弱 否 否
SAR 稳定熵最小化 是 是 是

因此 SAR 并不是简单地"让 TENT 更新得更慢",而是改变了 TTA 的优化逻辑:

TENT:找到低熵参数

SAR:找到低熵且更加稳定的参数,并监控模型是否发生退化


4. Reliable Sample:什么样的样本适合更新

4.1 为什么需要可靠样本

对于测试样本 x:

E(x)=H(p(y|x;θ))

如果:

E(x)较高

说明模型对当前样本不确定。

此时直接进行熵最小化更新,可能产生不稳定甚至错误的梯度。

因此 SAR 首先进行样本筛选:

S(x)=I(E(x)<E₀)

其中 E₀ 是可靠样本筛选阈值。

只有:

E(x)<E₀

的样本才参与后续更新。

4.2 可靠样本的基本逻辑

样本 熵 处理
高置信度样本 低 可以参与更新
不确定样本 高 尽量避免更新
异常样本 通常可能表现为高不确定性 避免错误更新
错误高置信度样本 低 仍可能被筛选,需要后续机制进一步控制

最后一行非常重要。

SAR 并没有证明:

低熵 = 一定正确。

所以 Reliable Sample 只是第一层防线。


5. Sharpness-Aware Update:为什么要向"最坏方向"试探

5.1 普通熵最小化

TENT直接计算:

g=∇_θE(θ)

然后进行梯度下降:

θ_new=θ-ηg

问题在于,它只关注当前参数位置的梯度。

如果当前参数位于一个非常尖锐的区域,那么虽然:

E(θ) 很低

但参数稍微变化:

E(θ+ε)

可能迅速增大。

这种参数状态对扰动非常敏感。

5.2 Sharpness的核心思想

SAR借鉴 Sharpness-Aware Optimization 的思想:

min_θ max_{||ε||≤ρ} E(θ+ε)

这里:

符号 含义
θ 当前真实模型参数
ε 临时参数扰动
ρ 最大扰动半径
E(θ+ε) 参数受到扰动后的熵
max 寻找局部最坏情况
min 最终仍然寻找稳定的低熵参数

核心思想:

不要只问"当前熵是多少",还要问"如果参数发生小幅变化,最坏情况下会怎样"。

因此优化目标从:

min E(θ)

变为:

min max E(θ+ε)

5.3 为什么"往最坏方向试探"反而可能更稳定

这里最容易误解。

SAR并不是把模型永久更新到:

θ+ε

而只是临时进行探测。

实际过程:

θ → θ+ε → 重新计算梯度 → 恢复θ → 使用新梯度更新θ

因此:

ε 是探针,不是真正的更新量。

如果当前梯度:

g=∇_θE(θ)

则最大化方向近似为:

ε=ρg/||g||

此时:

||ε||=ρ

即使:

g=3,4

或者:

g=3000,4000

扰动距离仍然是:

ρ。

因此:

梯度变大 ≠ 试探距离变大。

5.4 为什么需要试探最坏方向

假设有两个参数位置:

参数位置 当前熵 小扰动后的熵 稳定性
A 0.20 1.20 脆弱
B 0.25 0.30 稳定

如果只看当前熵:

A更低。

但考虑局部最坏情况:

A:

max E(θ+ε)=1.20

B:

max E(θ+ε)=0.30

因此 SAR倾向于避免 A 这种"当前很好、稍微扰动就恶化"的尖锐区域。

其核心思想是:

当前低熵 + 邻域稳定性 → 更适合持续测试时适应。


6. Sharpness更新的具体计算

6.1 第一次梯度

首先在真实参数 θ 上计算:

g=∇_θE(θ)

然后归一化得到扰动:

ε=ρg/||g||

得到临时参数:

θ'=θ+ε

注意:

θ' 只是临时参数。

6.2 第二次梯度

在临时参数上重新计算熵:

E(θ')

并计算:

g'=∇_θE(θ')

然后恢复真实参数:

θ←θ'

的逆操作,即恢复到原来的 θ。

最后使用 g' 进行真正的梯度下降:

θ_new=θ-ηg'

所以整个过程:

原始参数 θ → 临时扰动 θ+ε → 重新计算 g' → 恢复 θ → θ-ηg'

6.3 为什么最终参数可能变小

假设:

θ=1,2

第一次梯度:

g=3,4

扰动:

ε=ρ3,4/5

如果:

ρ=0.1

则:

ε=0.06,0.08

临时参数:

θ'=1.06,2.08

这里参数变大,是因为这是:

θ'=θ+ε

即"最坏方向探测"。

假设第二次梯度:

g'=2,1

学习率:

η=0.1

真正更新:

θ_new=1,2-0.12,1

因此:

θ_new=0.8,1.9

所以:

操作 参数变化 性质
θ→θ+ε 参数变大 临时试探
θ→θ−ηg' 参数可能变小 真正更新

关键区别:

ε 是探针,不是更新量。


7. Model Recovery:如何发现模型已经坏掉

7.1 为什么还需要恢复机制

即使有 Reliable Sample 和 Sharpness-Aware Update,也不能保证每一次更新都正确。

因为:

低熵 ≠ 正确

Sharpness低 ≠ 正确

所以仍然可能出现长期错误适应。

SAR因此额外维护一个模型状态指标:

e_m。

7.2 EMA熵

SAR维护熵的指数移动平均:

e_m^(t)=0.9e_m^(t-1)+0.1E_t

其中:

符号 含义
E_t 当前时刻测试样本或batch的熵
e_m 历史熵的平滑平均
0.9 保留历史状态的权重
0.1 当前熵的权重
e₀ 模型恢复阈值

例如:

e_m^(t-1)=0.50

当前:

E_t=0.20

那么:

e_m^(t)=0.9×0.50+0.1×0.20=0.47

因此 EMA 不会因为单个样本突然产生巨大变化,而是观察模型的长期状态。

7.3 为什么e_m越低反而可能意味着模型出问题

正常适应:

模型逐渐适应目标域 → 预测更确定 → 熵下降

但错误适应:

模型进入错误的过度自信状态 → 熵同样下降

因此需要观察:

"熵是否低得异常"。

当:

e_m<e₀

SAR认为模型可能进入异常状态,并触发模型恢复。

这里:

参数 回答的问题
E_t 当前这个样本有多不确定?
e_m 模型最近一段时间整体处于什么熵水平?
e₀ 什么程度可以认为当前模型状态异常?

可以记成:

E:当前状态

e_m:历史状态

e₀:异常判定线

7.4 为什么需要EMA而不是直接判断当前熵

如果直接:

E_t<e₀ → 恢复

那么一个偶然的低熵样本就可能触发恢复。

EMA:

e_m^(t)=0.9e_m^(t-1)+0.1E_t

相当于给模型状态增加"惯性"。

因此:

单个样本异常 → 不容易立即改变判断

连续一段时间异常 → e_m逐渐改变 → 触发恢复


8. SAR中的稳定性与实验分析

8.1 Accuracy

Accuracy用于判断模型最终预测性能:

Accuracy=正确预测样本数/总测试样本数

SAR的目标不是单纯降低熵,而是使:

Entropy下降

同时:

Accuracy保持或提高。

因此需要区分:

现象 可能含义
熵下降 + Accuracy上升 正常适应
熵下降 + Accuracy基本稳定 有效适应
熵下降 + Accuracy下降 可能发生错误适应
熵快速下降 + Accuracy快速下降 可能出现模型坍塌

8.2 Parameter Change

参数变化可以用于观察模型是否发生严重漂移。

常见形式:

Δθ=||θ_t-θ₀||

其中:

θ₀:初始预训练模型参数

θ_t:测试时第 t 个时刻的参数。

如果:

Δθ持续增大

说明模型不断偏离初始模型。

参数漂移过大可能意味着:

测试时适应 → 参数不断改变 → 错误累积 → 模型逐渐偏离原始能力。

8.3 Error Accumulation

TTA与普通独立推理最大的区别之一,是:

当前参数来自过去的更新。

因此:

θ₁=F(θ₀,x₁)

θ₂=F(θ₁,x₂)

θ₃=F(θ₂,x₃)

如果 x₁ 导致错误更新:

θ₁已经被污染。

那么:

x₂使用θ₁

x₃使用θ₂

后续模型状态都会受到影响。

这就是:

错误更新 → 参数污染 → 后续错误 → 再次更新 → 更严重参数污染

8.4 三类指标应该联合观察

指标 观察对象 主要问题
Accuracy 预测结果 模型是否正确
Parameter Change 模型参数 模型是否发生严重漂移
Error Accumulation 长时间序列 错误是否持续传播

因此不能只看Accuracy最终平均值。

更完整的分析应该观察:

Accuracy曲线 + Entropy曲线 + Parameter Change曲线 + Error Accumulation。


9. TENT与SAR的完整逻辑对比

9.1 方法层面的区别

维度 TENT SAR
核心目标 熵最小化 可靠样本 + Sharpness-aware熵最小化
样本筛选 相对简单 Reliable Sample
优化 普通梯度下降 Sharpness-aware更新
局部稳定性 不考虑 考虑
参数漂移 缺乏专门控制 通过稳定优化降低风险
错误适应 容易累积 通过多层机制抑制
模型恢复 无 有
长期稳定性 容易受连续错误更新影响 针对动态环境进行稳定性设计

9.2 三个关键问题

研究问题 SAR对应机制
什么样的样本适合更新? Reliable Sample
什么样的参数适合更新? Sharpness-Aware Update
如果模型已经更新坏了怎么办? Model Recovery

这三个问题实际上构成了 SAR 的完整研究逻辑:

样本可靠性 → 参数更新稳定性 → 长期模型稳定性。


10. 论文最核心的理解框架

10.1 从TENT到SAR的演进

TENT:

低熵 → 更新

SAR:

可靠低熵样本 → 局部稳定更新 → 持续监控 → 异常恢复

因此研究重点发生了变化。

TENT主要回答:

"如何利用无标签测试数据进行适应?"

SAR进一步回答:

"如何在持续变化的测试环境中避免错误适应?"

10.2 "稳定TTA"的三个层次

层次 核心问题 对应方法
样本稳定 当前样本是否可靠 Reliable Sample
参数稳定 当前参数是否处于脆弱区域 Sharpness-Aware Update
模型稳定 长期更新后是否发生崩溃 Model Recovery

因此可以把 SAR 的核心思想概括为:

低熵只是适应的起点,而不是可靠更新的充分条件。

10.3 为什么SAR比单纯熵最小化更适合动态环境

动态测试环境下:

P_t不断变化

因此模型不是只需要找到一次最优参数,而是在不断执行:

θ_{t+1}=F(θ_t,x_t)

此时模型更新具有明显的"状态依赖"。

一次错误更新会改变下一时刻的模型状态。

所以稳定TTA的核心不是:

"每个样本都尽可能更新模型"。

而是:

"只让可靠信息推动模型更新,并尽量避免模型进入对扰动敏感的区域,同时保留发生严重错误时的恢复能力"。


11. 对后续研究的启发

11.1 TTA的本质可以理解为动态系统

传统监督学习主要关注:

输入 x → 模型 → 输出 y

TTA则是:

输入 x_t → 模型 θ_t → 输出 → 更新 θ_{t+1}

因此:

θ_t本身也是系统状态。

这意味着研究TTA时除了Accuracy,还应该关注:

参数漂移、更新稳定性、错误累积、恢复能力、长期性能。

11.2 "什么样的样本适合更新"

SAR给出的答案主要是:

低熵样本更适合作为更新样本。

但仍存在一个值得研究的问题:

低熵并不能完全保证正确。

因此未来可以继续研究:

预测熵 + 梯度可信度 + 样本异常程度 + 时间一致性 + 参数敏感性

共同决定:

"这个样本是否值得用于更新"。

11.3 "什么样的参数适合更新"

TENT主要更新BN相关参数,本质上是参数效率与稳定性的折中。

进一步可以研究:

参数重要性 → 参数敏感性 → 参数可更新性

即不同参数承担不同程度的适应任务。

可以进一步形成:

样本可靠性 → 参数可靠性 → 更新可靠性。

11.4 SAR对后续TTA研究的启示

方向 SAR提出的问题
Sample Selection 如何找到真正可靠的测试样本
Optimization 如何避免更新进入尖锐区域
Continual TTA 如何控制长期错误累积
Model Recovery 如何在模型退化后恢复
Dynamic Environment 如何面对持续变化的目标分布
Edge/Cloud TTA 如何在有限资源下进行可靠更新

对于你当前的 TTA 学习路线,可以把 SAR 放在:

TENT → CoTTA → SAR → RoTTA/EATA/PASLE → 端云协同TTA

这个位置上理解。

其中最重要的演进关系是:

TENT解决"能不能在测试时更新" → CoTTA解决"持续更新和遗忘" → SAR解决"如何让更新更加稳定" → 后续方法进一步解决动态环境、样本选择、类别不平衡、长期漂移以及端云资源协同等问题。

相关推荐
桃西西呀1 小时前
LangChain 之七:回调与可观测
人工智能·langchain·llm
2601_960356381 小时前
2027校招采购岗解析:数学基础如何迁移到需求预测、成本与供应商分析
人工智能·算法
桃西西呀1 小时前
LangChain 之六:记忆与历史
人工智能·langchain·llm
周杰伦fans2 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
秦先生在广东2 小时前
gstack 深度解析:AI 驱动的单人虚拟工程团队与端到端自动化
人工智能
Yyyyyy~2 小时前
【Anaconda】安装
人工智能·python
golang学习记2 小时前
VSCode AI新特性:HydraFusion来了:系统会自己组队干活
ide·人工智能·vscode
EatFan2 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
秦先生在广东2 小时前
解析 Marketingskills 项目:构建 AI 代理营销技能库的技术与实践
人工智能