Data processing inequality for the Kullback-Leibler divergence #
The data processing inequality is a way to express the intuition that applying a (possibly random) transformation to random variables cannot increase the information they contain.
Main statements #
We prove three versions of the data processing inequality for the Kullback-Leibler divergence, for
measurable maps, restrictions to sub-sigma-algebras, and composition with Markov kernels.
Let μ, ν be finite measures on 𝓧, with sigma-algebra m𝓧.
klDiv_map_le:klDiv (μ.map g) (ν.map g) ≤ klDiv μ νfor a measurable functiong.klDiv_trim_le:klDiv (μ.trim hm) (ν.trim hm) ≤ klDiv μ νfor a sub-sigma-algebramofm𝓧(withhm : m ≤ m𝓧).klDiv_comp_right_le:klDiv (κ ∘ₘ μ) (κ ∘ₘ ν) ≤ klDiv μ νfor a Markov kernelκ.
theorem
ConvexOn.map_condExp_rnDeriv_le
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
(hm : m ≤ m𝓧)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
theorem
ConvexOn.comp_rnDeriv_map_le
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
{g : 𝓧 → 𝓨}
(hμν : μ.AbsolutelyContinuous ν)
(hg : Measurable g)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
(fun (x : 𝓧) => f ((MeasureTheory.Measure.map g μ).rnDeriv (MeasureTheory.Measure.map g ν) (g x)).toReal) ≤ᵐ[ν] ν[fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal | MeasurableSpace.comap g m𝓨]
theorem
ConvexOn.integrable_comp_rnDeriv_map
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
{g : 𝓧 → 𝓨}
(hμν : μ.AbsolutelyContinuous ν)
(hg : Measurable g)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
MeasureTheory.Integrable
(fun (x : 𝓨) => f ((MeasureTheory.Measure.map g μ).rnDeriv (MeasureTheory.Measure.map g ν) x).toReal)
(MeasureTheory.Measure.map g ν)
theorem
ConvexOn.comp_rnDeriv_trim_le
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
(hm : m ≤ m𝓧)
(hμν : μ.AbsolutelyContinuous ν)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
theorem
ConvexOn.integrable_comp_rnDeriv_trim
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
(hm : m ≤ m𝓧)
(hμν : μ.AbsolutelyContinuous ν)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
theorem
ConvexOn.integrable_comp_condExp_rnDeriv
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{f : ℝ → ℝ}
(hm : m ≤ m𝓧)
(hμν : μ.AbsolutelyContinuous ν)
(hf : MeasureTheory.StronglyMeasurable f)
(hf_cvx : ConvexOn ℝ (Set.Ici 0) f)
(hf_cont_at : ContinuousWithinAt f (Set.Ici 0) 0)
(h_int : MeasureTheory.Integrable (fun (x : 𝓧) => f (μ.rnDeriv ν x).toReal) ν)
:
theorem
InformationTheory.integrable_llr_map
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{g : 𝓧 → 𝓨}
(hμν : μ.AbsolutelyContinuous ν)
(hg : Measurable g)
(h_int : MeasureTheory.Integrable (MeasureTheory.llr μ ν) μ)
:
theorem
InformationTheory.toReal_klDiv_map_of_ac
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{g : 𝓧 → 𝓨}
(hμν : μ.AbsolutelyContinuous ν)
(hg : Measurable g)
:
(klDiv (MeasureTheory.Measure.map g μ) (MeasureTheory.Measure.map g ν)).toReal = ∫ (x : 𝓧), klFun (ν[fun (x : 𝓧) => (μ.rnDeriv ν x).toReal | MeasurableSpace.comap g m𝓨] x) ∂ν
theorem
InformationTheory.klDiv_map_of_ac
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{g : 𝓧 → 𝓨}
(hμν : μ.AbsolutelyContinuous ν)
(hg : Measurable g)
(h_int : MeasureTheory.Integrable (MeasureTheory.llr μ ν) μ)
:
klDiv (MeasureTheory.Measure.map g μ) (MeasureTheory.Measure.map g ν) = ENNReal.ofReal (∫ (x : 𝓧), klFun (ν[fun (x : 𝓧) => (μ.rnDeriv ν x).toReal | MeasurableSpace.comap g m𝓨] x) ∂ν)
theorem
InformationTheory.toReal_klDiv_trim_of_ac
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
{μ ν : MeasureTheory.Measure 𝓧}
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
(hm : m ≤ m𝓧)
(hμν : μ.AbsolutelyContinuous ν)
:
theorem
InformationTheory.klDiv_map_le
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
(μ ν : MeasureTheory.Measure 𝓧)
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
{g : 𝓧 → 𝓨}
(hg : Measurable g)
:
Data processing inequality for the Kullback-Leibler divergence and measurable functions.
theorem
InformationTheory.klDiv_trim_le
{𝓧 : Type u_1}
{m m𝓧 : MeasurableSpace 𝓧}
(μ ν : MeasureTheory.Measure 𝓧)
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
(hm : m ≤ m𝓧)
:
Data processing inequality for the Kullback-Leibler divergence and sub-sigma-algebras.
theorem
InformationTheory.klDiv_comp_right_le
{𝓧 : Type u_1}
{𝓨 : Type u_2}
{m𝓧 : MeasurableSpace 𝓧}
{m𝓨 : MeasurableSpace 𝓨}
(μ ν : MeasureTheory.Measure 𝓧)
[MeasureTheory.IsFiniteMeasure μ]
[MeasureTheory.IsFiniteMeasure ν]
(κ : ProbabilityTheory.Kernel 𝓧 𝓨)
[ProbabilityTheory.IsMarkovKernel κ]
:
The Data Processing Inequality for the Kullback-Leibler divergence and a Markov kernel.