TTC NeurIPS 2026

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.

  1. Seungmin Oh1
  2. Seunghun Kang1
  3. Jongbin Ryu1†
  1. 1Ajou University
  2. †Corresponding author
Snow leopard ImageNet-R (sketch) · illustrative

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

  1. 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

      TTC overview: the top-2 candidates y1 and y2 are each treated as a hypothesis; inserting x into each candidate subspace induces a divergence shift; the smaller shift (y2) corrects the original prediction y1.
      Figure 1.TTC treats the top-2 labels y₁ and y₂ as hypotheses and estimates the divergence shift that inserting x into each candidate subspace induces. Inserting x into class y₂ induces the smaller shift and the lowest aggregated verification score, so the original prediction y₁ is corrected to y₂.

      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)
      Gain (pp) -2 0 +2 +4 +6 +8 +6.42 Zero-shot +6.31 Domain gen. +2.20 Few-shot +2.69 Base-to-novel +2.72 Cross-dataset
      Figure 2.Gain in average accuracy over the starting model, CLIP ViT-B/16: zero-shot CLIP for zero-shot and domain generalization, CoOp prompts for few-shot, base-to-novel and cross-dataset. Domain generalization averages the four ImageNet shifts; few-shot is CoOp trained with 16 shots per class; base-to-novel is the harmonic mean of base and novel accuracy. Hover for exact values. TPT and DPE update parameters at test time; the others, like TTC, are training-free. Paper, Tables 1-4 and Figure 2.

      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) ↑

      0 1000 2000 3000 DPE NeurIPS’24 TDA CVPR’24 OGA CVPR’25 BCA CVPR’25 2049.0 TTC

      CPU memory (MB) ↓

      0 500 1000 1500 DPE NeurIPS’24 TDA CVPR’24 OGA CVPR’25 BCA CVPR’25 135 TTC

      GPU memory (GB) ↓

      0 1 2 3 DPE NeurIPS’24 TDA CVPR’24 OGA CVPR’25 BCA CVPR’25 0.17 TTC
      Figure 3.Cost of adapting on zero-shot ImageNet with CLIP ViT-B/16 on one RTX A5000, features pre-extracted for every method. TTC reaches 2.2× the throughput of BCA with 3.5× less CPU memory, and 1.3-1.4× less GPU memory than the leanest baseline. Paper, Table 5.

      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)
      Gain (pp) -2 0 +2 +4 +6 +3.50 Zero-shot +1.90 Domain gen. +3.32 Few-shot +1.76 B2N base +4.06 B2N novel +3.47 Cross
      Figure 4.Accuracy on the samples whose true class is in the top-3 (A_in), as a gain over the initial top-1 prediction, CLIP ViT-B/16. TTC adds 1.8-4.1 pp in every setting (3.0 pp on average across the paper’s settings, against 1.3 pp for the strongest baseline in each). DPE updates parameters at test time; the others are training-free. Paper, Table 6.

      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}
      }