Documentation

TestingLowerBounds.Divergences.Hellinger

Hellinger divergence #

Main definitions #

Main statements #

Notation #

Implementation details #

theorem ProbabilityTheory.integral_rpow_rnDeriv {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_pos : 0 < a) (ha : a 1) [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] :
∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν = ∫ (x : α), (ν.rnDeriv μ x).toReal ^ (1 - a)μ
theorem ProbabilityTheory.integrable_rpow_rnDeriv_iff {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } [MeasureTheory.SigmaFinite ν] [MeasureTheory.SigmaFinite μ] (hμν : μ.AbsolutelyContinuous ν) (ha : 0 < a) :
MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) μ MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ (1 + a)) ν
theorem ProbabilityTheory.integral_fun_rnDeriv_eq_zero_iff_mutuallySingular {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] {f : ENNReal} (hf_nonneg : ∀ (x : ENNReal), 0 f x) (hf_zero : ∀ (x : ENNReal), f x = 0 x = 0 x = ) (h_int : MeasureTheory.Integrable (f μ.rnDeriv ν) ν) :
∫ (x : α), f (μ.rnDeriv ν x)ν = 0 μ.MutuallySingular ν
theorem ProbabilityTheory.integral_rpow_rnDeriv_eq_zero_iff_mutuallySingular {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] (ha_zero : a 0) (h_int : MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν) :
∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν = 0 μ.MutuallySingular ν
theorem ProbabilityTheory.integral_rpow_rnDeriv_pos_iff_not_mutuallySingular {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] (ha_zero : a 0) (h_int : MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν) :
0 < ∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν ¬μ.MutuallySingular ν
noncomputable def ProbabilityTheory.hellingerFun (a : ) :

Hellinger function, defined as x ↦ (a - 1)⁻¹ * (x ^ a - 1) for a ∈ (0, 1) ∪ (1, + ∞). At 0 the function is obtained by contiuity and is the indicator function of {0}. At 1 it is defined as x ↦ x * log x, because in this way we obtain that the Hellinger divergence at 1 conincides with the KL divergence, which is natural for continuity reasons.

