Rank Collapse Is Recoverable, Growing Is Not: Out-of-Sample Early Warning for Value Divergence in High-UTD Soft Actor-Critic
Abstract
Raising the update-to-data (UTD) ratio breaks off-policy critics in two ways grouped as "plasticity loss": collapsing representations and growing value magnitude . We separate them in Soft Actor-Critic (SAC) with scaled critics (width 2048, no normalization). Collapse is survivable: at UTD ratio 16, HalfCheetah critics with most units dormant keep learning, and the training guard, which stops runs whose loss or explodes, never flags them. Within one high-UTD SAC configuration, runs start close together, and how far a critic's has climbed by step 15k, its early growth, ranks the runs by how soon the guard flags them. At 15k, a flagged run's sits a median of over a hundredfold below its flag level, yet the climb's rate already orders the flags (Harrell's C and out-of-sample AUC 0.78 on Walker2d, 0.98 on Ant, at UTD ratio 4). Dormancy does not. Aborting on this rate saves about a tenth of held-out Walker2d compute and stays net-positive live. A LayerNorm critic lowers the rate, removes the flag on Walker2d at UTD ratio 4 and lowers the return.
Figures & tables
| Cohort | Tasks (UTD ratio ) | Seeds | Flagged | Role | |
|---|---|---|---|---|---|
| Phase map | all 5 tasks, (Fig. 1 A) | 6–32 each | 30k | 30/234 | char. |
| Forecast | Walker2d ( ), two 32-seed replicates | 64 | 80k | 31/64 | fit/eval |
| Forecast | Ant ( ) | 32 | 80k | 11/32 | fit/eval |
| Live deployment | Walker2d ( ), fresh seeds; 21 run both with and without the controller | 28 | 80k | – | eval |
| Controls | HalfCheetah, Hopper, Humanoid ( ) | 12, 16, 12 | 80k | 0/40 | char. |
| Controls | HalfCheetah, Hopper, Humanoid ( ) | 6, 4, 4 | 60k | 0/14 | char. |
| Walker2d (31/64) | Ant (11/32) | |
| (a) Time to the flag: Harrell’s C of | ||
| All pairs | 0.783 [0.690, 0.864] | 0.983 [0.958, 1.000] |
| Earlier run flags by 40k / by 50k | 0.962 / 0.933 | 0.989 / 0.985 |
| (b) Flagged by 80k: LOSO AUC | ||
| Early-growth signal | 0.780 [0.655, 0.885] | 0.978 [0.926, 1.000] |
| Level at 15k | 0.788 | 0.974 |
| (a) Cohort | TP/FP/FN | Prec. | Rec. | Net saved | Oracle | |
|---|---|---|---|---|---|---|
| SAC Walker2d , 8-fold | 64 | 22/6/9 | 0.79 | 0.71 | 444,109 | 1,391,847 |
| SAC Ant , 8-fold | 32 | 10/1/1 | 0.91 | 0.91 | 247,386 | 372,819 |
| Live, 21 paired fresh Walker2d seeds | 21 | – | – | – | 130,085 | 512,263 |
| Live abort threshold, all 28 fresh seeds | 28 | – | – | – | 252,389 | 803,515 |
| Critic | Seeds | Flagged by (Wilson 95%) | |
|---|---|---|---|
| LayerNorm | 32 pairs | 80k | 0/32 [0.000, 0.107] |
| Plain (same seeds) | 32 pairs | 80k | 17/32 [0.364, 0.691] |
| Plain, the 64 seeds of Section 4.2 | 64 | 80k | 31/64 [0.366, 0.604] |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| Hyperparameter | SAC | TD3 |
|---|---|---|
| Optimizer, learning rate | Adam, | Adam, |
| Discount ; target smoothing | ; | ; |
| Replay buffer; warm-up steps | ; 5000 | ; 5000 |
| Batch size | 2048 | 2048 |
| Critic and actor width depth | , no normalization | , no normalization |
| UTD ratio |
| Seed | Flagged | First peak (step) | Lowest after it (step) | At 200k |
|---|---|---|---|---|
| 0, 1, 5, 6 | at 45,030; 49,509; 66,688; 42,969 | |||
| 2 | no | (85k) | 346 (175k) | |
| 3 | no | (95k) | 264 (200k) | 264 |
| 4 | no | (85k) | 287 (187k) | 855 |
| 7 | no | (77k) | 371 (165k) |
| Seed | 0 | 1 | 5 | 6 |
|---|---|---|---|---|
| Max | 266 | 306 | 245 | |
| Last 20k return | 2320.8 | 805.6 | 1459.5 | |
| Best 20k return | 2320.8 | 884.9 | 1459.5 | 931.6 |
| UTD ratio, horizon | Task | Runs (flagged) | Best | Last |
|---|---|---|---|---|
| , 80k | Walker2d | 64 (31) | 448.9 | 202.0 |
| Ant | 32 (11) | |||
| HalfCheetah | 12 (0) | 947.9 | 747.8 | |
| Hopper | 16 (0) | 662.1 | 475.6 | |
| Humanoid | 12 (0) | 528.8 | 453.0 | |
| , 60k | HalfCheetah | 6 (0) | 621.2 | 138.1 |
| Cell ( ) | Flagged | Rate | Wilson 95% |
|---|---|---|---|
| SAC Walker2d , both replicates (80k) | 31/64 | 0.484 | [0.366, 0.604] |
| SAC Ant (80k) | 11/32 | 0.344 | [0.204, 0.517] |
| SAC HalfCheetah, Hopper, Humanoid (80k) | 0/12, 0/16, 0/12 | 0 | 0.243, 0.194, 0.243 |
| the three pooled | 0/40 | 0 | 0.088 |
| SAC HalfCheetah, Hopper, Humanoid (60k) | 0/6, 0/4, 0/4 | 0 | 0.390, 0.490, 0.490 |
| the three pooled | 0/14 | 0 | 0.215 |
| Walker2d (31/64) | Ant (11/32) | |
|---|---|---|
| Early-growth signal | 0.780 [0.655, 0.885] | 0.978 [0.926, 1.000] |
| Level at 15k | 0.788 [0.667, 0.889] | 0.974 [0.913, 1.000] |
| Post-learning rank drop | 0.792 [0.667, 0.900] | 0.935 [0.831, 1.000] |
| -free set of eight statistics | 0.714 [0.579, 0.839] | 0.952 [0.866, 1.000] |
| Dormant fraction | 0.381 [0.250, 0.522] | 0.372 [0.186, 0.597] |
| Walker2d (64 runs, 31 flagged) | Ant (32 runs, 11 flagged) | |||
|---|---|---|---|---|
| Window | AUC [95% CI] | AUC [95% CI] | AUC [95% CI] | AUC [95% CI] |
| 0.754 [0.630, 0.861] | [ , ] | 0.909 [0.775, 1.000] | [ , ] | |
| 0.780 [0.655, 0.885] | 0.978 [0.926, 1.000] | |||
| 0.811 [0.690, 0.905] | [ , ] | 1.000 [1.000, 1.000] | [ , ] | |
| 0.762 [0.636, 0.870] | [ , ] | 0.996 [0.974, 1.000] | [ , ] | |
| Model | LOSO AUC | AUC vs. level only (DeLong 95% CI, ) |
|---|---|---|
| Slope | 0.780 | |
| Level at 15k | 0.788 | |
| Level + slope | 0.786 | ( , 0.31) |
| Raw level at 15k | 0.715 | |
| Raw level + slope | 0.779 | ( , 0.031) |
| (a) | 40k | 50k | 60k | 70k | 80k |
|---|---|---|---|---|---|
| Walker2d : positives, AUC | 3, 0.956 | 7, 0.912 | 16, 0.842 | 22, 0.784 | 31, 0.780 |
| Ant : positives, AUC | 3, 0.966 | 7, 0.983 | 8, 1.000 | 11, 0.978 | 11, 0.978 |
| Cell | Flagged | Earliest, median flag | Flags 15k | Window | MAE / constant | |
|---|---|---|---|---|---|---|
| Walker2d (80k) | 31/64 | 33.1k, 59.8k | 0 | 7.85k / 11.31k | 0.048 | |
| Ant (80k) | 11/32 | 35.7k, 47.3k | 0 | 3.13k / 9.43k | 0.005 | |
| Walker2d | 8/8 | 17.4k, 22.1k | 0 | 1.65k / 2.92k | 0.039 | |
| Ant | 3/6 | 17.8k, 18.4k | 0 | too few | ||
| Walker2d | 14/14 | 9.1k, 10.6k | 12 | 1.01k / 1.48k | 0.76 | |
| Ant | 11/11 | 9.0k, 12.8k | 8 | 1.66k / 3.38k | 0.019 |
| Model | Walker2d | Ant | Pooled ( ) |
|---|---|---|---|
| Slope only (forecast and controller) | 0.094 [0.049, 0.205] | 0.078 [0.058, 0.174] | 0.065 [0.044, 0.153] |
| 14 features incl. raw (seven channels) | 0.087 | 0.115 | 0.072 |
| Slope only, equal-mass bins | 0.135 | 0.100 | 0.087 |
| Result | Verdict | |
| (i) Consequences of the model | ||
| P2 | [ , ] (Walker2d ), [ , ] (Ant ), [ , ] (Walker2d ) | holds in all three |
| (c) | minus the flag step, median: k (Walker2d ), k (Ant ) | lands early |
| (ii) Related hypotheses | ||
| P3 | MAE of minus MAE of the constant: k [ , ] on Walker2d, k [ , ] on Ant (MAE of 33.42k and 17.10k) | fails |
| P1 | Walker2d : 0.891 [0.883, 0.907], log better in 22/31, . Ant : 0.975, 11/11. Ant : 0.987, 8/8. Walker2d : 0.948, 8/8. Walker2d : 0.968, 10/10 | falls just short on Walker2d |
| Cohort | TP/FP/FN | Prec. | Rec. | Gross | Net | Net, alt. | Oracle | |
| SAC Walker2d | ||||||||
| oracle | 64 | 31/0/0 | 1.00 | 1.00 | 1,391,847 | 1,391,847 | 1,391,847 | 1,391,847 |
| best threshold in hindsight | 64 | 22/5/9 | 0.81 | 0.71 | 924,109 | 524,109 | 599,109 | 1,391,847 |
| retrospective sweep, best point | 64 | 22/7/9 | 0.76 | 0.71 | 924,109 | 364,109 | 469,109 | 1,391,847 |
| K-fold ( ) | 64 | 22/6/9 | 0.79 | 0.71 | 924,109 | 444,109 | 534,109 | 1,391,847 |
| leave-one-seed-out | 64 | 22/6/9 | 0.79 | 0.71 | 924,109 | 444,109 | 534,109 | 1,391,847 |
| Abort rule, read at 15k | Walker2d | Ant |
|---|---|---|
| Early-growth signal (the controller) | 444,109 (22/6/9) | 247,386 (10/1/1) |
| Level | 332,891 (20/6/11) | 247,386 (10/1/1) |
| Post-learning rank drop | 438,389 (20/5/11) | 150,515 (8/1/3) |
| Dormant fraction | 261,089 (1/4/30) | 80,000 (0/1/11) |
| Low return | 103,027 (6/2/25) | 80,000 (0/1/11) |
| Median stopping rule on return, label-free | 588,012 (16/16/15) | 705,514 (5/11/6) |
| (a) | 0.80 | 0.85 | 0.90 | 0.95 | 1.00 | 1.05 | 1.10 | 1.15 | 1.20 |
|---|---|---|---|---|---|---|---|---|---|
| Walker2d (k) | 524 | 431 | 151 | 140 | |||||
| Ant (k) | 327 | 231 | 231 | 156 | 94 |
| Seed | Error | Slope vs. | Return | at 15k / 40k / end | Twin |
|---|---|---|---|---|---|
| 115 | false abort | 195 | / / | late growth 0.042 | |
| 126 | false abort | 208 | / / | late growth 0.017 | |
| 127 | false abort | 365 | / / | late growth 0.123 | |
| 131 | false abort | 204 | / / | late growth 0.097 | |
| 103 | missed flag | 374 | / / | flagged at 77,178 |
| Target cohort | Aborts | Prec. | Rec. | Net | |
| Threshold from SAC Walker2d ( ) | |||||
| SAC Ant (80k) | 32 | 4 | 1.00 | 0.36 | 93,990 |
| SAC Walker2d , 28 fresh seeds | 28 | – | – | – | 252,389 |
| SAC Ant (30k) | 6 | 4 | 0.75 | 1.00 | 12,674 |
| SAC Hopper (30k) | 10 | 5 | 0.20 | 1.00 | 116,543 |
| TD3 Walker2d | 30 | – | – | – | 324,300 |
| Rank drop from | Peak before | Final | ||||
|---|---|---|---|---|---|---|
| Cell | Runs | Flagged | all-run peak | post-learning peak | learning | dormant |
| HalfCheetah | 8 | 0 | 0.59 | 0.06 | 8 | 0.77 |
| HalfCheetah | 8 | 0 | 0.65 | 0.10 | 8 | 0.77 |
| HalfCheetah | 8 | 0 | 0.68 | 0.06 | 8 | 0.77 |
| HalfCheetah | 32 | 0 | 0.69 | 0.05 | 32 | 0.78 |
| Walker2d | 8 | 0 | 0.72 | 0.14 | 8 | 0.82 |
| Return measure | No reset (median) | Reset (median) | Reset ahead | Exact Wilcoxon |
|---|---|---|---|---|
| Mean over 50k–60k | 491.0 | 876.6 | 6/6 | 0.031 |
| Mean over 20k–60k | 281.6 | 375.5 | 5/6 | 0.22 |
| At 60k | 505.5 | 1228.8 | 6/6 | 0.031 |
| Mean over 31k–41k | 239.5 | 126.7 | 2/6 | 0.56 |
| At 41k | 305.0 | 76.0 | 1/6 | 0.44 |
| Runs | Window | SAC protocol | Balanced weights |
|---|---|---|---|
| All 31 | 0.630 [0.386, 0.859] | 0.690 [0.462, 0.908] | |
| 30 | 0.534 [0.298, 0.764] | 0.652 [0.404, 0.870] |
| Cohort | Tasks (UTD ratio ) | Runs | Role | |
|---|---|---|---|---|
| Event timing | Walker2d ( ), Ant ( ), replays | 8 each | 40k | char. |
| Multi-task | Walker2d, Ant ( ) | 4, 3 | 60k | char. |
| Gradient clipping | Walker2d, Ant, Hopper ( ), clip 1 or 10 | 23 | 30k | char. |
| TD3 | Walker2d, Ant ( ) | 8 each | 80k | char. |
| TD3 | Walker2d ( ), forecast cohort | 31 | 80k | fit/eval |
| TD3 | Ant ( ) | 5 | 80k | char. |
Off-Policy RL
Off-policy reinforcement learning studies how agents learn from data generated by other or earlier policies, improving sample efficiency while managing distribution shift.
See all 124 papers