Issue 32 Β· Pick 06 Robotics β read
Why Does Action Chunking Improve Behavioral Cloning Performance in Robotic Control?
TL;DR: Every state-of-the-art robot imitation policy predicts multi-step "action chunks," but nobody has convincingly explained why this helps. This paper runs the controlled experiments and finds the three standard stories β temporal consistency, horizon reduction, representation learning β all fail as explanations. The real mechanism is a combination of (a) conditioning on past observations, which captures non-Markovian human behavior and provably reduces compounding error, and (b) an implicit ensembling effect: a chunked policy secretly learns k different temporal predictors (a_t|o_t, a_t|o_{t-1}, β¦) and averages over them through time. The evidence is strong: you can match action chunking without chunking by deploying the same policy with randomized delays, in sim and on a real Franka arm β and if you make the ensemble explicit, you beat chunking, sometimes by +30 points.
The puzzle
Action chunking is one of those tricks that everyone uses and nobody fully understands. Instead of training a policy \pi(a_t \mid o_t) that predicts one action per observation, you train \pi(a_t, a_{t+1}, \dots, a_{t+k-1} \mid o_t) and execute the whole chunk open-loop before looking at the world again. Since ACT and Diffusion Policy introduced it in 2023, essentially every large-scale robot policy β including the generalist VLAs β has adopted it.
This should bother you. Executing a chunk open-loop means acting on stale information: at step t+9 you're still running on an observation from step t. Classical control intuition says this should be strictly worse. Yet chunked policies dominate single-step ones, often massively (on Libero-10, a Markovian policy gets 19.8% success; the chunked version gets 88.7%).
The literature has three explanations on offer:
- Temporal consistency: human demonstrators produce smooth, correlated action sequences that a joint distribution over a chunk models better than a per-step marginal.
- Horizon reduction: committing to k actions per decision reduces the effective horizon from H to H/k, shrinking compounding error.
- Representation learning: predicting a chunk is an auxiliary task that shapes better features.
The paper's method for testing all three is elegant: introduce a delayed policy \pi^d_{\text{delay}}(a_t \mid o_{t-d}) β recompute an action every single step (fully closed-loop, no chunking, no horizon reduction, no joint action distribution), but condition on an observation from d steps in the past. Crucially, a chunked policy already contains all of these: sampling a chunk from o_{t-d} and taking its (d{+}1)-th action is a delayed policy. So you can dissect one trained network into its components and test each hypothesis surgically.
Humans are non-Markovian β and in a weirdly specific way
The first result is the one worth internalizing. On Libero-90, the authors measure validation MSE of predicting a_t from o_{t-n} for n = 0, \dots, 19. If demonstrators were Markovian, the current observation should be the most informative β by the data processing inequality, the mutual information between a_t and o_t should dominate that between a_t and any older o_{t-n}. Instead, a_t is best predicted from o_{t-10}, and delayed prediction beats current-observation prediction for every n < 18.
Why? The paper's illustrative example is a drawer-opening task. When the gripper reaches the handle, the human demonstrator consistently pauses for several steps before pulling β the state barely changes while the action pattern does. A Markovian policy can't fit this: from the same observation it must output "wait" with some probability and "pull" with some probability, i.e., the marginal. At rollout time this coin-flipping drifts the policy off the data manifold and it fails. The authors call these points decision boundaries and show the Markovian policy's prediction error spikes precisely there (around timestep 80 of the demo), while the delayed policy's does not. A delayed policy sees o_{t-d} and can deterministically say "we are d steps into the pause, keep waiting."
So hypothesis 1 is half-right: non-Markovianity is real and matters. But the temporal consistency part β modeling the joint distribution over the chunk β turns out to be unnecessary: a pure delayed policy, which models only per-step marginals, matches or exceeds chunking on Libero-90 (Delay: 94.0% vs. AC: 89.2%). Appendix B.1 makes this even sharper: playing delayed policies in the chunk's order but sampling each action independently (destroying all within-chunk correlation) matches full chunking everywhere.
Compounding error: it's the delay, not the horizon
Hypothesis 2 says chunking shrinks the effective horizon. But delayed policies replan every step β the horizon is untouched β and they match chunking on Libero. So horizon reduction per se can't be the mechanism. The theory section explains what is.
For deterministic, Lipschitz dynamics, a Markovian BC policy with per-step imitation error \epsilon (in Wasserstein distance) can suffer regret \Omega(2^H \epsilon) β the classic exponential compounding (Theorem 1). Theorem 2 shows both a chunked policy executed for k steps and a delay-k policy achieve
where H is the horizon and \epsilon the supervised error over the chunk. For k a constant fraction of H, this is polynomial rather than exponential. And the matching lower bound (Appendix D.3) shows chunking can't do better than the delayed policy in this setting.
The intuition is the important part: compounding error is driven by acting on out-of-distribution states. Earlier states in a rollout have accumulated less drift β they're closer to the demonstration distribution. Predicting a_t from o_{t-k} means your input is more in-distribution than o_t, so your prediction is more accurate, so you drift less. The horizon reduction of chunking is incidental; the anchoring to less-corrupted past observations is the mechanism. (Hypothesis 3, representation learning, dies quickly too: training with chunks helps a policy that executes only step 1, but a directly-trained delayed policy matches it β Figure 7.)
The missing piece: implicit ensembling
If delayed policies fully explained chunking, the story would end here. But on the hard Robomimic tasks they don't: on Tool Hang, the best delayed policy gets 51.6% vs. 75.2% for chunking β even though the delayed policy achieves lower validation error. Better prediction, worse control. Something else is going on.
Here's the insight. When you train \pi(\bm{a}_{t:t+k} \mid o_t), each action a_t in the dataset appears as a training target k times β once as the 1st step of the chunk starting at o_t, once as the 2nd step of the chunk starting at o_{t-1}, and so on. The network learns k distinct temporal relationships: a_t|o_t, a_t|o_{t-1}, β¦, a_t|o_{t-k+1}. Each is a predictor conditioned on a different subset of the available information β exactly the structure of a random-forest-style ensemble, where members trained on different feature subsets generalize better in aggregate than any individual member. When you execute a chunk, consecutive actions come from these different predictors, so through time you are effectively rotating through the ensemble.
Two experiments make the case. First, on Robomimic validation data, averaging the k predictions of a_t from the chunk's different starting observations ("temporal ensemble") achieves lower error than the chunk itself and nearly matches a true ensemble of independently-trained networks β the implicit members really are diverse enough to ensemble.
Second, and this is the killer experiment: randomized delay ensembles (RDE). Take the trained chunked policy. At every step, sample a delay i \sim \text{unif}\{0,\dots,n-1\}, feed it o_{t-i}, and execute the (i{+}1)-th action of the resulting chunk. This is fully closed-loop (a fresh inference every step), has no open-loop execution, no joint action distribution, no horizon reduction β it retains only "condition on the past" and "use all the ensemble members." It matches chunking essentially everywhere.
Look at Tool Hang: a single delayed policy leaves a 24-point gap to chunking; randomizing over delays with the same network recovers nearly all of it (71.8 vs. 75.2). The ensemble effect isn't a footnote β on hard tasks it's most of the story.
Interestingly, random member selection beats averaging the members (RDE at 71.8 vs. temporal-ensemble averaging at 42.2 on Tool Hang). Averaging in action space can blend incompatible predictions; sampling keeps each executed action coherent while still diversifying across time. This also quietly indicts ACT-style exponentially-weighted temporal ensembling, which downweights old predictions and suppresses exactly the diversity that helps.
The real-robot experiments (Franka arm, three pick-and-place tasks, 50 rollouts per method, 15 Hz delta joint control) replicate the pattern: Markovian poor, single delay intermediate, RDE matches or slightly exceeds chunking (Figure 10; the paper reports the ordering but bar values only graphically). Notably no tuning was done on chunk sizes or delays for the real-world runs.
If it's an ensemble, make it a real one
The constructive payoff: if chunking's edge over delayed policies is implicit ensembling, an explicit ensemble should do even better. Train m=5 chunked policies from different seeds, aggregate (average or randomly select), and:
Transport goes from 12.6% to 41.5% β a +29-point jump on the hardest task in the suite, from nothing but seed diversity plus the delay machinery. On the Multi-Human Robomimic datasets the same pattern holds (Transport MH: 4.7 β 30.0). The obvious cost: m\times training and inference. But as an existence proof that BC has substantial headroom above action chunking, purely from ensemble structure, it's compelling.
What to make of it
What changes if this holds. Action chunking stops being a mysterious necessity and becomes two separable ingredients you can engineer independently: delayed conditioning (for non-Markovian expressivity and compounding-error control) and ensemble diversity (for generalization). That reframing suggests concrete directions the authors flag β adaptively choosing delays (validation error bottoms out around delay 5β15 on Libero), reconciling history-conditioning with ensembling, and cheap explicit ensembles. It also explains a long-standing oddity: why fully-history-conditioned policies, which are strictly more expressive, usually underperform β they blow up the effective observation space without providing the delay-anchoring or ensemble structure.
Reasons for skepticism. All main experiments use diffusion policies at 15β20 Hz control. The authors themselves report that at 50β60 Hz, delayed policies fail to replicate chunking, and temporal consistency does matter there β plausibly because humans update visually-guided behavior at ~2β10 Hz, so high-rate action streams carry genuine within-chunk correlation. So the headline "temporal consistency is unnecessary" is frequency-conditional, and many real deployments run fast controllers. The VLA check (\pi_{0.5} on Libero, Appendix B.5) is consistent with the story but uses a chunk size of 10 and data with pauses preprocessed out, which muddies the non-Markovianity component. Real-world evidence is three tabletop tasks with one embodiment. And RDE surrenders one of chunking's most practical virtues β inference happens once per k steps in a chunked policy, but every step in RDE, which matters for big VLAs (the paper handles real-time inference by adding a 1-step delay to everything and running inference asynchronously). Finally, "almost fully explains" is doing some work: RDE is near AC on Square (82.4 vs. 85.4) and Tool Hang (71.8 vs. 75.2), not identical, so a small residual remains unaccounted for.
Where to spend your reading time. Section 5 (implicit ensembling, Experiments 5β6) is the intellectual core and the most transferable idea. Section 4.1's decision-boundary example (Figures 5β6) is the best five-minute intuition pump for why BC on human data is harder than it looks. The theory in Section 4.2 / Appendix D is clean but standard-flavored Lipschitz analysis; skim the theorem statements and the "earlier states are more in-distribution" intuition, skip the proofs unless you want the lower-bound construction.