✗ Failed on benchmark 2026

Discounted Saddle-Gap Controller

Implementation & benchmark of arXiv:2607.07078 — Forgetting-Factor Regret for Online Zero-Sum Games

Usefulness6/10
Difficulty4/10
Novelty7/10

Source paper: Forgetting-Factor Regret for Online Zero-Sum Games arXiv:2607.07078 ⓘ · analyzed Aug 30, 2026

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

Idea description

Track an exponentially discounted approximation to the current min-max saddle gap and use it to control the optimizer of a GAN or adversarial learner. If the recent gap rises, reduce both players' step sizes and clear stale momentum; if it falls consistently, cautiously increase the step sizes. Unlike ordinary loss EMAs, this signal measures whether each player is close to a recent best response and can detect equilibrium-tracking failure even when generator and discriminator losses look benign.

Formulas

$$f(x^{*},y)\leq f(x^{*},y^{*})\leq f(x,y^{*}),\qquad \forall x\in\mathcal{X},\;y\in\mathcal{Y}.$$
$$g_t=\max_{y\in\mathcal{Y}} f_t(x_t,y)-\min_{x\in\mathcal{X}} f_t(x,y_t).$$
$$R_T^{\rho}=\sum_{t=1}^{T}\rho^{T-t}g_t,\qquad R_t^{\rho}=\rho R_{t-1}^{\rho}+(1-\rho)g_t,\quad 0\leq\rho<1.$$
$$\widehat g_t=f_t(x_t,\widehat y_t)-f_t(\widehat x_t,y_t),\quad \widehat y_t\approx\arg\max_{y\in\mathcal{Y}}f_t(x_t,y),\quad \widehat x_t\approx\arg\min_{x\in\mathcal{X}}f_t(x,y_t).$$

Mathematical statement

The game has minimizer variable x, maximizer variable y, payoff f(x,y), and feasible sets X and Y. A saddle point (x*,y*) satisfies f(x*,y) <= f(x*,y*) <= f(x,y*) for every x in X and y in Y. For the current payoff f_t and iterate (x_t,y_t), the saddle gap is g_t = max_{y in Y} f_t(x_t,y) - min_{x in X} f_t(x,y_t); it is nonnegative and is zero at a saddle point when the extrema are attained. The forgetting-factor regret is R_T^rho = sum from t=1 to T of rho^(T-t) g_t, where rho is in [0,1) and older gaps receive exponentially smaller weights. Its normalized recursion is R_t^rho = rho R_{t-1}^rho + (1-rho)g_t. The effective memory horizon is approximately 1/(1-rho). For neural networks, estimate the extrema using K projected ascent/descent best-response steps: y_hat_t approximately maximizes f_t(x_t,y), while x_hat_t approximately minimizes f_t(x,y_t). The estimated gap is g_hat_t = f_t(x_t,y_hat_t) - f_t(x_hat_t,y_t). The transferable property is that obsolete historical instability decays geometrically after the objective, data distribution, or opponent changes.

Implementation notes

(1) Exact integration point: apply this to a GAN, adversarial representation learner, or policy-versus-discriminator game. Let x denote generator or policy parameters and y denote discriminator or adversary parameters. Every M ordinary training minibatches, freeze the current network parameters and run K cheap best-response probe steps to estimate both extrema in the saddle gap. For bounded toy parameters use projection onto the feasible box; for ordinary neural parameters use gradient clipping or a trust-region norm cap. Do not backpropagate through the probe steps.

(2) Pseudocode:

initialize x, y, R = 0, previous_R = None
for block t = 1, 2, ...:
    for m = 1, ..., M:
        x <- x - eta_x * optimizer_x(grad_x f_t(x,y))
        y <- y + eta_y * optimizer_y(grad_y f_t(x,y))
    x_probe <- stop_gradient(x)
    y_probe <- stop_gradient(y)
    repeat K times:
        y_probe <- project_Y(y_probe + eta_probe * grad_y f_t(x, y_probe))
    repeat K times:
        x_probe <- project_X(x_probe - eta_probe * grad_x f_t(x_probe, y))
    gap <- f_t(x, y_probe) - f_t(x_probe, y)
    R <- rho * R + (1-rho) * gap
    if previous_R is not None and R > previous_R * (1+tau):
        eta_x <- beta_down * eta_x
        eta_y <- beta_down * eta_y
        clear optimizer momentum/state for x and y
    else if R < previous_R * (1-tau) for P consecutive blocks:
        eta_x <- min(eta_x_max, beta_up * eta_x)
        eta_y <- min(eta_y_max, beta_up * eta_y)
    previous_R <- R

