Making two action heads agree: coordination mechanisms and a runtime collapse certificate for flow-matching policies
Organizations: School of Automation, Nanjing University of Science and Technology, Nanjing, 210094, Jiangsu, China
Abstract
A dual-representation flow-matching policy decodes each predicted motion into joint and end-effector spaces, and the residual between the two kinematically equivalent decodings provides a physically interpretable runtime signal. On multimodal tasks, however, independently sampled branches may choose different valid modes, causing false alarms. We study how to coordinate the two branches and at what cost. Across two robot environments and a non-robotic testbed, the tested mechanisms fall into four classes. An auxiliary latent shared by both branches but absent from the flow-matching construction is erased at the population optimum, a provable dead end confirmed within a prespecified 2% equivalence band. Sharing source noise can coordinate or anti-coordinate: its effect changes sign with the representation map and tracks the alignment of decoder mode basins. Consistency regularization gives intermediate coordination but reduces the valid-pair rate, while training-supported discrete partitions achieve near-ceiling coordination robustly. We further derive a chance-corrected coordination bound based only on each branch's Gini-Simpson diversity, yielding an attainable region and a label-free certificate that separates coordination from collapse when zero mismatch is ambiguous. On LIBERO-Plus, benign multimodality adds 1.57 percentage points of false alarms to the residual, which remains the strongest evaluated failure signal; the preregistered token intervention does not meet its false-alarm criterion or produce a seed-robust detection change. Code, models, and per-run configurations are available at https://github.com/kimo423/dual-head-coordination.
Figures & tables
| This paper | Agreement-statistics object |
| observed disagreement | |
| chance disagreement, own-marginal convention ( Cohen, 1960 ) | |
| numerator of Cohen’s kappa; at , | |
| Cohen’s kappa | |
| denominator of Gorodkin’s ( Gorodkin, 2004 ) | |
| ; at , the phi coefficient/MCC ( Matthews, 1975 ) |
| head-valid marginals | exact both-valid marginals | excursions | ||||||
| Family | HV BV | |||||||
| C dim-0 anchor | 3 | 0.4858 | 0.4857 | 0/0 0/0 | ||||
| D continuous prior | 3 | 0.4708 | 0.4708 | 0/0 0/0 | ||||
| E posterior (3 KL scales) | 5 | 0.0256 | 0.0223 | 301/303 0/0 | ||||
| H episode token, uniform | 3 | 0.4885 | 0.4766 | 3/107 0/0 | ||||
| I episode token, learned prior | 3 | 0.4907 | 0.4810 | 68/217 0/0 | ||||
| Claim | Evidence | Evidential status |
| Algebraic bound; no violation in 1275 exact-accounting robot conditions or in the testbed evaluations | Established : identity, not an empirical finding | |
| Auxiliary latent outside the CFM construction | Two robot environments, three seeds each; TOST at ; | Supported as finite-model equivalence ; the exact zero is the population prediction under (A1)–(A2), (A3)–(A5) |
| Shared source noise | v2 eight-seed mean (sd , four signs each way); testbed factorial at ten seeds per cell: interaction range 90.1 pp, permutation | Map dependence preregistered-and-confirmed ; seed-unstable on the robots; quote with seed and representation map |
| Endpoint consistency coordinates without a data-derived partition | in v2 and in v3; valid-pair rate in v2 | Supported in the tested robot regimes , with the validity cost part of the result |
| Partition tokens reach the robot-side high-capacity corner | Robot-side tokens reach – ; an amortized posterior reaches the same region on the balanced testbed | Supported as a robust sufficient robot-side route , not as a necessary condition in general |
| Benign multimodality raises residual false alarms | Residual surcharge pp, CI ; observation-side control pp | Preregistered and supported on this benchmark and operating point |
| # | Family | Shared | Valid | Res. (mm) | Site | ||||||
| A | independent, | — | 3 | 0.4826 | 0.4839 | 0.4474 | 0.7729 | 84.79 | I | ||
| B | shared source noise, | noise | 3 | 0.4362 | 0.4369 | 0.4185 | 0.7679 | 82.42 | I ‡ | ||
| C | continuous , dim-0 anchor | — | 3 | 0.4921 | 0.4941 | 0.4857 | 0.7758 | 87.02 | I | ||
| D | continuous prior, | 3 | 0.4843 | 0.4834 | 0.4708 | 0.8526 | 85.18 | I | |||
| E | continuous posterior (3 KL) | 5 | 0.0000 | – | 0.0001–0.0625 | 0.9292 | 15.78 | II | |||
| F | endpoint consistency (+B) | loss | 3 | 0.4235 | 0.4492 | 0.4363 | 0.7830 | 74.17 | III |
| Family | (per seed) | Valid | Resid. (mm) | |||||
| A independent | 3 | 0.4811 | 0.4811 | ( ) | 0.4700 | 0.7382 | 98.5 | |
| B shared source noise | 3 | 0.4567 | 0.4652 | ( ) | 0.4555 | 0.7501 | 95.7 | |
| D continuous prior | 3 | 0.4723 | 0.4748 | ( ) | 0.4636 | 0.6474 | 96.9 | |
| G endpoint consistency | 3 | 0.1709 | 0.4458 | ( ) | 0.4319 | 0.4449 | 60.8 | |
| H episode token, uniform draw | 2 | 0.0784 | 0.4708 | ( ) | 0.4661 | (88.6/79.6) | 0.7056 | 38.9 |
| K oracle | 1 | 0.0000 | 0.4994 | 0.4964 | 0.8704 | 13.79 |
| v2 family | sd | v3 family | sd | ||
| A independent (6) | 0.27 | A independent (6) | 0.20 | ||
| B shared noise (8) | 3.41 | B shared noise (8) | 2.09 | ||
| G consistency (8) | 8.72 | G consistency (6) | 1.79 | ||
| rung (5) | 5.18 | episode token (6) | 3.26 | ||
| control (4) | 0.48 | continuous prior (6) | 0.19 | ||
| episode token, learned (8) bv | 1.36 |
| Configuration | seed | Valid | / | Entropy (nats) | (pool/p.-c.) | Resid. | ||||
| , fb 0.1 | 0 | 0.0000 | 0.8804 | 0.992/0.986 | 0.046/0.074 | 0.0158 | 0.0158 | 104.1%/100.0% | 17.61 | |
| , fb 0.1 | 1 | 0.0000 | 0.9087 | 0.992/0.988 | 0.048/0.067 | 0.0163 | 0.0163 | 102.1%/100.0% | 15.95 | |
| 0 | 0.0000 | 0.9620 | 0.990/0.991 | 0.057/0.051 | 0.0170 | 0.0170 | 100.2%/100.0% | 14.76 | ||
| 1 | 0.0000 | 0.9010 | 0.032/0.039 | 0.143/0.166 | 0.0625 | 0.0625 | 100.5%/100.0% | 15.56 | ||
| , fb 0.5 | 0 | 0.0000 | 0.9937 | 1.000/1.000 | 0.000/0.000 | 0.0001 | 0.0001 | 100.0%/100.0% | 15.04 | |
| (ref.) window token | 0 | 0.0000 | 0.9800 | 0.502/0.501 | 0.693/0.693 | 0.5000 | 0.5000 | 100.0%/100.0% | 22.51 |
| Family | ||||
| amortized posterior, | 100.0% | — | 97.1% | 94.3% |
| amortized posterior, , fb 0.5 | 86.4% | — | 75.6% | 63.5% |
| oracle token, uniform test draw | 82.4% | 87.3% | 84.9% | 80.1% |
| oracle token, learned prior | 83.4% | — | 84.5% | 80.4% |
| unsupervised k-means token | 77.8% | 78.1% | 48.7% | 51.2% |
| Family | nullspace | orthogonal | polar | Range |
| independent / continuous prior | / | / | / | 0.2–0.4 pp |
| unsupervised token / oracle token | / | / | / | 0.4–0.7 pp |
| shared source noise | 90.6 pp | |||
| consistency, | 99.7 pp |
| KL pressure | symm. .50 | tight .50 | tight .80 | |||
| .963 / 1.000 | — | .904 / .998 | .960 / .999 | .963 / .999 | .962 / .999 | |
| .992 / 1.000 | .997 / 1.000 | .994 / 1.000 | .006 / .017 | .997 / .999 | .601 / .695 | |
| .997 / 1.000 | — | .521 / .624 | .106 / .189 | .993 / .999 | .762 / .820 | |
| (fb 0.1) | .994 / 1.000 | — | .259 / .368 | — | — | — |
| Quantity | v2 (10 runs) | v3 (9 runs) |
| same-mode floor | 18.0–24.0 mm | 25.0–33.5 mm |
| cross-mode residual | 151.4–159.5 mm | 174.7–183.9 mm |
| both-valid mean | 77.3–88.5 mm | 87.0–105.2 mm |
| / same-mode floor | 3.32–4.68 | 2.96–3.96 |
| cross-mode contribution share | 82.8–89.7% | 81.2–87.0% |
| Object | Mechanism | Valid-pair rate (uncoupled) | ||
| cross-representation (family B) | shared source noise | 0.4362 | 0.768 (0.773) | |
| ensemble b1_l0 (ten pairs) | shared | 0.1434 | 0.9305 (0.9296) | |
| ensemble b0_l0 | shared | 0.1859 | 0.9330 (0.9334) | |
| ensemble b0_l3 | shared | 0.1079 | 0.8353 (0.8303) | |
| ensemble, mixed objectives | shared | 0.0551 | 0.8656 (0.8587) |
| fail | succ | coord. residual | uncoord. residual | RND | ACE | ||
| 50 | 369 | 482 | 0.4878 | 0.5226 | 0.4808 | 0.5137 | 0.3080 |
| 75 | 369 | 482 | 0.5740 | 0.6212 | 0.5352 | 0.5756 | 0.3590 |
| 100 | 369 | 312 | 0.6200 | 0.6856 | 0.5285 | 0.5662 | 0.5458 |
| 125 | 369 | 99 | 0.6139 | 0.7309 | 0.5237 | 0.6066 | 0.5269 |
| 150 | 369 | 48 | 0.7667 | 0.9000 | 0.3333 | 0.4000 | 0.8667 |
| Signal | Family | Stratified AUROC |
| uncoordinated residual, 16-sample mean | cross-representation | 0.8780 |
| uncoordinated residual | cross-representation | 0.8479 |
| coordinated residual, 16-sample mean | cross-representation | 0.8401 |
| coordinated residual | cross-representation | 0.8209 |
| random-network distillation ( Römer et al., 2025 ) | observation side | 0.7524 |
| observation side | 0.7066 |
| Signal | FA multimodal | FA unimodal | Gap (pp) | 95% CI (pp) |
| coordinated residual | 9.75% | 8.19% | ||
| uncoordinated residual | 8.52% | 6.98% | ||
| 5.41% | 5.42% | |||
| random-network distillation | 5.33% | 6.38% | ||
| action-chunk entropy | 5.23% | 5.63% |
| Token partition | Local partition | |||||
| Arm | ||||||
| coordinated | 0.0055 | 0.0281 | ||||
| independent tokens | 0.0055 | 0.0282 | ||||
| shuffled pairing | 0.0055 | 0.0281 | ||||
| uncoordinated network | 0.0068 | 0.0309 | ||||
| prior entropy nats | ||||||
Appendix figures & tables8 assets
Supplementary material from the paper’s appendix.
Appendix
| Round | Environment | Runs | Evaluation |
| Mechanism atlas | BimodalBypass (v2) | 68 total | 75 conditions, 500 pairs |
| RotatingBypass (v3) | 36 conditions, 240 pairs | ||
| Threshold / NFE sensitivity | v2 and v3 | (no retraining) | 108 re-evaluations |
| Ensemble protocols | v2 only | 4 families, 5 members | 4 protocols, 10 pairs (main family) |
| Testbed, balanced | RotatingRing | 186 50k steps | 96,000 samples/run; 135 re-evaluations |
| Testbed, skewed prior | RotatingRing | 153 (51 cells 3 seeds) | 75 conditions/run; 15.1 GPU-hours |
| Family | Marg. | |||||
| A independent (3s) | 0.4826 | 0.4839 | 0.4474 | 0.3% | head | |
| A seed0/1/2 | 0.4439/0.4495/0.4488 | 0.1/0.7/0.4% | head | |||
| B shared noise (3s) | 0.4362 | 0.4369 | 0.4185 | 0.2% | head | |
| B seed0/1/2 | 0.4565/0.3864/0.4126 | /0.4/4.0% | head | |||
| C dim-0 anchor (3s) | 0.4921 | 0.4941 | 0.4857 | 0.4% | both | |
| D continuous prior (3s) | 0.4843 | 0.4834 | 0.4708 | % | both |
| Family | (per seed) | Valid | ||||
| A independent (3 seeds) | 0.4811 | 0.4811 | ( ) | 0.4700 | 0.3% | 0.7382 |
| B shared source noise (3 seeds) | 0.4567 | 0.4652 | ( ) | 0.4555 | 1.9% | 0.7501 |
| D continuous prior (3 seeds) | 0.4723 | 0.4748 | ( ) | 0.4636 | 0.5% | 0.6474 |
| G endpoint consistency (3 seeds) | 0.1709 | 0.4458 | ( ) | 0.4319 | 63.2% | 0.4449 |
| H episode uniform token (2 seeds) | 0.0784 | 0.4708 | ( ) | 0.4661 | 84.1% (88.6/79.6) | 0.7056 |
| K oracle (1 seed) | 0.0000 | 0.4994 | 0.4964 | 100.0% † | 0.8704 |
| Run | step 1 | step 25k | step 50k |
| prior seed0 | 0.3791 / 0.4002 | 0.00280 / 0.00227 | 0.00146 / 0.00137 |
| prior seed1 | 0.4466 / 0.4674 | 0.00293 / 0.00256 | 0.00135 / 0.00127 |
| prior seed2 | 0.3694 / 0.4217 | 0.00283 / 0.00267 | 0.00177 / 0.00167 |
| prior, three-seed mean | 0.398 / 0.430 | 0.00286 / 0.00250 | 0.00153 / 0.00144 |
| posterior (range, 5 runs) | 0.368–0.442 / 0.382–0.525 | 0.0158–0.0328 / 0.0192–0.0435 | 0.0125–0.0215 / 0.0175–0.0269 |
| -dim-0 anchor (3 runs) | 0 | 0 | 0 |
| effect (pooled) | |||||
| shared | |||||
| partial | |||||
| independent | |||||
| valid-pair rate | |||||
| shared | 0.9088 | 0.8728 | 0.8569 | 0.4975 | 0.4576 |
| seed | 95% CI | Valid | 95% CI | / | Res. | |||||||||
| 0 | 0.1900 | [.1853, .1949] | 0.4576 | 0.211 | 0.386 | 0.4342 | [ ] | 0.3974 | 61.5% | 61.7% | 0.515/0.667 | 54.72 | ||
| 1 | 0.2782 | [.2735, .2831] | 0.6338 | 0.164 | 0.375 | 0.4160 | [ ] | 0.3583 | 38.5% | 38.8% | 0.446/0.662 | 58.81 | ||
| 2 | 0.2454 | [.2389, .2516] | 0.4849 | 0.562 | 0.611 | 0.4863 | [ ] | 0.4838 | 49.8% | 49.5% | 0.686/0.668 | 59.44 | ||
| mean | 0.2379 | 0.5254 | 0.4455 | 0.4132 | 49.9% | 50.3% | 0.549/0.666 | 57.66 |
| pos | rot | pos rot | 3-way | Pos. (mm) | Rot. ( ∘ ) | ||
| 0 | 0 | [ , ] | [ , ] | [ , ] | 0.307 | 93.90 | 13.65 |
| 0 | 1 | [ , ] | [ , ] | [ , ] | 0.302 | 94.00 | 13.46 |
| 3 | 0 | [ , ] | [ , ] | [ , ] | 0.430 | 60.97 | 13.05 |
| 3 | 1 | [ , ] | [ , ] | [ , ] | 0.408 | 63.40 | 12.63 |
| v2 | v2 valid | v3 | v3 valid | |
| 0.05 | 0.729 | 0.999 | ||
| 0.08 | 0.609 | 0.999 | ||
| 0.11 | 0.458 | 0.994 | ||
| 0.14 | 0.255 | 0.880 | ||
| 0.17 | 0.050 | 0.585 | ||
| 0.20 | — | — | 0.154 |
Flow Matching
Flow matching learns continuous-time vector fields that transport simple noise distributions into data for efficient generative modeling.
See all 661 papers