Lyapunov Fading-Memory Optimizer
Implementation & benchmark of arXiv:2609.02454 — Exponential Consensus and Flocking in Multi-Agent Systems with Infinite Fading Memory
Source paper: Exponential Consensus and Flocking in Multi-Agent Systems with Infinite Fading Memory arXiv:2609.02454 ⓘ · analyzed Sep 3, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Add a fading-memory consensus force to parameter dynamics, pulling the current parameter toward a distributed average of its past while preserving the ordinary gradient step. Implement the infinite memory through one or several recursive exponential states, and tune the memory decay so that quadratic-mode dynamics remain exponentially stable. This should suppress oscillations and catastrophic steps without relying on conventional momentum alone.
Formulas
Mathematical statement
For a parameter mode x(t), use the Volterra dynamics \(\dot{x}(t)=-\nabla L(x(t))+\kappa\int_0^\infty\mu(s)[x(t-s)-x(t)]ds\), where \(\kappa\geq0\) is memory strength and \(\mu(s)\geq0\) is normalized by \(\int_0^\infty\mu(s)ds=1\). Define the Dafermos history variable \(z(t,s)=x(t)-x(t-s)\), satisfying \(\partial_tz+\partial_sz=\dot{x}(t)\) and \(z(t,0)=0\). For a quadratic loss mode with curvature \(\lambda\geq0\), a history energy combines parameter error and weighted history discrepancy. If \(\mu'(s)\leq-\delta\mu(s)\), the history transport term dissipates at rate at least \(\delta\). For the exponential kernel \(\mu(s)=\beta e^{-\beta s}\), the exact Markovian realization is \(m_t=\beta(x-m)\), \(\dot{x}=-\lambda x+\kappa(m-x)\), with characteristic polynomial \(r^2+(\lambda+\kappa+\beta)r+\beta\lambda=0\).
Implementation notes
1. Integration point: apply this after the gradient is computed in SGD or AdamW, initially using one memory tensor per parameter block rather than one state per scalar. Maintain an exponential memory m of parameters and add a restoring term kappa times (m minus theta) to the update. The discrete equations are theta equals theta minus eta times g plus eta times kappa times (m minus theta), followed by m equals rho times m plus one minus rho times theta, with rho equal to exp of minus beta eta. 2. Pseudocode: initialize theta and m to theta_0; each step compute g equal to the gradient of L(theta); update theta using the gradient and memory force; update m using the exponential average; log both the gradient and memory-force norms. Optionally clip only the memory force to a fixed multiple of the gradient norm. 3. Computed from the mechanism: rho and the quadratic characteristic polynomial. Estimated empirically: local curvature lambda using Hessian-vector products or Rayleigh quotients, and the observed decay rate from parameter trajectories. 4. First cheap experiment: train a two-layer MLP on MNIST and a small Transformer on WikiText-2, comparing SGD, SGD with momentum, and this optimizer over matched learning-rate grids. First use a quadratic problem with known Hessian eigenvalues. The quantitative prediction is that measured modal decay rates follow the smaller-magnitude root of the polynomial, and the largest stable learning rate agrees with the discrete linearized prediction within 20 percent. The Lyapunov-like sum of parameter error and weighted memory discrepancy should decrease monotonically after transients.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: Significantly worse ✗
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 9/10
Built a self-contained exponential fading-memory optimizer and quadratic verification in run_experiment.py. The continuous characteristic roots satisfy the claimed polynomial to approximately 1e-14 residual, and the predicted and empirical discrete stability limits agree exactly on the tested grid (eta_max=0.63). Fading memory produced zero stiff-mode sign changes versus 249 for SGD and 52 for momentum, demonstrating oscillation suppression, but it converged more slowly at equal steps, so no speedup was observed.
- Agent confidence
- 9/10
- Baseline
- SGD at eta=0.08: final loss 3.92e-19, 249 stiff-mode sign changes; momentum at eta=0.02: final loss 8.36e-13, 52 sign changes.
- Idea
- Fading memory with kappa=2, beta=5, eta=0.05: final loss 7.26e-09, 0 stiff-mode sign changes; predicted and empirical stability boundary both 0.63 for lambda=3, kappa=2, beta=5.
Limitations: Only diagonal quadratic dynamics were tested; no MNIST, Transformer, AdamW integration, wall-clock benchmark, multidimensional non-diagonal Hessian, or broad hyperparameter search was performed. The stability boundary is resolved on a finite eta grid.
How to run: python3 run_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2609.02454)
Significantly WORSE than the tuned baseline (+262.9%, p=0.037, wins 1 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0024
- Idea mean
- 0.0088
- Effect (Δ)
- 0.0064 (+262.9%; negative = idea better)
- Wins
- 1 / 8 paired seeds
- p-value
- 0.037 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±274.2%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 6 configs
Only the registered built-in dynamics track was evaluated; tabular, vision, and sequence transfer were not tested. The mechanism probe used perturbation responses of trained models rather than direct optimizer trajectory logging. The memory settings were evaluated on a small fixed grid and no broader optimizer-family comparison was run.
How to run: python3 stage2_dynamics.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Implemented the Lyapunov fading-memory optimizer as a matched intervention on the registered actuated-pendulum dynamics track using the shared rnn_small architecture. Across 8 paired seeds, it was significantly worse than tuned momentum SGD: mean test MSE 0.008838 versus 0.002435, paired delta +0.0064025, permutation p=0.037. The mechanism signature was also not confirmed because the observed trained-model memory-force response increased rather than following the predicted exponential decay.
- Baseline
- Tuned SGD with momentum=0.9 and lr=0.006; mean test MSE 0.0024354744236916304, std 0.0014542907868172839.
- Comparison
- delta_mean=+0.006402498489478603; idea_wins=1/8; permutation p_value=0.037; verdict=idea worse (significant).
- Idea
- Fading memory with lr=0.003, momentum=0.9, kappa=0.5, beta=2.0; mean test MSE 0.008837972913170233, std 0.006216926394780772.
Benchmark result
Significantly WORSE than the tuned baseline (+262.9%, p=0.037, wins 1 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0024
- Idea mean
- 0.0088
- Effect (Δ)
- 0.0064 (+262.9%; negative = idea better)
- Wins
- 1 / 8 paired seeds
- p-value
- 0.037 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±274.2%
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 6 configs
Only the registered built-in dynamics track was evaluated; tabular, vision, and sequence transfer were not tested. The mechanism probe used perturbation responses of trained models rather than direct optimizer trajectory logging. The memory settings were evaluated on a small fixed grid and no broader optimizer-family comparison was run.
How to run: python3 stage2_dynamics.py
Artifacts
- README.md 1.0 KB View
- bench_report.json 2.9 KB View Raw
- report.md 1.4 KB View
- report_bench_2026-09-03T131319.md 4.8 KB View
- results.json 3.9 KB View Raw
- run_experiment.py 4.8 KB View Raw
- stage2_dynamics.py 5.6 KB View Raw