CriticHack: Evaluating Visual Rewards Under Robot Policy Optimization
Organizations: Johns Hopkins University · Dalian University of Technology · Rutgers University · Baidu ·
Abstract
Learned visual reward models are increasingly used to optimize robot policies, yet a reward model can score an execution that acts on the wrong object as highly as one that completes the task. We show that optimizing such a reward can amplify these wrong-object failures while reward and task success both rise, so the signals a practitioner would normally monitor look healthy. We fine-tune every denoiser parameter of a diffusion policy against Robometer on a drawer task. Starting from a supervised policy with no prior reward exposure, five training runs raise task success by 10.2 percentage points and wrong-object failures by 10.9 points on 512 evaluation seeds, whereas five runs trained on the simulator's task-completion signal raise success without amplifying wrong-object failures (difference 9.2 points, 95% CI 5.6 to 13.0). The amplification recurs from a policy previously optimized against learned rewards, under the policy's native diffusion sampler, at matched distance from the initial policy, and across constrained-policy experiments with two critics and two optimizers. A tilt model explains when it occurs: under KL-regularized optimization, an outcome becomes more frequent whenever its expected reward under the initial policy exceeds the population average. Robometer separates successes from failures well overall (AUROC .81) but scores wrong-object failures slightly above successes (AUROC .37), so optimization raises both. The same model predicts the outcome shifts across 26 constrained settings (Spearman .89), including those in which task success falls, and Robometer's own published success-termination recipe inherits the error. A frozen outcome verifier redirects the same optimization toward the requested task.
Figures & tables
| Comparison | Success (pp) | Wrong-object (pp) | Robometer | |||
| Supervised initialization: five trainings per reward | ||||||
| Robometer | +10.2 | [6.9, 13.6] | +10.9 | [7.3, 14.4] | +.137 | [.107, .167] |
| Terminal completion | +13.9 | [9.5, 18.3] | +1.6 | [ 1.9, 5.2] | +.062 | [.029, .096] |
| Robometer completion | 3.7 | [ 7.5, 0.1] | +9.2 | [5.5, 13.0] | +.075 | [.043, .107] |
| Warm start: five trainings per reward, three dense-completion oracles | ||||||
| Robometer (critic) | +8.4 | [4.9, 11.9] | +3.8 | [0.8, 6.8] | +.061 | [.036, .086] |
Appendix figures & tables44 assets
Supplementary material from the paper’s appendix.
Appendix
| Claim | Evidence and control | Scope |
|---|---|---|
| Useful learning and wrong-object amplification coexist | Five critic trainings, 512 shared seeds; Table 1 . Oracle controls in Appendix C . | Full-denoiser optimization from a reward-exposed drawer policy under the fixed evaluation protocol. |
| Prior critic exposure is not required | Three trainings per objective from supervised initialization, 512 seeds; Appendix C.2 . | A layout selected by a fixed capability screen. |
| Verification redirects behavior | Five product trainings versus critic, 512 shared seeds; verifier-only controls in Appendices C and M.1 . | Product–critic contrasts under the fine-tuning sampler and matched verifier-only controls with task-specific outcome supervision. |
| The pattern recurs across protocols | Drawer Robometer and distinct-color LIV stacking under PPO and GRPO; Appendix D . | Fixed noise supports and task-specific verifiers; complete task–critic grid in Appendix K . |
| Aggregate AUROC can mask semantic misranking | Collected-trajectory audit; Section 5.3 and Appendix B.5 . | Descriptive reward ordering on collected trajectories from the evaluated policies. |
| Robometer | Verifier | Product | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Panel | S | W | O | S | W | O | S | W | O | |
| All executions | 16 | 3 | 13 | 0 | 16 | 0 | 0 | 16 | 0 | 0 |
| 64 | 23 | 41 | 0 | 63 | 1 | 0 | 64 | 0 | 0 | |
| 256 | 100 | 156 | 0 | 254 | 2 | 0 | 246 | 10 | 0 | |
| Final policies | 16 | 8 | 8 | 0 | 16 | 0 | 0 | 16 | 0 | 0 |
| 64 | 27 | 37 | 0 | 63 | 1 | 0 | 62 | 2 | 0 | |
| Policy | Success (pp) | Wrong-object (pp) | Completion | |||
| Dense oracle A | +14.5 | [10.5, 18.4] | 0.2 | [ 3.3, 2.9] | +.127 | [.092, .161] |
| Dense oracle B | +13.1 | [9.4, 16.8] | 2.1 | [ 5.1, 0.8] | +.134 | [.101, .168] |
| Dense oracle C | +12.3 | [8.4, 16.2] | 2.3 | [ 5.3, 0.6] | +.123 | [.089, .157] |
| Terminal oracle | +19.1 | [15.0, 23.2] | 1.0 | [ 4.5, 2.3] | +.176 | [.140, .213] |
| Verifier only (V1) | +15.2 | [11.1, 19.3] | 1.6 | [ 4.7, 1.6] | +.146 | [.109, .183] |
| Verifier only, six trainings | +15.8 | [12.2, 19.4] | 1.2 | [ 3.8, 1.4] | +.146 | [.112, .180] |
| Training | Success (pp) | Wrong-object (pp) | Robometer | |||
|---|---|---|---|---|---|---|
| Robometer 1 | +9.4 | [5.5, 13.3] | +13.5 | [9.4, 17.6] | +.123 | [.092, .153] |
| Robometer 2 | +9.8 | [6.1, 13.5] | +10.2 | [6.4, 14.1] | +.167 | [.137, .198] |
| Robometer 3 | +9.6 | [5.9, 13.5] | +11.9 | [8.2, 15.8] | +.129 | [.098, .160] |
| Robometer 4 | +11.7 | [7.6, 15.8] | +9.6 | [5.7, 13.7] | +.138 | [.105, .171] |
| Robometer 5 | +10.7 | [6.6, 14.6] | +9.2 | [5.3, 13.1] | +.130 | [.099, .162] |
| Completion 1 | +17.6 | [12.9, 22.3] | +3.9 | [0.4, 7.4] | +.094 | [.061, .126] |
| Training | Initialization | Oracle | Critic | Product | |
|---|---|---|---|---|---|
| (a) Original critic score | |||||
| Drawer / Robometer | |||||
| PPO 1 | 32 | 0.4050 | 0.5517 | 0.7141 | 0.6594 |
| PPO 2 | 32 | 0.3903 | 0.4817 | 0.8102 | 0.6249 |
| PPO 3 | 32 | 0.3393 | 0.4273 | 0.7709 | 0.6456 |
| GRPO 1 | 64 | 0.3008 | 0.6152 | 0.7937 | 0.6314 |
| Reward change | Task-success change (count of ) | ||||||||
| Training | Critic Init. | Oracle Init. | Critic Init. | Product Critic | |||||
| Drawer / Robometer | |||||||||
| PPO 1 | 32 | .3091 | [ .1915, .4252] | 20 | [ 14, 26] | 1 | [ 5, 3] | 22 | [ 17, 27] |
| PPO 2 | 32 | .4199 | [ .3139, .5218] | 8 | [ 3, 14] | 9 | [ 14, 4] | 23 | [ 18, 28] |
| PPO 3 | 32 | .4316 | [ .3184, .5410] | 12 | [ 6, 18] | 4 | [ 8, 1] | 23 | [ 18, 28] |
| GRPO 1 | 64 | .4929 | [ .4252, .5601] | 42 | [ 34, 50] | 8 | [ 14, 3] | 52 | [ 45, 58] |
| Outcome rate (%) | Change from Initialization (pp) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Policy | Success | Wrong-object | Other | Success | Wrong-object | |||||
| Initialization | 30.0 | [18.1, 45.4] | 22.5 | [12.3, 37.5] | 47.5 | [32.9, 62.5] | – | – | ||
| Critic-trained | 25.0 | [14.2, 40.2] | 37.5 | [24.2, 53.0] | 37.5 | [24.2, 53.0] | 5.0 | [ 23.8, 14.3] | 15.0 | [ 5.0, 33.5] |
| Completion-trained | 40.0 | [26.3, 55.4] | 17.5 | [8.7, 31.9] | 42.5 | [28.5, 57.8] | 10.0 | [ 10.6, 29.5] | 5.0 | [ 22.4, 12.7] |
| Task | Critic, decoy color | Amplified strata |
|---|---|---|
| Drawer | Robometer | 5/5 |
| Stacking | LIV, distinct color | 4/4 |
| Stacking | LIV, near color | 0/4 |
| Stacking | Robometer, near color | 2/5 |
| Stacking | Robometer, distinct color | 0/5 |
| Drawer | LIV | 0/6 |
| Change in count of | |||||||||
| Training | Decoy | Wrong-object | Success | Critic score | Amplified | ||||
| Drawer / Robometer | |||||||||
| PPO 1 | – | 32 | 15 | [ 9, 21] | 1 | [ 5, 3] | .3091 | [ .1915, .4252] | ✓ |
| PPO 2 | – | 32 | 24 | [ 19, 29] | 9 | [ 14, 4] | .4199 | [ .3139, .5218] | ✓ |
| PPO 3 | – | 32 | 22 | [ 17, 27] | 4 | [ 8, 1] | .4316 | [ .3184, .5410] | ✓ |
| GRPO 1 | – | 64 | 46 | [ 39, 53] | 8 | [ 14, 3] | .4929 | [ .4252, .5601] | ✓ |
| Training | Success (pp) | Wrong-object (pp) | Robometer | |||
|---|---|---|---|---|---|---|
| Critic 1 | +8.0 | [3.7, 12.3] | +6.6 | [2.5, 10.7] | +.092 | [.060, .124] |
| Critic 2 | +13.1 | [8.4, 18.0] | +4.9 | [0.8, 9.0] | +.097 | [.062, .132] |
| Critic 3 | +10.4 | [5.9, 14.8] | +7.2 | [3.1, 11.3] | +.075 | [.042, .108] |
| Critic 4 | +13.3 | [8.8, 17.8] | +1.2 | [ 2.7, 5.1] | +.085 | [.052, .118] |
| Critic 5 | +9.6 | [5.5, 13.7] | +5.1 | [1.2, 9.0] | +.069 | [.038, .101] |
| Critic, pooled | +10.9 | [6.6, 15.2] | +5.0 | [1.0, 8.9] | +.084 | [.054, .114] |
| Family and checkpoint | Trainings | KL per decision | Success (pp) | Wrong-object (pp) |
|---|---|---|---|---|
| Warm start, critic, iteration 10 | 5 | 0.46 [0.42, 0.50] | +1.1 | +0.7 |
| Warm start, critic, iteration 20 | 5 | 1.01 [0.98, 1.05] | +3.1 | +2.0 |
| Warm start, critic, iteration 30 | 5 | 1.62 [1.57, 1.67] | +6.2 | +2.7 |
| Warm start, critic, iteration 40 | 5 | 2.15 [2.03, 2.25] | +8.4 | +3.8 |
| Warm start, product, iteration 10 | 5 | 0.55 [0.51, 0.60] | +3.2 | 0.4 |
| Warm start, product, iteration 20 | 5 | 1.20 [1.17, 1.23] | +8.6 | 0.7 |
| Threshold | Warm-start critic | Critic product | Supervised Robometer | Robometer completion | ||||
|---|---|---|---|---|---|---|---|---|
| 5 mm | +3.9 | [0.7, 7.0] | +5.2 | [2.6, 8.0] | +12.1 | [8.4, 15.9] | +10.9 | [7.0, 14.9] |
| 10 mm | +3.7 | [0.6, 6.8] | +5.0 | [2.4, 7.7] | +10.9 | [7.1, 14.7] | +9.6 | [5.9, 13.6] |
| 15 mm | +4.1 | [1.0, 7.2] | +4.8 | [2.2, 7.6] | +10.4 | [6.7, 14.1] | +9.6 | [6.0, 13.4] |
| 20 mm | +3.8 | [0.8, 6.8] | +4.4 | [1.8, 7.1] | +10.9 | [7.3, 14.4] | +9.2 | [5.5, 13.0] |
| 25 mm | +3.9 | [1.2, 6.8] | +4.2 | [1.8, 6.8] | +10.9 | [7.5, 14.5] | +9.0 | [5.5, 12.5] |
| 30 mm | +4.3 | [1.5, 7.1] | +4.5 | [1.9, 7.1] | +10.7 | [7.3, 14.3] | +8.8 | [5.3, 12.5] |
| Family | Reward gain | Predicted S | Measured | Predicted W | Measured | ||
|---|---|---|---|---|---|---|---|
| Supervised, Robometer | +.124 | +9.7 | [0.1, 0.1] | +10.0 | +7.2 | [0.1, 0.1] | +10.2 |
| Supervised, completion | +.163 | +14.3 | [0.1, 0.2] | +14.5 | 2.5 | [ 0.0, 0.0] | +1.9 |
| Warm start, critic | +.061 | +4.1 | [0.0, 0.0] | +8.4 | +3.9 | [0.0, 0.0] | +3.8 |
| Warm start, product | +.203 | +27.7 | [0.3, 0.3] | +15.5 | 5.0 | [ 0.1, 0.0] | 0.6 |
| Warm start, verifier only | +.339 | +33.3 | [0.3, 0.4] | +15.9 | 5.8 | [ 0.1, 0.0] | 1.1 |
| Success | Wrong-object | Other failure | |
| Executions | 2,009 | 1,130 | 1,325 |
| Detected as success (probability .6) | 73.4% | 89.4% | 1.6% |
| Mean detection step (of 300) | 295 | 236 | 297 |
| AUROC: S vs. W / other / all failures | |||
| Terminal success probability | 0.195 / 0.951 / 0.603 | ||
| Dense progress with success termination | 0.125 / 0.935 / 0.562 | ||
| Run / condition | [95% CI] | |||||
|---|---|---|---|---|---|---|
| Drawer / Robometer / PPO | ||||||
| R82 | 32 | 4/9 | 24/2 | 3/24 | 25/5 | |
| R87 | 32 | 11/4 | 19/3 | 2/28 | 25/3 | |
| R88 | 32 | 6/6 | 18/4 | 2/28 | 25/5 | |
| Drawer / Robometer / GRPO | ||||||
| R114 | 64 | 12/8 | 54/1 | 4/54 | 56/0 | |
| Run / condition | Labels | ||||||
|---|---|---|---|---|---|---|---|
| Drawer / Robometer / PPO | |||||||
| R82 | 32 | 384 | 4/9 | 24/2 | 3/24 | 25/5 | – |
| R87 | 32 | 384 | 11/4 | 19/3 | 2/28 | 25/3 | – |
| R88 | 32 | 384 | 6/6 | 18/4 | 2/28 | 25/5 | – |
| Drawer / Robometer / GRPO | |||||||
| R114 | 64 | 384 | 12/8 | 54/1 | 4/54 | 56/0 | 55/0 |
| Static metric (initial policy) | Full panel | Strata | Disjoint halves (combined) | Strata (A B / B A) |
|---|---|---|---|---|
| S1 AUROC, success vs all failures | 29 | 28 / 28 | ||
| S2 AUROC, success vs wrong-object | 29 | 25 / 27 | ||
| S3 standardized margin | 29 | 29 / 29 | ||
| S4 top-quartile enrichment | 29 | 29 / 29 | ||
| (S2) (S1), common strata | 29 | – |
| Arm | Iter. | success (pp) [95% CI] | completion [95% CI] |
|---|---|---|---|
| History A | 010 | ||
| 020 | |||
| 030 | |||
| 040 | |||
| History B | 010 | ||
| 020 |
| Training | Interpretation | ||||
|---|---|---|---|---|---|
| R85 | 30 | 94 | 0 | 53 | Induction and partial repair |
| R93 | 31 | 94 | 4 | 3 | Induction; repair fails |
| R94 | 28 | 69 | 67 | 84 | Rewarded errors coexist with task learning |
| Run / condition | [95% CI] | |||||
|---|---|---|---|---|---|---|
| Drawer / LIV / PPO | ||||||
| R182 / original | 64 | 14/11 | 58/2 | 17/10 | 53/5 | |
| R178 / original | 64 | 12/13 | 45/0 | 11/15 | 48/5 | |
| R187 / norm. | 64 | 14/10 | 60/2 | 7/0 | 63/0 | |
| R188 / norm. | 64 | 14/6 | 43/3 | 15/1 | 58/4 | |
| Drawer / LIV / GRPO | ||||||
| Run | Protocol | /64 | (mm) | (mm) |
|---|---|---|---|---|
| R182 | PPO | |||
| R178 | PPO | |||
| R187 | Norm. PPO | |||
| R188 | Norm. PPO | |||
| R183 | GRPO | |||
| R179 | GRPO |
| Development family | Outcome and boundary |
|---|---|
| Reward-weighted denoiser regression | Initial mitigation does not persist across the second training. It does not establish neural-decoder RL repair. |
| Noise-policy SAC | Oracle also degrades; the control does not validate a learnable family in which learned reward is specifically to blame. |
| RoboReward cube PPO/GRPO | Complete later panels do not induce the targeted original high-score failures. Product task improvement is not hacking repair. |
| Terminal-feature replacement | Does not reliably repair identity errors; late policy observations and final critic images are different inputs. |
| Unbalanced-color training | Negative transfer and supervision effects are retained as development boundaries. Final balanced-color evidence does not establish unseen-color or unseen-task transfer. |
| Run / color | ||||||
|---|---|---|---|---|---|---|
| Stacking / Robometer / PPO | ||||||
| R164 / near | 20/19 | 38/21 | 26/32 | 38/18 | 30/25 | |
| R164 / distinct | 20/17 | 59/3 | 60/1 | 61/0 | 48/16 | |
| R169 / near | 27/23 | 43/17 | 37/25 | 41/19 | 36/20 | |
| R169 / distinct | 27/22 | 63/1 | 61/3 | 62/2 | 45/18 | |
| R175 / near | 24/15 | 40/13 | 30/28 | 32/20 | 39/17 | |
| Window | Test AUROC | Brier | TP / 24 | FP / 88 |
|---|---|---|---|---|
| Full episode | 1.000 | .0022 | 24 | 0 |
| Final quarter | .718 | .2225 | 9 | 18 |
| Training 1 | Training 2 | |||
|---|---|---|---|---|
| Objective | Critic reward | Success / 64 | Critic reward | Success / 64 |
| Uniform | .0390 | 12 | .0383 | 12 |
| Oracle | .0471 | 63 | .0467 | 64 |
| Original reward | .0647 | 2 | .0681 | 5 |
| Full-history product | .0468 | 63 | .0466 | 64 |
| Verifier-only | .0468 | 63 | .0469 | 64 |
| Parent | Measure | ||||||
|---|---|---|---|---|---|---|---|
| ID opening .475 | |||||||
| R82 | Success / wrong | 10/10 | 4/58 | 3/60 | 61/0 | 61/0 | 54/6 |
| Original reward | 0.326 | 0.838 | 0.856 | 0.689 | 0.684 | 0.662 | |
| R87 | Success / wrong | 15/10 | 4/57 | 3/57 | 52/4 | 49/5 | 54/1 |
| Original reward | 0.330 | 0.813 | 0.809 | 0.613 | 0.602 | 0.602 | |
| R88 | Success / wrong | 10/16 | 3/56 | 4/54 | 16/30 | 22/20 | 59/2 |
| Setting | Training ID | Original run ID |
| Drawer / Robometer | PPO 1 | R82 |
| Drawer / Robometer | PPO 2 | R87 |
| Drawer / Robometer | PPO 3 | R88 |
| Drawer / Robometer | GRPO 1 | R114 |
| Drawer / Robometer | GRPO 2 | R151 |
| Stacking / LIV | PPO 1 | R167 |
RL for Robotics
Reinforcement learning for robotics trains robots to act through interaction, from locomotion and navigation to dexterous manipulation.
See all 241 papers