✗ Failed on benchmark 2026

Joint-Distribution-Aware Deterministic Actor

Implementation & benchmark of arXiv:2607.11005 — Actor-Critic Learning for Extended Mean Field Control with Deterministic Policies

Usefulness7/10
Difficulty5/10
Novelty6/10

Source paper: Actor-Critic Learning for Extended Mean Field Control with Deterministic Policies arXiv:2607.11005 ⓘ · analyzed Aug 30, 2026

AI-generated research hypothesis, automatically tested. Not peer-reviewed.

Idea description

Modify deterministic actor-critic training so the critic receives an empirical joint state-action distribution and the actor gradient includes both the usual action derivative and the effect of the actor on that distribution. This targets multi-agent or population environments with crowding, consensus, congestion, or mean-field rewards where ignoring distribution dependence creates a systematically biased policy gradient.

Formulas

$$\mathrm{d}X^{\alpha}_{s}=b(s,X^{\alpha}_{s},{\alpha}_{s},\mathbb{P}_{(X^{\alpha}_{s},{\alpha}_{s})})\,\mathrm{d}s+\sigma(s,X^{\alpha}_{s},{\alpha}_{s},\mathbb{P}_{(X^{\alpha}_{s},{\alpha}_{s})})\,\mathrm{d}W_{s}.$$
$$\mu_s^\theta=\operatorname{Law}\!\left(X_s^\theta,\pi_\theta(s,X_s^\theta,\mu_s^\theta)\right),\qquad \widehat\mu_s^\theta=\frac{1}{N}\sum_{j=1}^{N}\delta_{(x_j,a_j)},\quad a_j=\pi_\theta(s,x_j,\widehat\mu_s^\theta).$$
$$\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^{N}\left[\partial_a Q_i\,\nabla_\theta a_i+\frac{1}{N}\sum_{j=1}^{N}\partial_\mu Q_i(x_j,a_j)\,\nabla_\theta a_j\right],\quad Q_i=Q_\phi(s,x_i,a_i,\widehat\mu_s^\theta).$$
$$\theta\leftarrow\theta+\eta_\theta\nabla_\theta J(\theta),\qquad \phi\leftarrow\phi-\eta_\phi\nabla_\phi\left[r_i\Delta t+\gamma Q_{\bar\phi}(s+\Delta t,x_i',a_i',\widehat\mu_{s+\Delta t})-Q_\phi(s,x_i,a_i,\widehat\mu_s)\right]^2.$$

Mathematical statement

The paper models a controlled McKean-Vlasov state by dX_s^alpha = b(s,X_s^alpha,alpha_s,P_(X_s^alpha,alpha_s)) ds + sigma(s,X_s^alpha,alpha_s,P_(X_s^alpha,alpha_s)) dW_s, where X_s^alpha is the state, alpha_s is the control, b and sigma are drift and diffusion, W_s is Brownian motion, and P_(X_s^alpha,alpha_s) is the joint state-action law. For a deterministic feedback alpha_s = pi_theta(s,X_s^alpha,mu_s^theta), define the induced joint law mu_s^theta = Law(X_s^theta, pi_theta(s,X_s^theta,mu_s^theta)); in a particle implementation use mu_hat = (1/N) sum_i delta_(x_i,a_i). If Q(t,x,a,mu) is the action-value and partial_mu Q(t,x,a,mu)(x',a') is its Lions derivative evaluated at another population point (x',a'), then the actor gradient uses the chain rule dQ/dtheta = partial_a Q * partial_theta pi_theta + integral partial_mu Q(t,x,a,mu)(x',a') * partial_theta mu_theta(dx',da'). For deterministic particles, the practical approximation is partial_theta J approximately (1/N) sum_i [partial_a Q_i partial_theta a_i + (1/N) sum_j partial_mu Q_i(x_j,a_j) partial_theta a_j], where a_i = pi_theta(x_i,mu_hat). The second term is the population externality omitted by ordinary DDPG. The paper's defining property is that deterministic policies induce the joint law directly as a push-forward, so no stochastic-kernel optimization is needed.

Implementation notes

(1) Integrate this at the actor update of a deterministic multi-agent DDPG or TD3 system. The critic must take four inputs: time or step index s, individual state x, individual action a, and a permutation-invariant population representation z(mu_hat), such as mean or sum DeepSets features of all (x_j,a_j). Use a critic Q_phi(s,x,a,z). The actor is a_i = pi_theta(s,x_i,z), and z is recomputed from the complete particle batch before every actor update.

(2) Pseudocode:

sample N interacting agents or replay tuples
z = PopulationEncoder({stopgrad(x_j), a_j})
for each j: a_j = actor_theta(x_j, z)
z = PopulationEncoder({x_j, a_j})       # retain autograd through actions
q_i = critic_phi(s, x_i, a_i, z)
g_action = sum_i grad_theta(q_i, through=a_i)
g_measure = sum_i grad_theta(q_i, through=z and all a_j)
g_actor = (g_action + lambda_measure*g_measure)/N
theta += actor_lr * clip_or_normalize(g_actor)

Use lambda_measure=1 initially, and optionally warm it from 0 to 1 over the first 10% of training. For O(N^2) explicit pairwise population features, start with N=16 or 32; for larger populations use DeepSets or random subsampling of j.

(3) The push-forward empirical measure, the two-term chain rule, and the TD target are mathematical components. The critic's measure derivative is estimated automatically by backpropagation through PopulationEncoder; no explicit Lions derivative implementation is required. Compare against stop-gradient population features, which removes the second term. Detach target-network population features to prevent target instability.

(4) First experiment: train on a 2-D crowding-control or particle-consensus environment where reward includes -c||a_i||^2 - k||mean_j(a_j)-a_i||^2, and dynamics include a term proportional to the population mean action. Compare standard TD3 with detached population statistics against this method using the same environment steps, network sizes, and particle batch size. Measure return, TD-error variance, actor-gradient cosine with a finite-difference policy gradient, and performance under a changed population size. Success is a higher final return and substantially better finite-difference gradient alignment, with no more than 2x actor-update wall-clock cost.

Verification

Failed on benchmark

Stage 1 · Toy mechanism gate: Passed ✓

Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗

Stage 2 · Practical benchmark result: No measurable effect

Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works

Stage 1 — Mechanism check agent confidence 8/10

Built a self-contained differentiable mean-field actor/critic toy with a permutation-invariant empirical population encoder and detached-population baseline. The joint gradient matched finite differences to about 1e-12, the externality term was zero at k=0 and linear in coupling with observed slope 0.00657777778 matching theory, while the detached error grew linearly with k. In the small optimization sweep, the joint method achieved higher final objective for all tested population sizes with 1.01–1.36x measured update time, although this is mechanism-level evidence rather than a full TD3/RL result.

Agent confidence
8/10
Baseline
Detached population gradient: finite-difference absolute errors at k=[0,.25,.5,1,2] = [4.54e-13,1.64e-3,3.29e-3,6.58e-3,1.32e-2]; final objectives N=[8,16,32] = [0.01789084,-0.08431107,0.00299333].
Idea
Joint differentiable population gradient: finite-difference absolute errors = [4.54e-13,3.34e-13,2.15e-13,2.75e-12,2.27e-12]; measured externality slope 0.00657777778 vs predicted 0.00657777778; final objectives N=[8,16,32] = [0.01938292,-0.08413537,0.00356281].

Limitations: Only a deterministic analytic toy objective was tested, not a full replay-based TD3/DDPG environment, stochastic dynamics, learned critic, multiple random seeds, or a meaningful changed-population generalization benchmark. The 2-D gradient-direction bias was present but modest, reaching cosine 0.999301 at k=4.

How to run: python3 experiment.py

Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.11005)

No significant difference vs. the tuned baseline (−-0.0%, p=1, wins 0 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small_population
Paired seeds
8
Baseline mean
0.0017
Idea mean
0.0017
Effect (Δ)
0 (−-0.0%; negative = idea better)
Wins
0 / 8 paired seeds
p-value
1 (permutation test, 20 000 shuffles)
Smallest detectable effect
±0.0%
Mechanism
Not confirmed ✗
Practical effect
No effect
Baseline tuning
swept over 3 configs
Limitations:

The registered dynamics benchmark is supervised next-value prediction rather than replay-based multi-agent TD3/DDPG, and its inputs do not contain actor-generated population state-action distributions. No custom multi-agent population-control track was registered; thus this is a valid benchmark result but does not test the idea in its intended mean-field RL setting.

How to run: python3 bench_experiment.py

Verdict computed by deterministic test code from paired-seed statistics — not by the language model.

Stage 2 — Benchmark latest Failed ✗

Agent confidence: 10/10

The registered dynamics track was rerun end-to-end with a tuned baseline sweep over all three shared learning rates and eight paired seeds. Baseline and joint-distribution-aware systems had exactly identical test MSE, giving delta_mean=0 and permutation p=1.0; the trained-model mechanism signature also found zero externality gap. Therefore the idea did not win on this benchmark.

Baseline
Best lr=0.006; full 8-seed test MSE mean=0.001739458748488687, std=0.0006690035573182997.
Delta mean
0
Idea
Best lr=0.006; full 8-seed test MSE mean=0.001739458748488687, std=0.0006690035573182997; identical to baseline.
P value
1

Benchmark result

No significant difference vs. the tuned baseline (−-0.0%, p=1, wins 0 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small_population
Paired seeds
8
Baseline mean
0.0017
Idea mean
0.0017
Effect (Δ)
0 (−-0.0%; negative = idea better)
Wins
0 / 8 paired seeds
p-value
1 (permutation test, 20 000 shuffles)
Smallest detectable effect
±0.0%
Mechanism
Not confirmed ✗
Practical effect
No effect
Baseline tuning
swept over 3 configs
Limitations:

The registered dynamics benchmark is supervised next-value prediction rather than replay-based multi-agent TD3/DDPG, and its inputs do not contain actor-generated population state-action distributions. No custom multi-agent population-control track was registered; thus this is a valid benchmark result but does not test the idea in its intended mean-field RL setting.

How to run: python3 bench_experiment.py

Artifacts

Implementation overview ⬇ Download all as ZIP 6 files · code, reports and structured results