Papers › Feature Evolution and Migration during Vision Transformer Training

Feature Evolution and Migration during Vision Transformer Training

20 Aug 2026arXiv:2608.20134added by Syntology

Joonas Järve, Halil Ibrahim Aysel, Tarun Khajuria, Meelis Kull

Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).

We present a novel view on feature evolution in Vision Transformers (ViTs) by visualizing the training process over two dimensions -- network depth (layer) and training time (epochs). We employ Sparse Autoencoders (SAEs) to extract candidate sparse features from CLS-token representations and compare their activation profiles across epoch--layer pairs. This allows us to study feature-level dynamics that are not directly visible from representation-level similarity measures. Furthermore, we demonstrate how this framework of feature evolution allows us to describe feature migration, the change in the layer where a feature is most detectable during training. Our experiments show that migration is concentrated early in training, occurs more often toward earlier layers than toward deeper layers, and declines as feature organization stabilizes. We further find that deeper layers stabilize earlier and more strongly than shallow layers. The results show that our approach can be employed as a tool for understanding how ViTs learn and evolve.

PaperPDFCode Syntology ran

In Syntology For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2608.20134")

Code

Syntology Ran 19 of 24 code samples harvested from 1 repository linked to this paper; 5 have no recorded run. Of those that ran: 19 ran with no contract checked.

By repository: found in paper text by Syntology: 24 samples from 1 repository, 19 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

joonasrooben/VIT-Feature-Evolution-and-Migration found in paper text by Syntology report

Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

24 samples harvested; 19 ran; 0 honoured the contract we drafted; 5 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

19ran
5unverified

Licence: 24 of the 24 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from joonasrooben/VIT-Feature-Evolution-and-Migration. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

aggregate_reference_scores joonasrooben/VIT-Feature-Evolution-and-Migration/evo_aggregate_patterns.py found in paper text by Syntology ran no licence file found · pointer only · bc6f55848585af93 · report
build_dataloaders joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun_tiny.py found in paper text by Syntology ran no licence file found · pointer only · cf747bedb0096952 · report
build_transforms joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun_tiny.py found in paper text by Syntology ran no licence file found · pointer only · 3b5f5d4be1f5d6ab · report
cls_hidden_states joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun.py found in paper text by Syntology ran no licence file found · pointer only · 7faee2b7bd55d890 · report
collect_hidden_states_timm joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun_tiny.py found in paper text by Syntology ran no licence file found · pointer only · 18f408ee266247ad · report
data_source joonasrooben/VIT-Feature-Evolution-and-Migration/evo_aggregate_patterns.py found in paper text by Syntology ran no licence file found · pointer only · 767737dbe487caeb · report
euclidean joonasrooben/VIT-Feature-Evolution-and-Migration/src/distance_metrics.py found in paper text by Syntology ran fingerprinted no licence file found · pointer only · 899e2f26d44960a2 · report
get_heat_map_matrix joonasrooben/VIT-Feature-Evolution-and-Migration/src/plotting.py found in paper text by Syntology ran no licence file found · pointer only · adc12711f9e28b98 · report
get_transform joonasrooben/VIT-Feature-Evolution-and-Migration/src/dataloader.py found in paper text by Syntology ran no licence file found · pointer only · f725209201c5318c · report
kernel_dist joonasrooben/VIT-Feature-Evolution-and-Migration/src/distance_metrics.py found in paper text by Syntology ran no licence file found · pointer only · 96b2cde5e9e1504f · report
load_imagenet_class_index joonasrooben/VIT-Feature-Evolution-and-Migration/src/concept_type_classifier.py found in paper text by Syntology ran no licence file found · pointer only · 24f7aaa8ad7f9c72 · report
load_labels joonasrooben/VIT-Feature-Evolution-and-Migration/src/concept_type_classifier.py found in paper text by Syntology ran no licence file found · pointer only · 6e7bd8b39066c021 · report
load_vit_base_mae joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_mae.py found in paper text by Syntology ran no licence file found · pointer only · 2d1caaab11dc7dd4 · report
mahalanobis joonasrooben/VIT-Feature-Evolution-and-Migration/src/distance_metrics.py found in paper text by Syntology ran no licence file found · pointer only · d819613d69177ebd · report
make_epoch_grid joonasrooben/VIT-Feature-Evolution-and-Migration/2d_sae_track_independent_shapes3d.py found in paper text by Syntology ran no licence file found · pointer only · 896311f6b970a2f2 · report
patches_hidden_states joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun.py found in paper text by Syntology ran no licence file found · pointer only · f4c380f3d0f28d43 · report
show_images_grid joonasrooben/VIT-Feature-Evolution-and-Migration/src/plotting.py found in paper text by Syntology ran no licence file found · pointer only · 1bf178094b0d5b51 · report
sparse2coarse joonasrooben/VIT-Feature-Evolution-and-Migration/src/dataloader.py found in paper text by Syntology ran no licence file found · pointer only · 4e479c89e029d625 · report
validate_activations_and_labels joonasrooben/VIT-Feature-Evolution-and-Migration/src/concept_type_classifier.py found in paper text by Syntology ran no licence file found · pointer only · 10251fb278d0e7b6 · report
compute_concept_scores joonasrooben/VIT-Feature-Evolution-and-Migration/evo_aggregate_patterns.py found in paper text by Syntology unverified no licence file found · pointer only · a68c33692ccbb496 · report
forward_tokens_per_block_timm_vit joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_mae.py found in paper text by Syntology unverified no licence file found · pointer only · fa6e3834deea3217 · report
get_dataset joonasrooben/VIT-Feature-Evolution-and-Migration/src/dataloader.py found in paper text by Syntology unverified no licence file found · pointer only · 2b5371d8b8a155db · report
get_model_outputs joonasrooben/VIT-Feature-Evolution-and-Migration/generate_acts_vit_fun.py found in paper text by Syntology unverified no licence file found · pointer only · 81621c29c195ed24 · report
make_heatmap joonasrooben/VIT-Feature-Evolution-and-Migration/src/plotting.py found in paper text by Syntology unverified no licence file found · pointer only · d0df1756ec3f067d · report

Results from the paper

The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2608.20134, was issued in August 2026, after that date, so the archive has no leaderboard rows for it.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections