NeurIPS 2026
Efficient Test-time Adaptation through Candidate Verification and Divergence Shifts
Test-Time Correction verifies the top-k candidates instead of adjusting the prediction. The candidate with the smallest divergence shift wins.
- 1Ajou University
- †Corresponding author
Zero-shot probability
- leopard 0.41
- snow leopard 0.33
- jaguar 0.14
Divergence shift after reconstruction lower is better
- leopard 0.62
- snow leopard 0.21
- jaguar 0.71
- Zero-shot
leopard- TTC
- snow leopard✓
- on 5 test-time adaptation settings and 15 datasets
- SOTA
- throughput of the fastest training-free baseline
- 2.2×
- less CPU memory
- 3.5×
- gradient steps, fully training-free
- 0
See it correct a prediction
-
Hypothesize
Zero-shot CLIP probability. Only the top-k are kept.
-
Reconstruct
Divergence shift after reconstructing in each class subspace. Lower is better.
-
Correct
- Zero-shot
- TTC
- Ground truth
Test images from ImageNet-R, -Sketch and -A; the scores are illustrative, to show the mechanism. Measured results start in Section 3. Drag k down to 1 to see why verification needs more than one hypothesis.
Hypothesize, reconstruct, correct
Hypothesize
The frozen VLM scores the test feature against every class. TTC does not accept the top-1 prediction as is: it keeps the top-k candidate labels (k = 3) and treats each one as a hypothesis: this image belongs to class y.
Reconstruct
Each class keeps a memory bank of at most 16 features, whose span is the class subspace. For each hypothesis, TTC hypothetically inserts the test feature into that class’s memory and measures how much the subspace’s relation to every other candidate changes: the divergence shift. A correct hypothesis barely moves the subspace; an incorrect one perturbs it more strongly.
Correct
Each candidate gets one aggregated verification score: absolute compatibility (how well its subspace reconstructs the feature) plus relative stability (its divergence shifts against those of its rivals). The lowest score wins, and the test feature joins that class’s memory, replacing the lowest-confidence entry once the memory is full. With k = 3 that is six pairwise shift evaluations per image and no gradient updates.
Better in every setting
TTC improves on the strongest prior method in all five settings: zero-shot, domain generalization, few-shot, base-to-novel and cross-dataset.
- TPTNeurIPS’22
- DPENeurIPS’24
- TDACVPR’24
- OGACVPR’25
- BCACVPR’25
- TTC (ours)
And cheaper to run
Verification touches only three class memories per image and needs no optimization, so TTC is also the fastest and leanest method in the comparison.
Throughput (img/s) ↑
CPU memory (MB) ↓
GPU memory (GB) ↓
Why verification works
TTC re-ranks only the top-3, so its accuracy splits into two parts: how often the true class is in the top-3 (Hit@3), and how often TTC then picks it (Ain). In most settings the top-3 contains the true label for 80-94% of samples, while the initial prediction misses it on 13-22% of all samples. That is the room TTC works in.
Within this space, TTC raises Ain over the initial prediction by 3.0 pp on average, against 1.3 pp for the strongest baseline in each setting (Figure 4). Outside the top-3 every method struggles: no baseline recovers more than 6.4% of those samples, and accuracy stops improving beyond k = 3.
Overturning a correct initial prediction is the rarest case (3.3% of the hit set), mostly between near-duplicate labels such as sunglass and sunglasses. When TTC fails, its verification margin is 3.4-6.5× smaller than on successes: the candidates are nearly tied, typically semantically similar classes such as ear of corn and corn.
- DPENeurIPS’24
- TDACVPR’24
- OGACVPR’25
- BCACVPR’25
- TTC (ours)
Citation
@inproceedings{oh2026ttc,
title = {Efficient Test-time Adaptation through Candidate Verification and Divergence Shifts},
author = {Oh, Seungmin and Kang, Seunghun and Ryu, Jongbin},
booktitle = {Advances in Neural Information Processing Systems},
year = {2026}
}