Gradient descent with backtracking: linear rate
ProvedConvexOptimization.gradient_descent_backtracking_linear_rateLinear convergence of gradient descent with backtracking line search.
Let be -strongly convex and -smooth in the sense of the two-sided quadratic bounds
with , let be a global minimizer and . Fix backtracking parameters and , and let satisfy where each is a backtracking step at along . Then for every
The rate is again geometric, with the constant degraded from the exact-line-search value by the two line-search parameters only; in particular the practical algorithm, which performs no one-dimensional optimization, keeps the same asymptotic behaviour. The two terms in the minimum correspond to the two possible outcomes of the search — the unit step being accepted, or a genuine backtrack.
Formalization Note The step sizes are governed by the mission's backtracking predicate, so the statement covers every admissible run rather than one implementation. Constants are exactly those printed in the book, with no rounding or simplification. Source: B&V §9.3.1, pp. 468–469.
import Mathlib import Definitions.Def_ConvexOptimization_IsBacktrackingStep open scoped RealInnerProductSpace ENNReal open MeasureTheory
theorem ConvexOptimization.gradient_descent_backtracking_linear_rate {n : ℕ} (m M α β : ℝ)
(hm : 0 < m) (hmM : m ≤ M) (hα0 : 0 < α) (hα : α < 1 / 2)
(hβ0 : 0 < β) (hβ1 : β < 1)
(f : EuclideanSpace ℝ (Fin n) → ℝ)
(g : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
(hg : ∀ x, HasGradientAt f (g x) x)
(hsc : ∀ x y : EuclideanSpace ℝ (Fin n),
f x + ⟪g x, y - x⟫ + m / 2 * ‖y - x‖ ^ 2 ≤ f y)
(hsm : ∀ x y : EuclideanSpace ℝ (Fin n),
f y ≤ f x + ⟪g x, y - x⟫ + M / 2 * ‖y - x‖ ^ 2)
(xstar : EuclideanSpace ℝ (Fin n)) (hstar : IsMinOn f Set.univ xstar)
(x : ℕ → EuclideanSpace ℝ (Fin n))
(hstep : ∀ k, ∃ t : ℝ,
IsBacktrackingStep f g α β (x k) (-g (x k)) t ∧
x (k + 1) = x k - t • g (x k)) :
∀ k, f (x k) - f xstar ≤
(1 - min (2 * m * α) (2 * β * α * m / M)) ^ k * (f (x 0) - f xstar) := by
sorry