Entropic Flow Policy (EFP) replaces the reward function with a single quantity — the log-count of trajectories still reachable to the goal — and trains a policy to make that number shrink at every step. Paired with a diffusion-style action sampler, imitation learning becomes a contraction problem instead of an action-mimicry problem.
Most imitation learning either copies actions directly (behavior cloning) or infers a reward and optimizes it (inverse RL). EFP does neither. It defines goal-reachability entropy: from a state s, how many distinct trajectories of length ≤ H still reach the goal sg? Far from the goal, many paths remain viable — entropy is high. Near the goal, the funnel narrows — entropy collapses toward zero. A policy that always moves toward lower entropy is, by construction, moving toward the goal.
Demonstrations are treated as an empirical trace of that funnel, not as actions to imitate. That distinction gives EFP a self-correcting property plain behavior cloning lacks: if the agent drifts off the demonstrated path, the entropy gradient still points back toward the funnel, because entropy is defined over the whole state space, not just the states a demo happened to visit.
| Aspect | Standard RL | MaxEnt RL | EFP (this work) |
|---|---|---|---|
| Entropy's role | not used | maximize policy entropy | minimize reachability entropy |
| Reward signal | extrinsic | extrinsic + entropy bonus | entropy is the signal |
| Core quantity | V(s) | V_soft(s) | H(s, s_g) = log-reachability |
| Diffusion connection | none | none | state entropy sets the sampler's noise level |
Diffusion policies already contract entropy — in action space, across denoising steps. EFP contracts entropy in state space, across real timesteps. Entropic Flow Policy links the two: the current state entropy sets the noise scale for the action sampler — broad, exploratory noise far from the goal; tight, precise noise near it — and the denoising score is nudged by −∇aHθ at every step.
There is no reward model anywhere in this pipeline — every stage is supervised either by the demonstrations' own timestamps or by the dynamics the policy induces.
| # | Stage | What it's trained on |
|---|---|---|
| 1 | Label entropy from demo ordering | Hlabel(st) = log(steps-remaining-to-goal + 1) — a free label from timestamps alone |
| 2 | Train the entropy estimator Hθ(s, sg) | ranking loss (later states score lower than earlier ones) + anchor loss (H(sg,sg)=0) + soft regression to the label |
| 3 | Train a dynamics model fφ(s, a) → s′ | plain MSE — needed so ∇aH can be computed by differentiating through the predicted next state |
| 4 | Train a DDPM score network εψ | standard diffusion-policy noise-prediction objective on expert actions |
| 5 | Sample actions at inference | denoise as usual, but steer every step by −∇aHθ(f(s,a), sg), with the initial noise scale set by the current H — broad far from goal, tight near it |
Each experiment exists because the previous one wasn't hard enough to separate EFP from behavior cloning. The task design itself is a finding.
A redundant 3-DoF arm reaching for 10 targets, 200 demos. Each target has a single unambiguous solution — no real multimodality, so this is a sanity check that entropy contraction works at all before asking it to out-perform anything.
A point mass must get from a start region to a goal star past two rectangular blocks. First pass: the blocks leave a narrow center gap, so upper/lower/middle are all technically viable — 291 demos.
BC 100% vs. EFP 72% — BC's mode-average sneaks straight through the gap, so the task didn't punish averaging. EFP led only under perturbation (93% vs. 80% for a mixture-density baseline).
Closing the gap entirely forces a genuine binary choice — strictly upper or strictly lower, nothing in between. If the "BC averages two modes into a useless path" story were the whole explanation, EFP should win here. It doesn't: BC 100% vs. EFP 56% on the in-distribution, closed-gap variant — a real neural net doesn't literally output the arithmetic mean of two modes, so plain BC still commits to one path and wins. This is why Push-T (Exp. 3) exists: it needed a task where averaging two valid solutions produces something that isn't just "a slightly worse path" but a physically ineffective one.
Five task-design passes on the same road-block environment, in order. BC/MDN-BC beat EFP in every one except the open-gap perturbation case.
Push a T-block into a target pose. No gap to sneak through: averaging two valid pushes produces a push that works for neither.
EFP + failure demos wins outright — the headline result below.
Two conditions were tested: Standard (agent starts in a normal position) and Perturb (agent starts directly above the block — the setup that, without correction, drives the block away from the goal). EFP was trained two ways: with a small set of labeled failure trajectories added to its entropy estimator, and without.
Neither the "success" nor the "failure" demos are human or learned — both are a hand-written script that walks the pusher in a straight line toward a fixed sequence of pixel targets a programmer chose in advance.
That's the "success" route — run twice, mirrored (approach from the left or the right), with a hand-tuned sideways offset at the final push. Pushing an off-center T-shape makes it spin, so that offset was tuned by trial and error to keep the block from rotating away from the goal as it's pushed into place.
The "failure" route is a single bad move by the same script: start directly above the block and walk straight down. Since the goal sits above where the block starts, this drives it further away, not closer.
The block always spawns already facing the same angle as the goal — only its position is
wrong at the start. So the script's job is really just "translate the block upward without spinning
it," and success is graded by plain shape overlap: coverage = intersection_area(goal, block) /
goal_area, crossing a 0.35 threshold. There's no notion of "align the T's edges" as a goal in
itself — a well-aligned push just happens to produce high overlap, because the rotation was
already correct going in.
Without them, EFP's entropy gradient has never seen what "getting worse" looks like, so under perturbation it has no signal to correct course, and its guidance term actively fights the flow prior. Coverage collapses to 0.000 in both conditions, worse than the same network with guidance switched off (Unguided Flow Policy: 0.143 / 0.010).
Add failure trajectories, and the same architecture becomes the only method that survives the adversarial start: 64% / 56% success, 0.359 / 0.285 coverage, versus ≤24% / 0% for every baseline.
Each card is a single representative rollout, not a cherry-picked one — for a method scoring, say, 24%, the saved example may well be one of the failing runs. Success itself is defined as coverage exceeding 0.35 at any point in the 350-step episode, not the block's final resting position, so the EFP (w/ failure) clips above are trimmed to end at that peak-coverage moment rather than playing out the full episode (where the policy continues moving and the block can drift again afterward).
A separate ablation applies entropy guidance on top of plain BC (rather than a diffusion sampler) and sweeps the guidance scale from 0.05 to 5.0.
Everything above uses a hand-scripted synthetic expert. Re-running the same comparison on the official Push-T dataset (206 human-teleoperated episodes) tells a different story:
The baseline actually called "Diffusion Policy" in the literature — a chunked
ConditionalUnet1D trained with DDPM — is exactly what's shown just above, where it
reaches ~100% on the real dataset. The synthetic-task comparison earlier on this page does not
use that architecture: its baseline (labeled "Unguided Flow Policy" throughout this page) is literally
the same lightweight, single-step flow-matching network as EFP itself, with the entropy-guidance term
switched off — no observation-history stacking, no action-chunking, a fresh noise sample drawn
independently at every timestep. Without temporal consistency, nothing stops it from sampling the left
detour at one step and the right detour a few steps later.
So the synthetic headline result is really guided beats unguided — an ablation of EFP against itself — not a win over the real Diffusion Policy algorithm. That's still a meaningful, isolated finding about what the guidance term contributes. It's compounded by demonstration diversity too: 300 hand-scripted episodes are narrower than 206 human ones, which is a second reason the unguided baseline struggles here but real Diffusion Policy, above, doesn't.
A related, code-independent project applies the same entropy-contraction thesis to the denoising process itself — see Heat Dissipation Policy.