Theorem 7.2 — conditional gradient for bilinear saddle-point problems (corrected: smoothing defined)
ProvedFirstOrderOpt.ProjectionFree.saddle_point_cndg_rate_v2Let be compact convex, compact convex nonempty ( an inner-product space), linear, convex and lower semicontinuous on , and (7.1.5). Let be a distance generating function on with modulus (differentiable along and -strongly convex), , and . For a nonincreasing sequence define the smooth approximations (7.1.22), with gradients . Run Algorithm 7.1 with replaced by (7.1.26): and under either stepsize policy (7.1.9) or (7.1.10) (both guarantee for the fixed-schedule point ). Then for every , (7.1.27):
Formalization Note. The retired statement took each as a free function constrained only by a sandwich, a smoothness bound and a convexity inequality, so nothing related to and the monotonicity of Lemma 7.1 was unavailable (disproved). The corrected statement defines from the data as the Nesterov smoothing (7.1.22) with the prox-function of a distance generating function on , so the sandwich , the monotonicity in and the Lipschitz-gradient bound are consequences; is tied to by HasFDerivWithinAt along . The sup in (7.1.22) is finite because is compact nonempty and lower semicontinuous.
import Mathlib
namespace FirstOrderOpt.ProjectionFree
open scoped RealInnerProductSpace
/-- Theorem 7.2 (the modified conditional gradient method for bilinear saddle-point problems),
Lan p. 427. Let `X ⊆ E` be compact convex, `Y ⊆ F` compact convex nonempty, `A : E → F` linear,
`f̂` convex and lower semicontinuous on `Y`, and `f(x) := max_{y ∈ Y} {⟨Ax, y⟩ - f̂(y)}` (7.1.5).
Let `ω` be a distance generating function on `Y` with modulus `σv` (strongly convex with modulus
`σv` on `Y`, differentiable along `Y`), with prox-center `c = argmin_Y ω`, prox-function
`V_Y(y) := ω(y) - ω(c) - ⟨ω'(c), y - c⟩` and `D_Y² := max_{y ∈ Y} V_Y(y)`. For a nonincreasing
sequence `η k > 0` the smooth approximations are
`fη k (x) := max_{y ∈ Y} {⟨Ax, y⟩ - f̂(y) - η k · V_Y(y)}` (7.1.22), with gradients `fηGrad k`.
The algorithm is Algorithm 7.1 with `f'(y(k-1))` replaced by `fηGrad k (y (k-1))` (7.1.26):
`x k` solves the linear optimization `min_{z ∈ X} ⟨fηGrad k (y (k-1)), z⟩`, and
`y k = (1 - α k) y (k-1) + α k x k` under either stepsize policy (7.1.9)/(7.1.10) (`hyk_le`
states what both policies guarantee: `fη k (y k) ≤ fη k (ỹ k)` for the fixed-schedule point
`ỹ k`). Then for every `k ≥ 1`, (7.1.27):
`f(y k) - f* ≤ (2/(k(k+1))) Σ_{i=1}^k [i·η(i)·D_Y² + (‖A‖²/(σv·η(i)))‖x i - y(i-1)‖²]`.
Corrected version: the smoothing `fη k` is defined from the data as in (7.1.22) — the retired
statement took each `fη k` as a free function constrained only by a sandwich, a smoothness and a
convexity hypothesis, so nothing related `fη k` to `fη (k-1)` and Lemma 7.1's monotonicity was
unavailable (the accepted disproof); `fηGrad k` is the gradient of `fη k`, and the standing
assumptions on `f̂` and `ω` are stated. -/
theorem saddle_point_cndg_rate_v2 {E F : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
[NormedAddCommGroup F] [InnerProductSpace ℝ F]
(X : Set E) (hXconv : Convex ℝ X) (hXcompact : IsCompact X)
(Y : Set F) (hYconv : Convex ℝ Y) (hYcompact : IsCompact Y) (hYne : Y.Nonempty)
(A : E →L[ℝ] F) (fhat : F → ℝ) (hfhatconv : ConvexOn ℝ Y fhat)
(hfhatlsc : LowerSemicontinuousOn fhat Y)
(f : E → ℝ) (hf : ∀ x, f x = sSup ((fun y => ⟪A x, y⟫ - fhat y) '' Y))
(σv : ℝ) (hσv : 0 < σv)
(ω : F → ℝ) (dω : F → F →L[ℝ] ℝ)
(hωdiff : ∀ y ∈ Y, HasFDerivWithinAt ω (dω y) Y y)
(hωstrong : ∀ y ∈ Y, ∀ z ∈ Y, ω y + (dω y) (z - y) + (σv / 2) * ‖z - y‖ ^ 2 ≤ ω z)
(c : F) (hc : c ∈ Y) (hcmin : ∀ y ∈ Y, ω c ≤ ω y)
(VY : F → ℝ) (hVY : ∀ y, VY y = ω y - ω c - (dω c) (y - c))
(DY : ℝ) (hDY : 0 < DY) (hDYsq : IsLUB (VY '' Y) (DY ^ 2))
(η : ℕ → ℝ) (hηpos : ∀ k, 1 ≤ k → 0 < η k) (hηmono : ∀ k, 1 ≤ k → η (k + 1) ≤ η k)
(fη : ℕ → E → ℝ)
(hfη : ∀ k x, fη k x = sSup ((fun y => ⟪A x, y⟫ - fhat y - η k * VY y) '' Y))
(fηGrad : ℕ → E → E →L[ℝ] ℝ)
(hηGrad : ∀ k, 1 ≤ k → ∀ x ∈ X, HasFDerivWithinAt (fη k) (fηGrad k x) X x)
(x y : ℕ → E) (hx0 : x 0 ∈ X) (hy0 : y 0 = x 0)
(hx : ∀ k, 1 ≤ k → x k ∈ X)
(hLO : ∀ k, 1 ≤ k → ∀ z ∈ X, (fηGrad k (y (k - 1))) (x k) ≤ (fηGrad k (y (k - 1))) z)
(α : ℕ → ℝ) (hα : ∀ k, 1 ≤ k → α k ∈ Set.Icc (0 : ℝ) 1)
(hyDef : ∀ k, 1 ≤ k → y k = (1 - α k) • y (k - 1) + (α k) • x k)
(hyk_le : ∀ k, 1 ≤ k →
fη k (y k) ≤ fη k ((1 - 2 / ((k : ℝ) + 1)) • y (k - 1) + (2 / ((k : ℝ) + 1)) • x k))
(xstar : E) (hxstar : xstar ∈ X) (hxstar_opt : ∀ z ∈ X, f xstar ≤ f z)
(k : ℕ) (hk : 1 ≤ k) :
f (y k) - f xstar ≤ (2 / ((k : ℝ) * ((k : ℝ) + 1))) *
∑ i ∈ Finset.Icc 1 k, ((i : ℝ) * η i * DY ^ 2 +
(‖A‖ ^ 2 / (σv * η i)) * ‖x i - y (i - 1)‖ ^ 2) := by sorry
end FirstOrderOpt.ProjectionFree