Variable Input Masked Autoencoders for Wrist-Worn Accelerometry
Organizations: University of Illinois Urbana-Champaign · Google
Abstract
Large-scale repositories of wearable sensor data have enabled the development of foundation models for human activities and behavior. However, existing models are pretrained using fixed input durations and sampling rates, despite substantial heterogeneity in recording conditions, downstream tasks, and deployment constraints. We introduce VarMAE, a variable input masked autoencoder that learns a single representation across sampling rates and temporal contexts. During pretraining we construct two views of the same signal: a long duration high frequency view, and a short duration lower frequency view, obtained via random cropping and downsampling. We perform masked reconstruction within each view and introduce a cross-resolution masked reconstruction objective that uses visible tokens from the long view to predict masked tokens from the short view. Cropping and downsampling impose complementary information bottlenecks, encouraging the model to learn representations that remain effective across input durations and sampling rate changes. We pretrain VarMAE on the large-scale NHANES dataset, producing a single pretrained encoder matching or outperforming controlled foundation model baselines on eight benchmark datasets. With only 3.82M parameters, VarMAE is parameter efficient and shows that a single foundation model can achieve broad transfer capabilities across sensing configurations.
Figures & tables
| Approach | Enc #Params | 1 s | 2 s | 5 s | 10 s | ||||
| Open Watch | Watch Hand | Motion Sense | Mobi Act | HARTH | Real World | PAAWS- SimFL | Capture- 24 | ||
| End-to-end training | |||||||||
| Conv encoder | 80k | 0.5785 | 0.6846 | 0.8850 | 0.8125 | 0.7679 | 0.7420 | 0.7817 | 0.4177 |
| ResNet encoder | 2.61M | 0.6398 | 0.6286 | 0.8775 | 0.8389 | 0.7933 | 0.7046 | 0.8364 | 0.4516 |
| TSFMs + linear eval | |||||||||
| Chronos-T5-small | 21M | 0.1182 | 0.4467 | 0.8303 | 0.5891 | 0.5876 | 0.6417 | 0.5894 | 0.4074 |
| Mask ratio | ||||||
| Long view | Short view | 50 Hz | 25 Hz ∗ | 10 Hz | 5 Hz ∗ | Avg. |
| 0.5 | 0.75 | 0.7730 | 0.7681 | 0.7564 | 0.6874 | 0.7462 |
| 0.25 | 0.75 | 0.7739 (+0.0009) | 0.7707 (+0.0026) | 0.7565 (+0.0001) | 0.6709 ( 0.0165) | 0.7430 ( 0.0032) |
| 0.75 | 0.75 | 0.7703 ( 0.0027) | 0.7628 ( 0.0053) | 0.7503 ( 0.0061) | 0.7166 (+0.0292) | 0.7500 (+0.0038) |
| 0.5 | 0.25 | 0.7668 ( 0.0062) | 0.7547 ( 0.0134) | 0.7466 ( 0.0098) | 0.5425 ( 0.1449) | 0.7027 ( 0.0435) |
| 0.5 | 0.5 | 0.7751 (+0.0021) | 0.7718 (+0.0037) | 0.7616 (+0.0052) | 0.4934 ( 0.1940) | 0.7005 ( 0.0457) |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Win. | #Users | #Classes | Classes |
| OpenWatch | 50 | 6 | double clench, double pinch, pinch down, pinch up, slide, negative | |
| WatchHand | 1 s | 23 | 3 | wrist up, wrist down, wrist left |
| MobiAct | 61 | 11 | standing, walking, jogging, jumping, stairs up, stairs down, stand-to-sit, sitting, sit-to-stand, car step-in, car step-out | |
| MotionSense | 2 s | 24 | 6 | stairs down, stairs up, walking, jogging, standing, sitting |
| RealWorld | 15 | 8 | climbing down, climbing up, jumping, lying, running, sitting, standing, walking | |
| HARTH | 5 s | 22 | 9 | walking, running, shuffling, stairs up, stairs down, standing, sitting, lying, cycling |
| Foundation Model | Window (s) | Sampling rate (Hz) |
| Harnet-Oxford ( Yuan et al., 2024a ) | 5/10 | 30 |
| BioPM ( Tarale et al., 2026 ) | 10 | 30 |
| REBAR ( Xu et al., 2024 ) | 2.56 | 100 |
| RelCon ( Xu et al., 2025b ) | 2/2.56 | 100 |
| Oxford-Sleep FM ( Yuan et al., 2024b ) | 30 | 30 |
| Encoder | Decoder | Parameters | ||||||||
| Model | Layers | Width | MLP | Heads | Layers | Width | MLP | Heads | Encoder | Total |
| Small | 4 | 128 | 256 | 4 | 2 | 64 | 128 | 2 | 0.70M | 0.95M |
| Medium | 6 | 256 | 512 | 8 | 2 | 128 | 256 | 4 | 3.82M | 4.81M |
| Large | 8 | 384 | 768 | 8 | 2 | 192 | 384 | 4 | 10.94M | 13.17M |
| 50 Hz | 25 Hz † | 10 Hz | 5 Hz † | |
| OpenWatch (1 s) | ||||
| All losses | 0.626 | 0.595 | 0.581 | 0.410 |
| w/o | 0.606 ( 0.020) | 0.534 ( 0.061) | 0.571 ( 0.010) | 0.332 ( 0.078) |
| w/o | 0.632 (+0.006) | 0.528 ( 0.067) | 0.435 ( 0.146) | 0.147 ( 0.263) |
| w/o | 0.612 ( 0.014) | 0.588 ( 0.007) | 0.569 ( 0.012) | 0.456 (+0.046) |
| MobiAct (2 s) | ||||
| 50 Hz | 25 Hz ∗ | 10 Hz | 5 Hz ∗ | |
| WatchHand (1 s) | ||||
| default (long 0.5, short 0.75) | 0.668 | 0.664 | 0.647 | 0.620 |
| long 0.25 | 0.667 ( 0.001) | 0.661 ( 0.003) | 0.644 ( 0.003) | 0.609 ( 0.011) |
| long 0.75 | 0.667 ( 0.001) | 0.653 ( 0.011) | 0.642 ( 0.005) | 0.633 (+0.013) |
| short 0.25 | 0.651 ( 0.017) | 0.637 ( 0.027) | 0.626 ( 0.021) | 0.450 ( 0.170) |
| short 0.5 | 0.666 ( 0.002) | 0.663 ( 0.001) | 0.648 (+0.001) | 0.381 ( 0.239) |