Deterministic behavior cloning policies average the modes of multimodal demonstrations. The accepted remedies sample stochastic latent inputs during training, often combined with iterative computation. At inference however, many of these methods run deterministically. We ask what a deterministic policy minimally needs at training and inference. Reading flow matching as phase-conditioned behavior cloning on straight-line demonstrations, we show that a deterministic policy can send rollouts to different modes only through variation in its input before the split, that conditioning on task progress (phase) removes the temporal aliasing in its regression target, and that a score-based penalty pulls predictions toward the locally dominant mode where branches overlap. Phaseformer and a phase-conditioned MLP combine these with demonstrations whose start states vary, and use no latent variable, sampling or iterative computation. They are Pareto-optimal for ultra-low-latency CPU control, and in navigation, varied demonstration starts restore success where identical starts fail in every seed.
A deterministic policy can send two inputs to different modes only if they differ before the split; at a shared input the regression target is the branch average. This is necessary for any split. Phaseformer takes the variation from the demonstrated starts rather than synthesizing it.
Like the interpolation time in flow matching, task progress ρ ∈ [0, 1] is a policy input. Without it, the MSE optimum pools velocities across phases and its rollouts can overshoot or stall. Phaseformer injects ρ into every block through AdaLN. At run time ρ comes from a linear clock or a monotone task-progress estimator, clamped at 1. It is never sampled.
Where demonstrations overlap, an L1 penalty on the velocity error along the score \(\nabla_{\mathbf{x}}\log\hat p_\rho\) moves predictions from the average demonstrated velocity toward the median one. The score is the closed-form gradient of a Gaussian KDE of the demonstrated robot states at each phase, computed once before training and not used at inference.
\(\mathbf{u}\): demonstrated action (a robot-state derivative), \(\mathbf{x}\): robot state, \(\mathcal{O}\): observation, \(\rho\): phase, \(\hat p_\rho\): kernel density estimate of the demonstrated robot states at phase \(\rho\).
| Policy | Stochasticity in training | …at test time | Clock | Feedback |
|---|---|---|---|---|
| Diffusion Policy | noised action chunks | samples noise; K passes | denoising step | every Ta steps |
| MIP | noised input to 2nd step | deterministic; 2 passes | step index | every chunk |
| ACT | CVAE latent z | z = 0; 1 pass | none | every step (ensembling) |
| Streaming Flow Policy | tubes around demos (σ0) | σ0 = 0; 1 pass per action | time in chunk | every chunk |
| Phaseformer | demonstrated starts | deterministic; 1 pass | task progress ρ | every step |
Only Diffusion Policy samples at test time; the others are deterministic maps of their inputs, so the input fixes the mode. Settings as published.
Viewed over phase, a set of demonstrations looks just like a flow matching probability path: a start distribution that evolves and splits into modes. Flow matching is phase-conditioned behavior cloning on straight-line demonstrations. The two fit the same regression target, the average velocity of a family of random paths at each state and phase. Flow matching chooses straight paths; behavior cloning receives curved, obstacle-avoiding or contact-driven ones from the expert.
A · Single path one goal, one route
B · Dual goal two goals, two routes
C · Dual path one goal, two routes around an obstacle
Left: training demonstrations of each navigation scenario. Right: marginal distributions of x, y and heading θ as the phase ρ sweeps from 0 to 1.
A 134K-parameter MLP steers a non-holonomic robot from 1,024 held-out starts. In the dual-path scenario (C), the deterministic policy with no phase and no score hits the block in 29% of rollouts. Phase splits rollouts left (45%) or right (48%), cutting collisions to 7%, and score cuts them to 3%, near Diffusion Policy's 1%, with a single forward pass per step.
On Push-T we compare two parameter-matched 1.8M-parameter backbones, MLP-med wide and the Phaseformer TF-med wide, each with and without phase and score, against Diffusion Policy, MIP and ACT. Variants with phase read it from a small learned task-progress estimator and are scored where it first reads ρ = 1.
Push-T episode performance and final object-pose accuracy: mean score, final position error, orientation error and success rate (final coverage above 0.95). Dots: 10 seeds; bar: mean. Hatched: TF-med wide; plain: MLP-med wide; bold: variants with phase. ACT runs closed loop. †: p < 0.05 vs. TF+phase+score (Welch over seeds).
Final block pose distributions across 50 environments (seed 0), shaded by goal coverage. Phase injection and score regularization let deterministic policies resolve orientation errors.
Rollouts of the two 1.8M-parameter backbones above. Variants with phase stop once their estimator reads ρ = 1: at that point a phase-conditioned policy has finished its task. Compare Phaseformer+score against the other variants and the baselines below.
Phaseformer+score (TF-med wide+phase+score) ours
Compare with: TF-med wide (no phase)
loading…
Columns: 10 policy seeds. Rows: each seed's best, median and worst of its 50 test episodes. Played at 3× real time. Green T: goal pose; blue dot: pusher. Variants with phase: each panel freezes when the episode succeeds ("done at t") or when the phase estimator first reads ρ = 1 ("ρ = 1 at t"). Variants without phase and the baselines run the full episode (up to 300 steps).
When the start state is shared, the MSE target at forks is the branch average regardless of phase conditioning, so a deterministic policy follows one path. The score penalty vanishes where demonstrations coincide and cannot change this. With a fixed start and 512 copies each of a left and a right path (point-to-point fixed), no MLP variant reaches the goal in any seed. This holds even with waypoint noise after the fork (+path noise). Varying the start of every demonstration (+start noise) restores 60–97% success across the four MLP variants: the score-regularized variants reach 95–97%, and MLP+score reaches 97% where the MLP reaches 60% (p = 0.002). Stochastic training starts render stochastic sampling at inference unnecessary.
Spread in the training starts, not variation along the path, is what lets a deterministic policy split between the two routes. Point-to-point fixed: two mirror-image trajectories from one exact start pose, repeated. +path noise: the same start with the dual path scenario's waypoint noise (σ = 0.3 m). +start noise: start-pose noise (8 cm, 0.05 rad) and no waypoint noise. Dual path: the original scenario (C), with both. Left: MMD² × 10³ to each set's held-out demonstrations (log scale; not comparable across sets). Right: success (within 0.6 m of the goal with no collision). Dots: 10 seeds; bar: mean; the score variants use λ = 0.5 and the phase-conditioned ones are in bold. †: p < 0.05 against MLP+phase+score trained on the same set (Welch's t-test over seeds).
Score-regularized deterministic models with phase are Pareto optimal on both CPU and GPU. We time four Push-T backbones, each in all four variants (phase + score, phase, score, neither): two MLPs (0.79M and 1.78M parameters) and two Phaseformers (1.79M and 3.42M). On a CPU, MLP-med wide+phase+score scores 0.67 at 0.39 ms per control step, within a 1 kHz tactile control loop, and TF-large+phase+score reaches 0.72 at 2.1 ms. Every Pareto-optimal policy that does not require iterative computation runs closed loop under the 16.7 ms budget for visual control on a CPU. Diffusion Policy scores highest (0.96 open loop), but needs 432 ms per control step on the CPU and 17 ms on the GPU, even with each decision spread over its 8-step chunk.
Task success versus inference latency for Push-T: mean score over 10 seeds against median latency per control step at batch 1 (log scale). A variant with phase is timed together with its phase estimator; open-loop baselines spread one decision over the 8 steps it executes. Dashed: the Pareto frontier. Vertical lines: 1 kHz tactile and 60 Hz visual feedback control rates.
ACT, Streaming Flow Policy and MIP add stochasticity only in training, so at test time each follows the mode its input selects, as Phaseformer does. On tasks built to need multimodality, neither iterative computation nor sampling at inference is required, and the training stochasticity need not be synthetic, because varied demonstration starts supply it. Sampling at inference, as in Diffusion Policy, remains necessary when the mode depends on nothing the policy observes.
Limitations. Phaseformer+score's low success rate on Push-T, compared to ACT and Diffusion Policy, stems mainly from final position error: success requires 95% goal coverage, which a correctly oriented but incorrectly translated block misses. Our tasks are short-horizon and in SE(2), and our policies need varied demonstration starts. Scaling to SE(3) will need longer horizons and better task-progress estimators.
@article{liechty2026phaseformer,
title = {Phaseformer: Minimum Requirements for Multimodal Behavior Cloning},
author = {Liechty, Joseph C. and Hermans, Tucker},
journal = {arXiv preprint arXiv:XXXX.XXXXX},
year = {2026}
}