LeanMachineLearning exposition

Learning.feedbackCondAction_stationaryEnv🔗

This page has the declaration's own card below, then its dependency graph, then a card for each dependency (type dependencies first, then the rest of the transitive closure). For a theorem, the graph and the dependency cards only follow its statement's dependencies (its proof is replaced by sorry, so what it proves doesn't depend on how); for everything else, both the type and the body/value are followed, since their content is part of what later declarations build on.

Minimal Lean file

feedbackCondAction_stationaryEnv🔗

LemmaLearning.feedbackCondAction_stationaryEnv

No docstring.

🔗theorem
Learning.feedbackCondAction_stationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ : ProbabilityTheory.IsMarkovKernel ν] (n : ) : feedbackCondAction (stationaryEnv ν) n = ν
Learning.feedbackCondAction_stationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ : ProbabilityTheory.IsMarkovKernel ν] (n : ) : feedbackCondAction (stationaryEnv ν) n = ν

Code

lemma feedbackCondAction_stationaryEnv (ν : Kernel 𝓐 𝓨) [hν : IsMarkovKernel ν] (n : ℕ) :
    feedbackCondAction (stationaryEnv ν) n = ν
Type uses (3)
Body uses (1)
Used by (1)

Actions: Source · Open Issue

Proof
feedbackCondAction_obliviousEnv _ _

Dependency graph

Type dependencies (3)

feedbackCondAction🔗

DefinitionLearning.feedbackCondAction

The kernel representing the conditional distribution of the feedback given the action at time n in an oblivious environment.

🔗def
Learning.feedbackCondAction.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) [h_obl : IsObliviousEnv env] (n : ) : ProbabilityTheory.Kernel 𝓐 𝓨
Learning.feedbackCondAction.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) [h_obl : IsObliviousEnv env] (n : ) : ProbabilityTheory.Kernel 𝓐 𝓨

Code

noncomputable
def feedbackCondAction (env : Environment 𝓐 𝓨) [h_obl : IsObliviousEnv env] (n : ℕ) : Kernel 𝓐 𝓨 :=
  h_obl.exists_eq_prodMkLeft.choose n
Type uses (2)
Used by (12)

Actions: Source · Open Issue

stationaryEnv🔗

DefinitionLearning.stationaryEnv

A stationary environment, in which the distribution of the next feedback depends only on the last action.

🔗def
Learning.stationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ProbabilityTheory.IsMarkovKernel ν] : Environment 𝓐 𝓨
Learning.stationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ProbabilityTheory.IsMarkovKernel ν] : Environment 𝓐 𝓨

Code

def stationaryEnv (ν : Kernel 𝓐 𝓨) [IsMarkovKernel ν] : Environment 𝓐 𝓨 := obliviousEnv fun _ ↦ ν
Type uses (1)
Body uses (1)
Used by (81)

Actions: Source · Open Issue

instIsObliviousEnvStationaryEnv🔗

InstanceLearning.instIsObliviousEnvStationaryEnv

No docstring.

🔗theorem
Learning.instIsObliviousEnvStationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ProbabilityTheory.IsMarkovKernel ν] : IsObliviousEnv (stationaryEnv ν)
Learning.instIsObliviousEnvStationaryEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ProbabilityTheory.IsMarkovKernel ν] : IsObliviousEnv (stationaryEnv ν)

Code

instance (ν : Kernel 𝓐 𝓨) [IsMarkovKernel ν] : IsObliviousEnv (stationaryEnv ν) where
  exists_eq_prodMkLeft
Type uses (2)
Body uses (1)
Used by (5)

Actions: Source · Open Issue

Proof
⟨fun _ ↦ ν, inferInstance, rfl, fun _ ↦ rfl⟩

All dependencies, transitively (3)

Environment🔗

StructureLearning.Environment

A stochastic environment.

🔗structure
Learning.Environment.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)
Learning.Environment.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)

Code

structure Environment (𝓐 𝓨 : Type*) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] where
  /-- Distribution of the next observation as function of the past history. -/
  feedback : (n : ℕ) → Kernel ((Iic n → 𝓐 × 𝓨) × 𝓐) 𝓨
  /-- The feedback kernels are Markov kernels. -/
  [h_feedback : ∀ n, IsMarkovKernel (feedback n)]
  /-- Distribution of the first observation given the first action. -/
  ν0 : Kernel 𝓐 𝓨
  /-- The initial observation kernel is a Markov kernel. -/
  [hp0 : IsMarkovKernel ν0]
Used by (128)

Actions: Source · Open Issue

IsObliviousEnv🔗

Type ClassLearning.IsObliviousEnv

An environment is oblivious if the distribution of the next feedback depends only on the last action and not on the past history.

🔗type class
Learning.IsObliviousEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : Prop
Learning.IsObliviousEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : Prop

Code

class IsObliviousEnv (env : Environment 𝓐 𝓨) : Prop where
  exists_eq_prodMkLeft : ∃ ν : ℕ → Kernel 𝓐 𝓨, (∀ n, IsMarkovKernel (ν n)) ∧
    (env.ν0 = ν 0) ∧ (∀ n, env.feedback n = (ν (n + 1)).prodMkLeft _)
Type uses (1)
Used by (13)

Actions: Source · Open Issue

obliviousEnv🔗

DefinitionLearning.obliviousEnv

An oblivious environment, in which the distribution of the next feedback depends only on the last action, but in a possibly time-dependent manner.

🔗def
Learning.obliviousEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ (n : ), ProbabilityTheory.IsMarkovKernel (ν n)] : Environment 𝓐 𝓨
Learning.obliviousEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (ν : ProbabilityTheory.Kernel 𝓐 𝓨) [ (n : ), ProbabilityTheory.IsMarkovKernel (ν n)] : Environment 𝓐 𝓨

Code

def obliviousEnv (ν : ℕ → Kernel 𝓐 𝓨) [∀ n, IsMarkovKernel (ν n)] : Environment 𝓐 𝓨 where
  feedback n := (ν (n + 1)).prodMkLeft _
  ν0 := ν 0
Type uses (1)
Used by (10)

Actions: Source · Open Issue