(3) Computed directly from the paper's mathematics: the saddle-gap definition, the discounted recursion, and the horizon 1/(1-rho). Estimated empirically: the max and min using K probe steps, payoff values on minibatches, and the trend thresholds. Normalize the gap by abs(f_t(x,y)) plus epsilon or by a running payoff scale. Use hysteresis tau so minibatch noise does not cause rapid control switching. Sweep rho in {0.9, 0.99, 0.999}, K in {1, 3, 5}, beta_down in {0.5, 0.8}, and beta_up in {1.05, 1.2}. Compare fixed-step Adam, ordinary loss-EMA control, and extragradient with and without the controller.

(4) First cheap experiment: train a DCGAN or small MLP GAN on MNIST with a deliberately nonstationary stream, such as alternating two-class subsets every 500 minibatches or slowly rotating the augmentation distribution. Measure held-out FID or classifier accuracy, generator diversity, collapse frequency, loss oscillation, and discounted saddle gap at equal FLOPs. The expected signal is a lower recent saddle gap, faster recovery after distribution changes, and fewer collapse episodes. On stationary MNIST, verify that the controller does not substantially reduce final quality; increasing rho should recover behavior closer to a long-memory metric.

Verification

Failed on benchmark

Stage 1 · Toy mechanism gate: Passed ✓

Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗

Stage 2 · Practical benchmark result: Inconclusive

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

Stage 1 — Mechanism check agent confidence 7/10

Built a projected bilinear min-max MVP with exact saddle-gap evaluation, K-step best-response probing, discounted gap recursion, hysteretic step-size control, and a fixed-step baseline. The recursion matched its direct definition to machine precision and a one-time impulse decayed geometrically with rho, while the controller reduced mean post-change gap from 10.36 to 6.21 across three seeds. The effect is real in this toy nonstationary game, but the controller achieved it by repeatedly shrinking the step size to about 1.68e-6, so this is only a promising stability signal rather than evidence of broad GAN utility.

Agent confidence
7/10
Baseline
Mean post-change exact saddle gap 10.362; last-300 gap 10.400; fixed step 0.055; 3 seeds.
Idea
Mean post-change exact saddle gap 6.206; last-300 gap 6.207; final step 1.68e-6; 15 downward events; 3 seeds. Recursion and impulse-decay max errors were 0 and 1.39e-17.

Limitations: Only a scalar projected bilinear game was tested. No neural GAN, real data, momentum-state clearing, equal-FLOP comparison, baseline loss-EMA controller, extragradient, or sample-quality metric was evaluated; probe-gap quality and the severe learning-rate collapse require further study.

How to run: python3 experiment.py

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

Ahead of the baseline (−12.1%) but not statistically significant (p=0.4721, wins 5 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0.0007
Idea mean
0.0006
Effect (Δ)
-0.0001 (−12.1%; negative = idea better)
Wins
5 / 8 paired seeds
p-value
0.4721 (permutation test, 20 000 shuffles)
Smallest detectable effect
±34.8%
Mechanism
Not confirmed ✗
Practical effect
Inconclusive
Baseline tuning
swept over 3 configs
Limitations:

Only the built-in dynamics/rnn_small track was tested. The adversarial probe gap collapsed to zero on all trained models, so the controller did not demonstrably respond to a meaningful saddle-gap signal. No GAN, vision, tabular, or sequence track was evaluated, and no separate wall-clock or FLOP measurement was recorded.

How to run: python3 stage2_bench.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 Discounted Saddle-Gap Controller on the structurally matched built-in dynamics track using paired rnn_small systems, discounted adversarial probes, hysteretic learning-rate control, and optimizer-state clearing. Mean test MSE was lower for the idea, but the paired permutation test was not significant, so there is no verified benchmark win. The mechanism signature was not confirmed because the probe gap was zero for every trained model.

Baseline
8-seed mean test MSE 0.000710839 ± 0.000202608; best lr=0.006, epochs=18.
Idea
8-seed mean test MSE 0.000624476 ± 0.000172594; best lr=0.006, rho=0.9, k=2, epochs=18; paired delta=-0.0000863621, p=0.47205, 5/8 wins.

Benchmark result

Ahead of the baseline (−12.1%) but not statistically significant (p=0.4721, wins 5 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0.0007
Idea mean
0.0006
Effect (Δ)
-0.0001 (−12.1%; negative = idea better)
Wins
5 / 8 paired seeds
p-value
0.4721 (permutation test, 20 000 shuffles)
Smallest detectable effect
±34.8%
Mechanism
Not confirmed ✗
Practical effect
Inconclusive
Baseline tuning
swept over 3 configs
Limitations:

Only the built-in dynamics/rnn_small track was tested. The adversarial probe gap collapsed to zero on all trained models, so the controller did not demonstrably respond to a meaningful saddle-gap signal. No GAN, vision, tabular, or sequence track was evaluated, and no separate wall-clock or FLOP measurement was recorded.

How to run: python3 stage2_bench.py

Artifacts

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