Proximal Dry-Friction Lookahead Momentum
Implementation & benchmark of arXiv:2608.22612 — Dry-Friction Inertial Dynamics with Implicit Hessian-Driven Damping: Finite-Time Stabilization, Shadowing, and Proximal Discretization
Source paper: Dry-Friction Inertial Dynamics with Implicit Hessian-Driven Damping: Finite-Time Stabilization, Shadowing, and Proximal Discretization arXiv:2608.22612 ⓘ · analyzed Aug 29, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Replace ordinary momentum with a semi-implicit velocity update containing viscous damping and a proximal dry-friction step, while evaluating the gradient at a look-ahead parameter point. The dry-friction proximal operator exactly zeros sufficiently small velocities, which may suppress late-training oscillations and create finite-time stationarity instead of merely asymptotic velocity decay.
Formulas
Mathematical statement
The paper studies the differential inclusion $\ddot{x}(t)+\gamma\dot{x}(t)+\partial\phi(\dot{x}(t))+\nabla f(x(t)+\beta\dot{x}(t))\ni0$, where $x(t)$ is the parameter vector, $v(t)=\dot{x}(t)$ is velocity, $\gamma>0$ is viscous damping, $\phi$ is a convex dry-friction potential, $f$ is the training loss, and $\beta\geq0$ is the implicit Hessian-damping shift. For $\phi(v)=r\|v\|_2$, with $r>0$, the subdifferential at zero is $\partial\phi(0)=\{u:\|u\|_2\le r\}$, so zero velocity is compatible with a terminal force whose norm is at most $r$. Applying semi-implicit Euler to the velocity gives $v_{k+1}=\operatorname{prox}_{\frac{h}{1+h\gamma}\phi}((v_k-hg_k)/(1+h\gamma))$, where $h$ is the step size and $g_k=\nabla f(x_k+\beta v_k)$. For Euclidean group friction, $\operatorname{prox}_{\lambda r\|\cdot\|_2}(z)=(1-\lambda r/\|z\|_2)_+z$, so $v_{k+1}=0$ whenever $\|v_k-hg_k\|_2\le hr$. The shifted gradient approximates Hessian damping because, for twice differentiable $f$, $\nabla f(x+\beta v)=\nabla f(x)+\beta\nabla^2f(x)v+O(\beta^2\|v\|^2)$.
Implementation notes
Integrate the method at the optimizer-update level, not inside the network forward pass. Store a velocity tensor v with the same shape as every parameter tensor x. At step k, create look-ahead parameters y=x+beta*v, run one forward/backward pass at y, and obtain g=grad L(y). Then apply the semi-implicit update independently to each parameter tensor: z=(v-h*g)/(1+h*gamma); lambda=h*r/(1+h*gamma); v=sign(z)*max(norm(z)-lambda,0); x=x+h*v. Here norm(z) is the Euclidean norm of the tensor or parameter group, and the shrinkage factor is broadcast over that group. Implement both per-tensor and per-layer grouping, because a single global norm can let large layers dominate. The proximal formula is computed exactly; no Hessian is estimated. As an optional second variant, divide g by an EMA RMS preconditioner before applying the velocity and proximal update, but report this separately because it changes the underlying metric. Log loss, validation accuracy, velocity norms, the fraction of groups with exactly zero velocity, gradient norms, and the number of update-direction sign reversals. Begin with a two-layer MLP on MNIST and a ResNet-18 on CIFAR-10. Compare with SGD, SGD with momentum, Nesterov momentum, and AdamW using matched gradient evaluations. Sweep beta in {0, 0.05, 0.1, 0.2}, gamma in {0, 0.01, 0.1}, and r as {0.001, 0.01, 0.1} times the median initial gradient norm. Success means lower late-training loss variance and fewer sign reversals at equal accuracy; a stronger result is frequent exact zero velocity with equal or better validation accuracy and no meaningful wall-clock penalty.
Verification
Stage 1 · Toy mechanism gate: Failed ✗
Stage 2 · Mechanism transferred to benchmark: Not tested
Stage 2 · Practical benchmark result: Not run
Methodology: Toy-system gate first; the benchmark stage runs only after a pass. How verification works
Stage 1 — Mechanism check agent confidence 9/10
Built a per-tensor proximal dry-friction lookahead optimizer with semi-implicit viscous damping, exact group soft-thresholding, and fixed-seed MLP benchmarking. The numerical check passed: formula error was 0, proximal optimality residual was 5.96e-7, and the zeroing threshold test passed. In the digits experiment, the idea reached 0.9689 accuracy versus 0.9711 for momentum and had higher late-loss variability (0.0950 versus 0.0254); it also produced no exact-zero velocity groups and was substantially slower (4.03s versus 0.36s).
- Agent confidence
- 9/10
- Baseline
- SGD momentum: accuracy=0.9711, tail_mean_loss=0.0322, tail_loss_std=0.0254, time=0.359s; Nesterov: accuracy=0.9711, tail_mean_loss=0.0328, tail_loss_std=0.0248, time=0.374s
- Idea
- Proximal dry-friction lookahead: accuracy=0.9689, tail_mean_loss=0.0916, tail_loss_std=0.0950, time=4.03s, exact-zero group fraction=0.0, sign reversals=8021
Limitations: Only a two-layer MLP on sklearn digits was tested, with one manually selected beta/gamma/friction setting and 180 updates. No MNIST, CIFAR-10/ResNet, hyperparameter sweep, per-layer grouping, Adam-style preconditioning, or multi-seed statistical evaluation was performed.
How to run: python3 experiment.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Artifacts
- experiment.py 5.5 KB View Raw
- report.md 1.4 KB View