Representation Risk in Pretrained Image Encoders
Organizations: School of Public Policy and Administration, Carleton University · Independent Researcher · Department of Economics, Carleton University
Abstract
Applied researchers increasingly convert images into features with pretrained encoders, then use those features in a downstream prediction model. The encoder is often treated as an implementation detail. We show that it can instead be a consequential source of model uncertainty. We call this uncertainty representation risk: plausible pretrained encoders map the same images into different feature spaces and can yield sharply different out-of-sample conclusions from predictive performance. We compare ten modern and legacy frozen encoders across applications involving house prices, racehorse performance, breast-cancer histology, chest radiographs, continuous facial age, and rice disease. With common dimension control, heads, and group-safe splits, validation selects SigLIP 2 for houses, raising test from 0.396 for ResNet50 to 0.629, and DINOv2 for horses, raising from 0.029 to 0.105. No encoder is best in every task. Candidate procedures are constructed using training data and compared on a separate validation partition. The selected procedure reaches 0.658 for houses and 0.979 accuracy for pneumonia. Fixed-split gains are small for horses and rice, while repeated partitions reveal instability in horse feature union. Continuous age selects SigLIP 2 at 4.786 years MAE. The principal representation gaps persist with neural heads, similarly sized DINOv2 and ViT models, and limited adaptation. These results support a simple workflow: benchmark plausible representations, select on locked validation data, combine only when separate validation evidence justifies the additional cost, and report paired and split-level uncertainty. We implement this workflow in LOOKAGAIN-ML, the software package used to conduct the analyses in this paper.
Figures & tables
| Dataset | Test | Task | Primary metric | |
|---|---|---|---|---|
| Toronto houses | 7,273 | 1,090 | log sale price | |
| OBS horses | 9,729 | 1,459 | normalized workout speed | |
| BreaKHis | 7,909 | 1,129 | binary histology | accuracy |
| Pneumonia | 5,856 | 878 | binary chest X-ray | accuracy |
| Facial age | 9,764 | 1,465 | chronological age | MAE (years) |
| Rice disease | 5,932 | 759 | four leaf classes | accuracy |
| Dataset | ResNet | Selected single | Preferred procedure | Gain (95% CI) |
|---|---|---|---|---|
| Houses ( ) | 0.396 | 0.629 (SigLIP 2-B/16) | 0.658 (linear stack) | 0.029 |
| Horses ( ) | 0.029 | 0.105 (DINOv2-B/14) | 0.111 (feature union) | 0.006 |
| BreaKHis (acc.) | 0.895 | 0.878 (VGG16) | 0.931 (equal average) | 0.053 |
| Pneumonia (acc.) | 0.942 | 0.965 (ConvNeXt-B) | 0.979 (feature union) | 0.015 |
| Facial age (MAE) | 9.912 | 4.786 (SigLIP 2-B/16) | 4.867 (linear stack) | -0.081 |
| Rice disease (acc.) | 0.997 | 1.000 (DINOv2-B/14) | 1.000 (feature union) | 0.000 |
| Dataset | Most selected | Single mean | Preferred mean | Mean gain | Preferred SD |
|---|---|---|---|---|---|
| Houses | SigLIP 2-B/16 (11/12) | 0.653 | 0.682 | 0.030 | 0.016 |
| Horses | DINOv2-B/14 (12/12) | 0.102 | -4.009 | -4.111 | 14.204 |
| BreaKHis | VGG16 (4/12) | 0.823 | 0.882 | 0.060 | 0.042 |
| Pneumonia | ConvNeXt-B (6/12) | 0.952 | 0.969 | 0.018 | 0.003 |
| Facial age | SigLIP 2-B/16 (12/12) | 4.762 | 4.638 | 0.124 | 0.094 |
| Rice disease | DINOv2-B/14 (6/12) | 0.999622 | 0.999348 | -0.000274 | 0.001 |
Appendix figures & tables19 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Test | Groups | Grouping unit | |
|---|---|---|---|---|
| Houses | 7,273 | 1,090 | 7,262 | saved / exact hash |
| Horses | 9,729 | 1,459 | 9,461 | reconstructed horse identity |
| BreaKHis | 7,909 | 1,129 | 82 | patient |
| Pneumonia | 5,856 | 878 | 3,117 | patient / exact hash |
| Facial age | 9,764 | 1,465 | 9,658 | exact hash |
| Rice disease | 5,932 | 759 | 4,794 | exact hash |
| Encoder | Houses | Horses | Age MAE |
|---|---|---|---|
| ResNet50 | 0.3964 | 0.0293 | 9.912 |
| VGG16 | 0.3868 | 0.0291 | 11.201 |
| InceptionV3 | 0.4200 | 0.0350 | 9.797 |
| MobileNetV2 | 0.4195 | 0.0405 | 10.079 |
| COCO semantic | 0.0084 | 0.0016 | 20.507 |
| ADE20K semantic | -0.1254 | 0.0033 | 28.992 |
| Encoder | BreaKHis | Pneumonia | Rice |
|---|---|---|---|
| ResNet50 | 0.8955 | 0.9419 | 0.9974 |
| VGG16 | 0.8778 | 0.9510 | 0.9960 |
| InceptionV3 | 0.8379 | 0.9385 | 0.9802 |
| MobileNetV2 | 0.9123 | 0.9601 | 0.9987 |
| COCO semantic | 0.7281 | 0.7437 | 0.5837 |
| ADE20K semantic | 0.5093 | 0.8075 | 0.6469 |
| Method | House | Horse | BreaKHis | Pneum. | Age MAE | Rice |
|---|---|---|---|---|---|---|
| Equal Average | 0.5230 | 0.0573 | 0.9309 | 0.9681 | 9.6181 | 1.0000 |
| Linear Stack | 0.6582 | 0.1111 | 0.9300 | 0.9738 | 4.8675 | 1.0000 |
| Selected Subset | 0.6615 | 0.1046 | 0.9247 | 0.9772 | 4.7860 | 1.0000 |
| Feature Union | 0.5923 | 0.1109 | 0.9123 | 0.9795 | 7.6161 | 1.0000 |
| Dataset | Spearman | LogME top | Agrees with validation |
|---|---|---|---|
| Houses | 0.952 | SigLIP 2-B/16 | yes |
| Horses | 0.855 | DINOv2-B/14 | yes |
| BreaKHis | 0.248 | SigLIP 2-B/16 | no |
| Pneumonia | 0.806 | ConvNeXt-B | yes |
| Facial age | 1.000 | SigLIP 2-B/16 | yes |
| Rice disease | 0.952 | SigLIP 2-B/16 | no |
| Houses | Horses | |||
|---|---|---|---|---|
| Encoder | Linear | NN | Linear | NN |
| ResNet50 | 0.3964 | 0.4225 | 0.0293 | 0.0349 |
| VGG16 | 0.3868 | 0.4143 | 0.0291 | 0.0278 |
| InceptionV3 | 0.4200 | 0.4288 | 0.0350 | 0.0312 |
| MobileNetV2 | 0.4195 | 0.4395 | 0.0405 | 0.0359 |
| COCO semantic | 0.0084 | 0.0139 | 0.0016 | 0.0025 |
| Encoder | Test MAE | Seed SD |
|---|---|---|
| ResNet50 | 8.071 | 0.074 |
| VGG16 | 9.119 | 0.188 |
| InceptionV3 | 8.163 | 0.116 |
| MobileNetV2 | 8.197 | 0.040 |
| COCO semantic | 17.371 | 0.094 |
| ADE20K semantic | 31.845 | 3.111 |
| Encoder | Parameters (M) | Dimension | Median images/s |
|---|---|---|---|
| ResNet50 | 23.5 | 2,048 | 166.2 |
| VGG16 | 138.4 | 512 | 155.9 |
| InceptionV3 | 21.8 | 2,048 | 150.0 |
| MobileNetV2 | 2.2 | 1,280 | 171.8 |
| COCO semantic | 11.0 | 21 | 180.5 |
| ADE20K semantic | 3.8 | 150 | 94.1 |
| Quantity | Value |
| JPEG images in the source archive | 3,670 |
| Excluded cross-class duplicate rows | 2 |
| Analytical observations | 3,668 |
| Duplicate-safe groups | 3,666 |
| Train / validation / locked test | 2,568 / 550 / 550 |
| Supplementary group-safe splits | 12 |
| Representation | Accuracy | Balanced acc. | Macro F1 | Log loss |
|---|---|---|---|---|
| ResNet50 | 0.8909 | 0.8907 | 0.8897 | 0.3658 |
| VGG16 | 0.8855 | 0.8866 | 0.8860 | 0.3421 |
| InceptionV3 | 0.8782 | 0.8761 | 0.8768 | 0.3428 |
| MobileNetV2 | 0.9091 | 0.9097 | 0.9085 | 0.3197 |
| COCO semantic | 0.3127 | 0.2986 | 0.2649 | 1.5285 |
| ADE20K semantic | 0.4200 | 0.4001 | 0.3915 | 1.5292 |
| Metric | SigLIP 2 | Out-of-fold stack | Difference (95% CI) |
|---|---|---|---|
| Accuracy | 0.9836 | 0.9836 | 0.0000 |
| Log loss | 0.0597 | 0.0777 | 0.0180 |
| Procedure | Mean acc. | SD | Empirical 95% range | Selection frequency |
|---|---|---|---|---|
| SigLIP 2 | 0.9852 | 0.0042 | 12/12 selected | |
| All-ten cross-fitted stack | 0.9861 | 0.0037 | 5/12 preferred |
| Encoder | Seconds | Images/s | Peak GPU GiB |
|---|---|---|---|
| ResNet50 | 20.5 | 179.3 | 0.17 |
| VGG16 | 26.1 | 140.6 | 0.81 |
| InceptionV3 | 25.7 | 143.0 | 0.20 |
| MobileNetV2 | 22.0 | 166.7 | 0.09 |
| COCO DeepLab | 73.9 | 49.6 | – |
| ADE20K SegFormer | 71.0 | 51.6 | – |