Equations
Instances For
    theorem ProbabilityTheory.hellingerFun_of_ne_zero_of_ne_one {a : } (ha_zero : a 0) (ha_one : a 1) :
    ProbabilityTheory.hellingerFun a = fun (x : ) => (a - 1)⁻¹ * (x ^ a - 1)
    theorem ProbabilityTheory.continuous_rpow_const {a : } (ha_nonneg : 0 a) :
    Continuous fun (x : ) => x ^ a
    theorem ProbabilityTheory.hasDerivAt_hellingerFun (a : ) {x : } (hx : x 0) :
    HasDerivAt (ProbabilityTheory.hellingerFun a) (if a = 0 then 0 else if a = 1 then Real.log x + 1 else (a - 1)⁻¹ * a * x ^ (a - 1)) x
    theorem ProbabilityTheory.rightDeriv_hellingerFun (a : ) {x : } (hx : x 0) :
    rightDeriv (ProbabilityTheory.hellingerFun a) x = if a = 0 then 0 else if a = 1 then Real.log x + 1 else (a - 1)⁻¹ * a * x ^ (a - 1)
    theorem ProbabilityTheory.integrable_hellingerFun_iff_integrable_rpow {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_one : a 1) [MeasureTheory.IsFiniteMeasure ν] :
    MeasureTheory.Integrable (fun (x : α) => ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toReal) ν MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν
    theorem ProbabilityTheory.integrable_rpow_rnDeriv_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_nonneg : 0 a) (ha : a < 1) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
    MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν
    noncomputable def ProbabilityTheory.hellingerDiv {α : Type u_1} {mα : MeasurableSpace α} (a : ) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) :

    Hellinger divergence of order a. The cases a = 0 and a = 1 are defined separately inside the definition of the Hellinger function, so that in the case a = 0 we have hellingerDiv 0 μ ν = ν {x | (∂μ/∂ν) x = 0}, and in the case a = 1 the Hellinger divergence coincides with the KL divergence.

    Equations
    Instances For
      theorem ProbabilityTheory.hellingerDiv_zero {α : Type u_1} {mα : MeasurableSpace α} (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) :
      ProbabilityTheory.hellingerDiv 0 μ ν = (ν {x : α | (μ.rnDeriv ν x).toReal = 0})
      theorem ProbabilityTheory.hellingerDiv_zero' {α : Type u_1} {mα : MeasurableSpace α} (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] :
      ProbabilityTheory.hellingerDiv 0 μ ν = (ν {x : α | μ.rnDeriv ν x = 0})
      theorem ProbabilityTheory.hellingerDiv_zero'' {α : Type u_1} {mα : MeasurableSpace α} (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] [MeasureTheory.IsFiniteMeasure ν] :
      ProbabilityTheory.hellingerDiv 0 μ ν = (ν Set.univ) - (ν {x : α | 0 < μ.rnDeriv ν x})
      theorem ProbabilityTheory.hellingerDiv_zero_toReal {α : Type u_1} {mα : MeasurableSpace α} (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] [MeasureTheory.IsFiniteMeasure ν] :
      (ProbabilityTheory.hellingerDiv 0 μ ν).toReal = (ν Set.univ).toReal - (ν {x : α | 0 < μ.rnDeriv ν x}).toReal
      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_integrable_of_ac {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (h_int : MeasureTheory.Integrable (fun (x : α) => ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toReal) ν) (h_ac : 1 aμ.AbsolutelyContinuous ν) :
      ProbabilityTheory.hellingerDiv a μ ν = (∫ (x : α), ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toRealν)

      If a ≤ 1 use hellingerDiv_eq_integral_of_integrable_of_le_one or hellingerDiv_eq_integral_of_le_one, as they have fewer hypotheses.

      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_integrable_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha : a < 1) (h_int : MeasureTheory.Integrable (fun (x : α) => ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toReal) ν) :
      ProbabilityTheory.hellingerDiv a μ ν = (∫ (x : α), ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toRealν)
      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {a : } (ha_nonneg : 0 a) (ha : a < 1) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      ProbabilityTheory.hellingerDiv a μ ν = (∫ (x : α), ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toRealν)
      theorem ProbabilityTheory.hellingerDiv_ne_top_iff {α : Type u_1} {mα : MeasurableSpace α} {a : } (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] :
      ProbabilityTheory.hellingerDiv a μ ν MeasureTheory.Integrable (fun (x : α) => ProbabilityTheory.hellingerFun a (μ.rnDeriv ν x).toReal) ν (1 aμ.AbsolutelyContinuous ν)
      theorem ProbabilityTheory.hellingerDiv_eq_top_iff_of_one_lt {α : Type u_1} {mα : MeasurableSpace α} {a : } (ha : 1 < a) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] [MeasureTheory.IsFiniteMeasure ν] :
      ProbabilityTheory.hellingerDiv a μ ν = ¬MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν ¬μ.AbsolutelyContinuous ν
      theorem ProbabilityTheory.hellingerDiv_ne_top_iff_of_one_lt {α : Type u_1} {mα : MeasurableSpace α} {a : } (ha : 1 < a) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.SigmaFinite μ] [MeasureTheory.IsFiniteMeasure ν] :
      ProbabilityTheory.hellingerDiv a μ ν MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν μ.AbsolutelyContinuous ν
      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_ne_top' {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_ne_zero : a 0) (ha_ne_one : a 1) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] (h : ProbabilityTheory.hellingerDiv a μ ν ) :
      ProbabilityTheory.hellingerDiv a μ ν = (a - 1)⁻¹ * (∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν) - (a - 1)⁻¹ * (ν Set.univ)
      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_ne_top'' {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_ne_zero : a 0) (ha_ne_one : a 1) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsProbabilityMeasure ν] (h : ProbabilityTheory.hellingerDiv a μ ν ) :
      ProbabilityTheory.hellingerDiv a μ ν = (a - 1)⁻¹ * (∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν) - (a - 1)⁻¹
      theorem ProbabilityTheory.hellingerDiv_eq_integral_of_lt_one' {α : Type u_1} {mα : MeasurableSpace α} {a : } (ha_pos : 0 < a) (ha : a < 1) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      ProbabilityTheory.hellingerDiv a μ ν = (a - 1)⁻¹ * (∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν) - (a - 1)⁻¹ * (ν Set.univ)
      theorem ProbabilityTheory.hellingerDiv_toReal_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {a : } (ha_pos : 0 < a) (ha : a < 1) (μ : MeasureTheory.Measure α) (ν : MeasureTheory.Measure α) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      (ProbabilityTheory.hellingerDiv a μ ν).toReal = (a - 1)⁻¹ * ∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν - (a - 1)⁻¹ * (ν Set.univ).toReal
      theorem ProbabilityTheory.hellingerDiv_of_mutuallySingular_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha : a < 1) [MeasureTheory.SigmaFinite μ] [MeasureTheory.IsFiniteMeasure ν] (hμν : μ.MutuallySingular ν) :
      ProbabilityTheory.hellingerDiv a μ ν = (1 - a)⁻¹ * (ν Set.univ)
      theorem ProbabilityTheory.hellingerDiv_symm' {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_pos : 0 < a) (ha : a < 1) (h_eq : μ Set.univ = ν Set.univ) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :

      In this section there are results about the expression ν(α) + (a - 1) * Hₐ(μ, ν), which appears in the definition of the Renyi divergence.

      theorem ProbabilityTheory.meas_univ_add_mul_hellingerDiv_eq {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_ne_zero : a 0) (ha_ne_one : a 1) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] (h : ProbabilityTheory.hellingerDiv a μ ν ) :
      (ν Set.univ) + (a - 1) * ProbabilityTheory.hellingerDiv a μ ν = (∫ (x : α), (μ.rnDeriv ν x).toReal ^ aν)
      theorem ProbabilityTheory.meas_univ_add_mul_hellingerDiv_zero_eq {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha : a = 0) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      (ν Set.univ) + (a - 1) * ProbabilityTheory.hellingerDiv a μ ν = (ν {x : α | 0 < μ.rnDeriv ν x})
      theorem ProbabilityTheory.toENNReal_meas_univ_add_mul_hellingerDiv_eq_zero_iff_of_lt_one {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha_nonneg : 0 a) (ha : a < 1) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      ((ν Set.univ) + (a - 1) * ProbabilityTheory.hellingerDiv a μ ν).toENNReal = 0 μ.MutuallySingular ν
      theorem ProbabilityTheory.meas_univ_add_mul_hellingerDiv_eq_top_iff_of_one_lt {α : Type u_1} {mα : MeasurableSpace α} {μ : MeasureTheory.Measure α} {ν : MeasureTheory.Measure α} {a : } (ha : 1 < a) [MeasureTheory.IsFiniteMeasure μ] [MeasureTheory.IsFiniteMeasure ν] :
      (ν Set.univ) + (a - 1) * ProbabilityTheory.hellingerDiv a μ ν = ¬MeasureTheory.Integrable (fun (x : α) => (μ.rnDeriv ν x).toReal ^ a) ν ¬μ.AbsolutelyContinuous ν

      The Data Processing Inequality for the Hellinger divergence.