Proposition 2, p. 10 — DFO: F(β⁽ᵐ⁾) decreases to some F* ≥ 0, and min_{m≤M} ‖β⁽ᵐ⁺¹⁾ − β⁽ᵐ⁾‖² ≤ 2(F(β⁽¹⁾) − F*)/(M(L − L₀))
ProvedSubsetShrink.DFO.proposition_2Let be a nonnegative, differentiable, convex function whose gradient is -Lipschitz,
with . Let , , , , and put . Let be any sequence generated by the DFO algorithm: is -sparse and for . Then:
- if , the sequence is non-increasing and converges to some ;
- if , its limit satisfies, for every ,
The DFO method is thus a descent method for the -constrained, -penalized problem (7), and the squared length of its shortest step among the first is ; in the terminology of Definition 1 of the paper, it reaches an -accurate first-order stationary point in iterations.
Formalization Note Three hypotheses are added to the printed statement (slip 7 of the planning notes). The paper's proof uses "", which holds for but not for every -smooth convex (for the values can tend to ), so and are assumed. The update divides by , and allows when , so is assumed. "Decreasing" is read as non-increasing, since (22) gives only at . Part 2 is stated for every real limit of the sequence, which is the of part 1 because limits in are unique. The minimum is Finset.inf' over Finset.Icc 1 M. The sequence is any choice from the possibly set-valued operator ; its index is unused.
import Mathlib import Definitions.Def_SubsetShrink_DFO_Model
namespace SubsetShrink.DFO
open Filter Topology
/-- Proposition 2, p. 10 (Mazumder, Radchenko & Dedieu, arXiv:1708.03288v4); proof in A.1,
p. 35. Let `f : ℝᵖ → ℝ` be differentiable, convex and nonnegative, with `L₀`-Lipschitz
gradient ((8)), let `λ ≥ 0`, `q ∈ {1, 2}`, `k ≥ 1`, `L > 0`, and let `β⁽¹⁾, β⁽²⁾, …` be a
sequence generated by the DFO algorithm (14). Then, with `F(β) = f(β) + λ‖β‖_q`:
(a) if `L ≥ L₀`, the sequence `F(β⁽ᵐ⁾)`, `m ≥ 1`, is non-increasing and converges to some
`F* ≥ 0`;
(b) if `L > L₀`, then for its limit `F*` and every `M ≥ 1`,
`min_{1≤m≤M} ‖β⁽ᵐ⁺¹⁾ − β⁽ᵐ⁾‖₂² ≤ 2(F(β⁽¹⁾) − F*)/(M(L − L₀))`.
Pins (slip 7): `0 ≤ f` and `0 ≤ λ` make the printed `F* ≥ 0` true; `0 < L` makes the step
`1/L` of (14) meaningful. -/
theorem proposition_2 {p : ℕ} (f : E p → ℝ) (L0 L lam : ℝ) (q k : ℕ)
(hq : q = 1 ∨ q = 2) (hk : 1 ≤ k)
(hdiff : Differentiable ℝ f) (hconv : ConvexOn ℝ Set.univ f) (hL0nn : 0 ≤ L0)
(hL0 : ∀ β α : E p, ‖gradient f β - gradient f α‖ ≤ L0 * ‖β - α‖)
(hLpos : 0 < L) (hf : ∀ β : E p, 0 ≤ f β) (hlam : 0 ≤ lam)
(β : ℕ → E p) (hrun : IsDFORun f L lam q k β) :
(L0 ≤ L →
(∀ m n : ℕ, 1 ≤ m → m ≤ n → F f lam q (β n) ≤ F f lam q (β m)) ∧
∃ Fstar : ℝ, 0 ≤ Fstar ∧ Tendsto (fun m => F f lam q (β m)) atTop (𝓝 Fstar)) ∧
(L0 < L → ∀ Fstar : ℝ, Tendsto (fun m => F f lam q (β m)) atTop (𝓝 Fstar) →
∀ (M : ℕ) (hM : 1 ≤ M),
(Finset.Icc 1 M).inf' (Finset.nonempty_Icc.2 hM) (fun m => ‖β (m + 1) - β m‖ ^ 2) ≤
2 * (F f lam q (β 1) - Fstar) / ((M : ℝ) * (L - L0))) := by sorry
end SubsetShrink.DFO
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.