Does Validation Loss Predict Real-Robot Success? Evidence from Four Imitation-Learning Policies on a Low-Cost Arm
Organizations: fysical.ai, Denmark
Abstract
Held-out validation loss is the standard offline signal for choosing checkpoints and comparing models, but its relation to closed-loop success on a real robot is rarely measured. We measure it for ACT, Diffusion Policy, SmolVLA and (action expert only), trained on nested subsets of 12 to 200 demonstrations of a pick-and-place task on an SO-101 arm. We score 82 checkpoints on 25 held-out demonstrations, with each policy's training loss and with the error of the actions it outputs, and compare the scores with 930 bench rollouts. We also score all 700 intermediate checkpoints of 70 training runs, and recover the ball positions of every training, held-out and bench episode from the front camera. Within each policy, hold-out action error correlates with bench success (Spearman from -0.23 to -0.88), but no more strongly than the number of training episodes alone, and not at all among seeds trained on the same data. Across policies the ranking is inverted ( = +0.90 at 200 episodes): the policy with the lowest hold-out error succeeded in 3 of 110 rollouts. The most common failure, the arm never leaving its rest pose, ended 96% of rollouts for Diffusion Policy trained on untrimmed demonstrations and 47% for SmolVLA, and cannot occur in a hold-out set made of demonstrations. Among rollouts in which the arm moved, SmolVLA's hold-out action error predicts success well ( = -0.81). For the diffusion and flow-matching policies, hold-out loss rises two- to five-fold during training while hold-out action error falls by up to 29%. Held-out metrics are a sound diagnostic of learning but no substitute for evaluation on the robot, and we recommend reporting initiation failure and success among started rollouts as separate bench outcomes.
Figures & tables
| Policy | Training objective | What the loss compares | Randomness at scoring time |
|---|---|---|---|
| ACT | L1 regression of an action chunk (plus a KL term in training only) | predicted actions with demonstrated actions, normalised | none: deterministic in evaluation mode |
| Diffusion Policy | denoising (DDPM noise prediction, MSE) | the noise the network predicts with the noise that was added to a demonstrated chunk | noise level and noise sample; averaged over 4 fixed-seed draws |
| SmolVLA | flow matching (MSE on velocity) | the predicted direction back to the clean chunk with the true direction | time step and noise sample; 4 draws |
| (action expert only) | flow matching (MSE on velocity) | as SmolVLA | as SmolVLA |
| Model line | Training steps | Checkpoints saved | Seeds per budget | Cells in the bench analysis |
|---|---|---|---|---|
| ACT | 100,000 | every 10,000 | 4 | 20 |
| Diffusion Policy, untrimmed data | 100,000 | every 10,000 | 4 trained, 2 benched | 10 (+2 EMA) |
| Diffusion Policy, trimmed data | 100,000 | every 10,000 | 2 (seeds 1, 3) | 10 (+4 EMA) |
| SmolVLA | 20,000 | every 2,000 | 4 | 20 |
| , action expert only | 6,000 | 3,000 and 6,000 | 1 plain + 2 EMA | 15 (5 plain, 10 EMA) |
| Model line | Checkpoints | , hold-out error vs success | Expected from episodes alone [95% range] | within budget (p) |
|---|---|---|---|---|
| ACT | 20 | [ , ] | +0.28 (0.82) | |
| expert-only | 15 | [ , ] | (0.85) | |
| SmolVLA | 20 | [ , ] | (0.69) | |
| Diffusion Policy, trimmed | 10 | [ , ] | +0.11 (0.75) | |
| Diffusion Policy, untrimmed | 10 | [ , +0.29] | (1.00) |
| Model line | 12 200 episodes (final step) | 10 more steps at 12 episodes | 10 more steps at 200 episodes | Hold-out loss over training, 12 / 200 episodes |
|---|---|---|---|---|
| ACT | % | % | % | 1.0 / 1.0 |
| Diffusion Policy, untrimmed | % | % | % | 3.5 / 4.7 |
| Diffusion Policy, trimmed | % | +3% | % | 2.8 / 5.3 |
| SmolVLA | % | +2% | % | 2.8 / 2.0 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.
Appendix
| Component | Description | Settings |
|---|---|---|
| Demonstrations ( fysical/greenball_pool_225_v1 ) | 225 teleoperated demonstrations; a trimmed copy has the idle lead-in removed | 30 fps; front and wrist cameras, 640 480 |
| Data split ( subsets.json ) | 25 hold-out episodes and nested training subsets S12 to S200 | data seed 20260922; hold-out stratified over nine recording batches |
| Scorer ( val_loss.py ) | loss and action error per checkpoint, overall and per episode | evaluation mode; 4 noise draws, seed 20261007; probe S12; plain or EMA weights; rejects any model whose training set contains a hold-out episode |
| Final-checkpoint scores | 128 checkpoints, on the hold-out and the training probe | every frame ( every fifth frame, bfloat16) |
| Training-curve scores | 700 intermediate checkpoints of ACT, Diffusion Policy and SmolVLA | every fifth frame; NVIDIA A10G |
| Bench record | one row per rollout with its audited outcome label, from [ 5 ] | primary set: standard (dim) lighting, placements N00 to N09 |
Robotic Policy Evaluation
Robotic policy evaluation measures whether learned controllers succeed reliably, generalize across conditions, recover from failures, and behave safely.
See all 134 papers