LeanMachineLearning exposition

Learning.feedbackFun_onlineEvalEnvπŸ”—

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

feedbackFun_onlineEvalEnvπŸ”—

LemmaLearning.feedbackFun_onlineEvalEnv

No docstring.

πŸ”—theorem
Learning.feedbackFun_onlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} {g : β„• β†’ 𝓐 β†’ 𝓨} {hg : βˆ€ (n : β„•), Measurable (g n)} [MeasurableSpace.SeparatesPoints 𝓨] (n : β„•) : feedbackFun (onlineEvalEnv g hg) n = fun p => g (n + 1) (Prod.snd p)
Learning.feedbackFun_onlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} {g : β„• β†’ 𝓐 β†’ 𝓨} {hg : βˆ€ (n : β„•), Measurable (g n)} [MeasurableSpace.SeparatesPoints 𝓨] (n : β„•) : feedbackFun (onlineEvalEnv g hg) n = fun p => g (n + 1) (Prod.snd p)

Code

lemma feedbackFun_onlineEvalEnv [MeasurableSpace.SeparatesPoints 𝓨] (n : β„•) :
    feedbackFun (onlineEvalEnv g hg) n = fun p ↦ g (n + 1) p.2
Type uses (3)
Body uses (7)
Used by (1)

Actions: Source Β· Open Issue

Proof
by
  have h_eq := feedback_eq_deterministic (onlineEvalEnv g hg) n
  simpa only [onlineEvalEnv, feedback_obliviousEnv, Kernel.prodMkLeft_deterministic,
    Kernel.deterministic_inj] using h_eq.symm

Dependency graph

Type dependencies (3)

feedbackFunπŸ”—

DefinitionLearning.feedbackFun

The feedback function of a deterministic environment at step n.

πŸ”—def
Learning.feedbackFun.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) [h_det : IsDeterministicEnv env] (n : β„•) : (β†₯(Finset.Iic n) β†’ 𝓐 Γ— 𝓨) Γ— 𝓐 β†’ 𝓨
Learning.feedbackFun.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) [h_det : IsDeterministicEnv env] (n : β„•) : (β†₯(Finset.Iic n) β†’ 𝓐 Γ— 𝓨) Γ— 𝓐 β†’ 𝓨

Code

noncomputable
def feedbackFun (env : Environment 𝓐 𝓨) [h_det : IsDeterministicEnv env] (n : β„•) :
    ((Iic n β†’ 𝓐 Γ— 𝓨) Γ— 𝓐) β†’ 𝓨 :=
  (h_det.exists_f n).choose
Type uses (2)
Used by (6)

Actions: Source Β· Open Issue

onlineEvalEnvπŸ”—

DefinitionLearning.onlineEvalEnv

The evaluation environment where the feedback is given by evaluating a fixed measurable function f at the chosen action.

πŸ”—def
Learning.onlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (g : β„• β†’ 𝓐 β†’ 𝓨) (hg : βˆ€ (n : β„•), Measurable (g n)) : Environment 𝓐 𝓨
Learning.onlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (g : β„• β†’ 𝓐 β†’ 𝓨) (hg : βˆ€ (n : β„•), Measurable (g n)) : Environment 𝓐 𝓨

Code

noncomputable def onlineEvalEnv (g : β„• β†’ 𝓐 β†’ 𝓨) (hg : βˆ€ n, Measurable (g n)) :=
  obliviousEnv (fun n ↦ Kernel.deterministic (g n) (hg n))
Type uses (1)
Body uses (1)
Used by (11)

Actions: Source Β· Open Issue

instIsDeterministicEnvOnlineEvalEnvπŸ”—

InstanceLearning.instIsDeterministicEnvOnlineEvalEnv

No docstring.

πŸ”—theorem
Learning.instIsDeterministicEnvOnlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} {g : β„• β†’ 𝓐 β†’ 𝓨} {hg : βˆ€ (n : β„•), Measurable (g n)} : IsDeterministicEnv (onlineEvalEnv g hg)
Learning.instIsDeterministicEnvOnlineEvalEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} {g : β„• β†’ 𝓐 β†’ 𝓨} {hg : βˆ€ (n : β„•), Measurable (g n)} : IsDeterministicEnv (onlineEvalEnv g hg)

Code

instance : IsDeterministicEnv (onlineEvalEnv g hg) where
  exists_f0
Type uses (2)
Body uses (1)
Used by (3)

Actions: Source Β· Open Issue

Proof
⟨g 0, hg 0, rfl⟩
  exists_f n := ⟨fun p ↦ g (n + 1) p.2, by fun_prop, 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

IsDeterministicEnvπŸ”—

Type ClassLearning.IsDeterministicEnv

An environment is deterministic if its initial feedbacks are determined by measurable functions (and not possibly random kernels).

πŸ”—type class
Learning.IsDeterministicEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : Prop
Learning.IsDeterministicEnv.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : Prop

Code

class IsDeterministicEnv (env : Environment 𝓐 𝓨) : Prop where
  exists_f0 : βˆƒ (f0 : 𝓐 β†’ 𝓨) (hf0 : Measurable f0), env.Ξ½0 = Kernel.deterministic f0 hf0
  exists_f : βˆ€ n, βˆƒ (f : ((Iic n β†’ 𝓐 Γ— 𝓨) Γ— 𝓐) β†’ 𝓨) (hf : Measurable f),
    env.feedback n = Kernel.deterministic f hf
Type uses (1)
Used by (11)

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