Adapted from k3nfalt/longtails, commit 269cbc764dd36851fd0b64f2f950f329ee127de4. Modified for Lean Pool: module visibility, namespace isolation, and current Mathlib.
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.tentativeWeight_pos
{E : Type u_1}
(s : Iterate E)
(hguess : 0 < s.guess)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.coupling_same
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
(A M : ℝ)
(x : E)
(hA : 0 ≤ A)
(hM : 0 < M)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.step_weights
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(s : Iterate E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.step_energy
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
:
have y := coupling s;
have M := localCurvature L0 L1 (g y);
have w := y - (1 / M) • g y;
have γ := min 1 (s.guess / M);
have next := step L0 L1 g s;
next.A * (f next.x - f u) + 1 / 2 * ‖next.z - u‖ ^ 2 + γ * (s.A + tentativeWeight s) * (3 * M / 8) * ‖w - y‖ ^ 2 ≤ s.A * (f s.x - f u) + 1 / 2 * ‖s.z - u‖ ^ 2
noncomputable def
LongTails.OracleTemplate.GeneralizedAccelerated.energy
{E : Type u_1}
[NormedAddCommGroup E]
(f : E → ℝ)
(u : E)
(s : Iterate E)
:
The objective-gap and squared-distance potential for accelerated convergence.
Equations
Instances For
noncomputable def
LongTails.OracleTemplate.GeneralizedAccelerated.dissipation
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
(L0 L1 : ℝ)
(g : E → E)
(s : Iterate E)
:
The nonnegative energy decrease charged to one accelerated step.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.dissipation_nonneg
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(s : Iterate E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_energy
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(n : ℕ)
:
energy f u (run L0 L1 g s n) + ∑ k ∈ Finset.range n, dissipation L0 L1 g (run L0 L1 g s k) ≤ energy f u s
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.step_inverse_sqrt_guess
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(s : Iterate E)
(hG : 0 < s.guess)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.step_down_growth
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(s : Iterate E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(hdown : localCurvature L0 L1 (g (coupling s)) ≤ s.guess)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.down_sum_le_sqrt
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(s : Iterate E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(N : ℕ)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.step_high_dissipation
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 < L1)
(s : Iterate E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(hup : s.guess ≤ localCurvature L0 L1 (g (coupling s)))
(hhigh : 8 * L0 < localCurvature L0 L1 (g (coupling s)))
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_dissipation_le
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hmin : IsMinOn f Set.univ u)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(N : ℕ)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_high_sum_le
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 < L1)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hmin : IsMinOn f Set.univ u)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(N : ℕ)
(Q : Finset ℕ)
(hQ : Q ⊆ Finset.range N)
(hup : ∀ i ∈ Q, (run L0 L1 g s i).guess ≤ localCurvature L0 L1 (g (coupling (run L0 L1 g s i))))
(hhigh : ∀ i ∈ Q, 8 * L0 < localCurvature L0 L1 (g (coupling (run L0 L1 g s i))))
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.initial_first_down
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
{g : E → E}
{L0 L1 R Δ : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hΔ : 0 < Δ)
(x0 : E)
:
have s := initialIterate L0 L1 R Δ x0 g;
localCurvature L0 L1 (g (coupling s)) = s.guess
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_weight_le_of_inaccurate
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 R ε : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hA : 0 ≤ s.A)
(hG : 0 < s.guess)
(hE : energy f u s ≤ R ^ 2)
(hε : 0 < ε)
(N : ℕ)
(hfail : ε < f (run L0 L1 g s N).x - f u)
:
A failed target accuracy bounds the accumulated weight using the common energy estimate.