What Does a ProcGen Generalization Gap Measure? Action Rules, Residual Entropy, and the Missing Random Floor
Organizations: Independent researcher
Abstract
A generalization gap in reinforcement learning, return on training levels minus return on held-out levels, is usually reported without a reference point. We argue that it should be read against a measured random floor: the return of a uniform-random policy on the same levels under the same evaluation harness. On eight ProcGen environments with PPO at a compute-limited budget (8M steps, 16 parallel environments; three games extended to 25M), the floor changes what standard numbers mean. The test-time action rule decides which policy is measured: in miner, the sampled policy scores 5.1x the floor on held-out levels while its argmax scores below it in every run, and greedy evaluation places two environments significantly below the floor. Used as a convergence diagnostic, raw policy entropy flags six of eight environments, but 32-66% of that entropy lies on actions with identical effects; against the floor, five of eight sampled policies are clearly above it on held-out levels and heist's is not distinguishable from it. An audit of twelve ProcGen codebases finds that nine sample test-time actions with no explicit choice at the evaluation call site. We recommend that every reported gap state its action rule, seed its evaluation and specify its tests before analysis, and report the floor on both level sets.
Figures & tables
| Codebase | Venue | Stoch. | In-loop |
|---|---|---|---|
| VSOP-3D ( Jesson & Jiang, 2024 ) | arXiv’24 | ✓ | ✓ |
| VSOP ( Jesson et al., 2024 ) | ICML’24 | ✓ | ✓ |
| ProcGen ( Cobbe et al., 2020 ) | ICML’20 | ✓ | ✓ |
| mixreg ( Wang et al., 2020 ) | NeurIPS’20 | ✓ | ✓ |
| RAD ( Laskin et al., 2020 ) | NeurIPS’20 | ✓ | ✓ |
| IBAC-SNI ( Igl et al., 2019 ) | NeurIPS’19 | ✓ | ✓ |
| Sampled (primary) | Greedy | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Env | Floor | Return | [95% CI] | Call | /6 | Return | Call | /6 | ||
| starpilot | above | 6 | above | 6 | ||||||
| fruitbot | above | 6 | above | 6 | ||||||
| bigfish | n.d. | 6 | n.d. | 6 | ||||||
| coinrun | above | 6 | n.d. | 3 | ||||||
| miner | above | 6 | below | 0 | ||||||
| Env | % max | Raw tier | Merged (state / game) | Share | Above-floor | Gap (s) | Gap (g) | |
|---|---|---|---|---|---|---|---|---|
| starpilot | low | low / low | above | |||||
| fruitbot | interm. | low / low | above | |||||
| bigfish | low | low / low | n.d. | |||||
| coinrun | interm. | interm. / low | above | |||||
| miner | interm. | low / low | above | |||||
| dodgeball | high | low / interm. | above |
| Sampled (primary) | Greedy | ||||||
|---|---|---|---|---|---|---|---|
| Env | Encoder | Train | Test | Gap | Test | Gap | Tier |
| starpilot | IMPALA | low | |||||
| starpilot | FPN | low | |||||
| fruitbot | IMPALA | interm. | |||||
| fruitbot | FPN | interm. | |||||
| heist | IMPALA | high | |||||
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Env | Budget | Sampled gap [95% CI] | Fisher | Holm | Stouffer | Greedy gap [95% CI] | |
|---|---|---|---|---|---|---|---|
| starpilot | 8M | 6 | |||||
| starpilot | 25M | 18 | |||||
| fruitbot | 8M | 6 | |||||
| fruitbot | 25M | 6 | |||||
| heist | 8M | 6 | |||||
| heist | 25M | 12 |
| Env | Sampled gap [95% CI] | Fisher | Holm | Greedy gap [95% CI] | Fisher | Holm | ||
|---|---|---|---|---|---|---|---|---|
| starpilot | 6 | |||||||
| fruitbot | 6 | |||||||
| bigfish | 6 | |||||||
| coinrun | 6 | |||||||
| miner | 6 | |||||||
| dodgeball | 6 |
| Env | Levels | Floor | Sampled | Greedy | Sampled call | Greedy call |
| starpilot (8M) | train | above | above | |||
| test | above | above | ||||
| fruitbot (8M) | train | above | above | |||
| test | above | above | ||||
| bigfish (8M) | train | n.d. | n.d. | |||
| test | n.d. | n.d. |
| Raw | Merged (per state) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Env | |||||||||||
| starpilot | L | L | L | L | L | L | L | L | L | L | |
| fruitbot | I | I | I | L | L | L | L | L | L | L | |
| bigfish | I | I | L | L | L | L | L | L | L | L | |
| coinrun | I | I | I | I | I | I | I | I | L | L | |
| miner | I | I | I | L | L | L | L | L | L | L | |
| Env | (global) | Raw | Merged (state) | Merged (game) | Share | Greedy states | First 1024 |
|---|---|---|---|---|---|---|---|
| starpilot | 11 | ||||||
| fruitbot | 4 | ||||||
| bigfish | 9 | ||||||
| coinrun | 9 | ||||||
| miner | 5 | ||||||
| dodgeball | 10 |
| Env | Floor | Greedy | Merged | Sampled | Merged call | Merged greedy | Disagree. |
|---|---|---|---|---|---|---|---|
| starpilot | above | ||||||
| fruitbot | above | ||||||
| bigfish | n.d. | ||||||
| coinrun | n.d. | ||||||
| miner | below | ||||||
| dodgeball | below |
| Sampled | Greedy | Uniform floor | |||||
| Env | Budget | , | Train | Test | Test | Train | Test |
| starpilot | 8M | 2.5, 64 | 0.25 | 0.26 | 0.25 | 0.02 | 0.01 |
| fruitbot | 8M | -1.5, 32.4 | 0.76 | 0.72 | 0.81 | 0.03 | 0.03 |
| bigfish | 8M | 1, 40 | 0.09 | 0.05 | 0.06 | 0.00 | 0.00 |
| coinrun | 8M | 5, 10 | 0.15 | 0.14 | 0.29 | 0.41 | 0.34 |
| miner | 8M | 1.5, 13 | 0.52 | 0.39 | 0.08 | 0.02 | 0.03 |
| Codebase | Venue | Commit | S | L | Location (file:line) |
|---|---|---|---|---|---|
| UCB-DrAC | NeurIPS’21 | 1fbf2567cca1 | ✓ | – | test.py:42 ( deterministic=False ) |
| DAAC | ICML’21 | 2fe302029428 | ✓ | – | test.py:31 ( act() , default False) |
| PLR | ICML’21 | ccecf452ee33 | ✓ | – | test.py:71 (default False, test.py:34 ) |
| EDE | NeurIPS’23 | 89396f548aaa | ✓ | – | test.py:70 (PPO; default :30 ); train_rainbow.py:642 ( ) |
| Impoola | RLC’25 | 1d71110451cc | ✓ | – | evaluation.py:30 ; ppo_training.py:47 (F), dqn_training.py:50 (T) |
| VSOP | ICML’24 | 7764611bdc98 | ✓ | ✓ | ppo_procgen.py:368 ( probs.sample() ); :457 :691 |
| Hyperparameter | Value |
|---|---|
| Parallel environments | 16 (8M); 256 (25M) |
| Rollout length | 256 |
| Total timesteps | 8M; 25M |
| Learning rate | (no annealing) |
| Discount factor | 0.999 |
| GAE | 0.95 |
| Sampled | Greedy | ||||||
|---|---|---|---|---|---|---|---|
| Env | Encoder | Train | Test | Gap | Train | Test | Gap |
| starpilot | IMPALA | ||||||
| starpilot | FPN | ||||||
| fruitbot | IMPALA | ||||||
| fruitbot | FPN | ||||||
| bigfish | IMPALA | ||||||
| Budget | Rule | Train | Test | Gap |
|---|---|---|---|---|
| 8M ( ) | sampled | |||
| 8M ( ) | greedy | |||
| uniform floor † | ||||
| 25M ( ) | sampled | |||
| 25M ( ) | greedy | |||
| uniform floor † |
| ( ) | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Env | Enc. | As computed | Perm. | Analytic | A | C | B | D | PR |
| starpilot | IMPALA | 0.020 | 0.001 | 0.001 | 0.008 | 0.013 | 0.003 | 0.002 | 1.4 |
| starpilot | FPN | 0.020 | 0.002 | 0.002 | 0.014 | 0.012 | 0.003 | 0.003 | 1.6 |
| fruitbot | IMPALA | 0.144 | 0.023 | 0.023 | 0.259 | 0.251 | 0.040 | 0.039 | 22.6 |
| fruitbot | FPN | 0.042 | 0.008 | 0.008 | 0.081 | 0.097 | 0.015 | 0.014 | 7.4 |
Reinforcement Learning
Reinforcement learning studies how agents learn sequential decisions from rewards and interaction, balancing exploration, performance, safety, and adaptation.
See all 1,727 papers