Theorem 2 — the AG method drives the gradient mapping to zero on nonconvex composite problems, at the optimal rate when L_f = 0
ProvedNonconvexAG.Composite.theorem_2Consider the composite problem (1.3),
where is differentiable with -Lipschitz gradient and possibly nonconvex, is convex and differentiable with -Lipschitz gradient, , and is convex with domain . Let be the prox map (2.37) and the gradient mapping (2.38), and suppose Assumption 2 holds: for all and . Run Algorithm 2 from with and step sizes , (), , and let be given by (2.6). Fix and suppose that for
Let be an optimal solution of (1.3). Then
and if, in addition, , then
The same aggressive step-size policy that is optimal for convex problems thus yields a convergence guarantee for the gradient mapping when is nonconvex, and recovers the optimal convex rate for the optimality gap when is affine.
Formalization Note is the pair (K, X): its domain K and its finite values on K; is compared only on K, and the optimality of is for all . The prox map is an explicit function P with the minimizer property IsProxMap K X P. The second half of (2.9) is written , which equals when and reads when . The minimum is Finset.inf' over . Added hypothesis : the proof uses in (2.52) at , which Assumption 2 does not provide because is the input rather than a prox output; it holds whenever .
import Mathlib import Definitions.Def_ConvexOptAlg_SmoothGD_Defs import Definitions.Def_NonconvexAG_Composite_ProxMap import Definitions.Def_NonconvexAG_Composite_AGRun
namespace NonconvexAG.Composite
open ConvexOptAlg.SmoothGD
/-- Theorem 2 (p. 11): (2.44), and (2.45) when `L_f = 0`. The problem is (1.3): `Ψ = f + h` with
`f ∈ C^{1,1}_{L_f}`, `h ∈ C^{1,1}_{L_h}` convex, `L_Ψ = L_f + L_h`, and `𝒳` convex with domain `K`;
`Φ = Ψ + 𝒳`. Algorithm 2 runs with the prox map `P` of (2.37), under Assumption 2 and `‖x₀‖ ≤ M`,
with (2.9) (`αₖλₖ ≤ βₖ` and `L_Ψ βₖ < 1`, i.e. `βₖ < 1/L_Ψ`) and (2.10) for `k = 1, …, N`, and `x*` an
optimal solution of (1.3). -/
theorem theorem_2 {n : ℕ} (f h : NonconvexAG.Smooth.E n → ℝ) (gf gh : NonconvexAG.Smooth.E n → NonconvexAG.Smooth.E n) (Lf Lh : ℝ)
(hf : IsBetaSmooth f gf Lf) (hh : IsBetaSmooth h gh Lh) (hhc : ConvexOn ℝ Set.univ h)
(K : Set (NonconvexAG.Smooth.E n)) (X : NonconvexAG.Smooth.E n → ℝ) (hX : ConvexOn ℝ K X)
(P : NonconvexAG.Smooth.E n → NonconvexAG.Smooth.E n → ℝ → NonconvexAG.Smooth.E n) (hP : IsProxMap K X P)
(α β lam : ℕ → ℝ) (hstep : NonconvexAG.Smooth.AGStepsizes α β lam) (x0 : NonconvexAG.Smooth.E n)
(M : ℝ) (hA2 : Assumption2 P M) (hx0 : ‖x0‖ ≤ M)
(N : ℕ) (hN : 1 ≤ N)
(h29 : ∀ k ∈ Finset.Icc 1 N, α k * lam k ≤ β k ∧ (Lf + Lh) * β k < 1)
(h210 : ∀ k ∈ Finset.Icc 1 N, 2 ≤ k →
α k / (lam k * NonconvexAG.Smooth.Gamma α k) ≤ α (k - 1) / (lam (k - 1) * NonconvexAG.Smooth.Gamma α (k - 1)))
(xstar : NonconvexAG.Smooth.E n) (hxstar : xstar ∈ K)
(hopt : ∀ u ∈ K, f xstar + h xstar + X xstar ≤ f u + h u + X u) :
let Φ : NonconvexAG.Smooth.E n → ℝ := fun x => f x + h x + X x
let gΨ : NonconvexAG.Smooth.E n → NonconvexAG.Smooth.E n := fun x => gf x + gh x
let xk : ℕ → NonconvexAG.Smooth.E n := xSeq gΨ P α β lam x0
let xag : ℕ → NonconvexAG.Smooth.E n := xagSeq gΨ P α β lam x0
let xmd : ℕ → NonconvexAG.Smooth.E n := xmdSeq gΨ P α β lam x0
-- (2.44)
(Finset.Icc 1 N).inf' (Finset.nonempty_Icc.mpr hN)
(fun k => ‖gradMap P (xmd k) (gΨ (xmd k)) (β k)‖ ^ 2) ≤
2 * (∑ k ∈ Finset.Icc 1 N, (NonconvexAG.Smooth.Gamma α k)⁻¹ * β k * (1 - (Lf + Lh) * β k))⁻¹ *
(‖x0 - xstar‖ ^ 2 / (2 * lam 1) + Lf / NonconvexAG.Smooth.Gamma α N * (‖xstar‖ ^ 2 + 2 * M ^ 2)) ∧
-- (2.45)
(Lf = 0 → Φ (xag N) - Φ xstar ≤ NonconvexAG.Smooth.Gamma α N * ‖x0 - xstar‖ ^ 2 / (2 * lam 1)) := by sorry
end NonconvexAG.Composite
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.