Bandits.ArrayModel.hasCondDistrib_reward
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.
hasCondDistrib_reward๐
Bandits.ArrayModel.hasCondDistrib_rewardNo docstring.
Bandits.ArrayModel.hasCondDistrib_reward.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] [Countable ๐] [StandardBorelSpace R] [Nonempty R] (alg : Learning.Algorithm ๐ R) (ฮฝ : ProbabilityTheory.Kernel ๐ R) [ProbabilityTheory.IsMarkovKernel ฮฝ] (n : โ) : ProbabilityTheory.HasCondDistrib (reward alg (n + 1)) (fun ฯ => (fun i => (action alg (โi) ฯ, reward alg (โi) ฯ), action alg (n + 1) ฯ)) (Learning.Environment.feedback (Learning.stationaryEnv ฮฝ) n) (arrayMeasure ฮฝ)Bandits.ArrayModel.hasCondDistrib_reward.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] [Countable ๐] [StandardBorelSpace R] [Nonempty R] (alg : Learning.Algorithm ๐ R) (ฮฝ : ProbabilityTheory.Kernel ๐ R) [ProbabilityTheory.IsMarkovKernel ฮฝ] (n : โ) : ProbabilityTheory.HasCondDistrib (reward alg (n + 1)) (fun ฯ => (fun i => (action alg (โi) ฯ, reward alg (โi) ฯ), action alg (n + 1) ฯ)) (Learning.Environment.feedback (Learning.stationaryEnv ฮฝ) n) (arrayMeasure ฮฝ)
Code
lemma hasCondDistrib_reward (alg : Algorithm ๐ R) (ฮฝ : Kernel ๐ R) [IsMarkovKernel ฮฝ]
(n : โ) :
HasCondDistrib (reward alg (n + 1))
(fun ฯ โฆ (fun (i : Iic n) โฆ (action alg i ฯ, reward alg i ฯ), action alg (n + 1) ฯ))
((stationaryEnv ฮฝ).feedback n) (arrayMeasure ฮฝ)Type uses (8)
Body uses (3)
Used by (1)
Actions: Source ยท Open Issue
Proof
by
convert hasCondDistrib_reward' alg ฮฝ n with ฯ i
ยท simp only [action]
rw [hist_eq _ _ n]
ยท simp only [reward]
rw [hist_eq _ _ n]
ยท rflDependency graph
Type dependencies (8)
Algorithm๐
Learning.AlgorithmA stochastic, sequential algorithm.
Learning.Algorithm.{u_4, u_5} (๐ : Type u_4) (๐จ : Type u_5) [MeasurableSpace ๐] [MeasurableSpace ๐จ] : Type (max u_4 u_5)Learning.Algorithm.{u_4, u_5} (๐ : Type u_4) (๐จ : Type u_5) [MeasurableSpace ๐] [MeasurableSpace ๐จ] : Type (max u_4 u_5)
Code
structure Algorithm (๐ ๐จ : Type*) [MeasurableSpace ๐] [MeasurableSpace ๐จ] where /-- Policy or sampling rule: distribution of the next action. -/ policy : (n : โ) โ Kernel (Iic n โ ๐ ร ๐จ) ๐ /-- The policy is a Markov kernel. -/ [h_policy : โ n, IsMarkovKernel (policy n)] /-- Distribution of the first action. -/ p0 : Measure ๐ /-- The first action distribution is a probability measure. -/ [hp0 : IsProbabilityMeasure p0]
Used by (216)
Actions: Source ยท Open Issue
probSpace๐
Bandits.ArrayModel.probSpaceProbability space for the array model of stochastic bandits.
Bandits.ArrayModel.probSpace.{u_1, u_2} (๐ : Type u_1) (R : Type u_2) : Type (max u_1 u_2)Bandits.ArrayModel.probSpace.{u_1, u_2} (๐ : Type u_1) (R : Type u_2) : Type (max u_1 u_2)
Code
def probSpace : Type _ := (โ โ I) ร (โ โ ๐ โ R)
Actions: Source ยท Open Issue
instMeasurableSpaceProbSpace๐
Bandits.ArrayModel.instMeasurableSpaceProbSpaceNo docstring.
Bandits.ArrayModel.instMeasurableSpaceProbSpace.{u_3, u_4} {๐ : Type u_3} {R : Type u_4} [MeasurableSpace R] : MeasurableSpace (probSpace ๐ R)Bandits.ArrayModel.instMeasurableSpaceProbSpace.{u_3, u_4} {๐ : Type u_3} {R : Type u_4} [MeasurableSpace R] : MeasurableSpace (probSpace ๐ R)
Code
instance {๐ R : Type*} [MeasurableSpace R] : MeasurableSpace (probSpace ๐ R)Type uses (1)
Actions: Source ยท Open Issue
Proof
inferInstanceAs (MeasurableSpace ((โ โ I) ร (โ โ ๐ โ R)))
reward๐
Bandits.ArrayModel.reward
Reward received at time n in the array model.
Bandits.ArrayModel.reward.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : RBandits.ArrayModel.reward.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : R
Code
noncomputable def reward [DecidableEq ๐] (alg : Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : R := (hist alg ฯ n โจn, by simpโฉ).2
Body uses (1)
Used by (24)
Actions: Source ยท Open Issue
action๐
Bandits.ArrayModel.action
Action taken at time n in the array model.
Bandits.ArrayModel.action.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : ๐Bandits.ArrayModel.action.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : ๐
Code
noncomputable def action [DecidableEq ๐] (alg : Algorithm ๐ R) (n : โ) (ฯ : probSpace ๐ R) : ๐ := (hist alg ฯ n โจn, by simpโฉ).1
Body uses (1)
Used by (43)
Actions: Source ยท Open Issue
stationaryEnv๐
Learning.stationaryEnvA stationary environment, in which the distribution of the next feedback depends only on the last action.
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
arrayMeasure๐
Bandits.ArrayModel.arrayMeasureProbability measure for the array model of stochastic bandits.
Bandits.ArrayModel.arrayMeasure.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} (ฮฝ : ProbabilityTheory.Kernel ๐ R) : MeasureTheory.Measure (probSpace ๐ R)Bandits.ArrayModel.arrayMeasure.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} (ฮฝ : ProbabilityTheory.Kernel ๐ R) : MeasureTheory.Measure (probSpace ๐ R)
Code
noncomputable def arrayMeasure (ฮฝ : Kernel ๐ R) : Measure (probSpace ๐ R) := (Measure.infinitePi fun _ โฆ volume).prod (streamMeasure ฮฝ)
Type uses (2)
Body uses (1)
Actions: Source ยท Open Issue
Environment๐
Learning.EnvironmentA stochastic environment.
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]
Actions: Source ยท Open Issue
All dependencies, transitively (8)
instIsProbabilityMeasureP0๐
Learning.instIsProbabilityMeasureP0No docstring.
Learning.instIsProbabilityMeasureP0.{u_1, u_2} {๐ : Type u_1} {๐จ : Type u_2} {m๐ : MeasurableSpace ๐} {m๐จ : MeasurableSpace ๐จ} (alg : Algorithm ๐ ๐จ) : MeasureTheory.IsProbabilityMeasure (Algorithm.p0 alg)Learning.instIsProbabilityMeasureP0.{u_1, u_2} {๐ : Type u_1} {๐จ : Type u_2} {m๐ : MeasurableSpace ๐} {m๐จ : MeasurableSpace ๐จ} (alg : Algorithm ๐ ๐จ) : MeasureTheory.IsProbabilityMeasure (Algorithm.p0 alg)
Code
instance (alg : Algorithm ๐ ๐จ) : IsProbabilityMeasure alg.p0
Type uses (1)
Used by (13)
Actions: Source ยท Open Issue
Proof
alg.hp0
initAlgFunction๐
Bandits.ArrayModel.initAlgFunctionThe initial action is the image of a uniform random variable by this function.
Bandits.ArrayModel.initAlgFunction.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] (alg : Learning.Algorithm ๐ R) : โunitInterval โ ๐Bandits.ArrayModel.initAlgFunction.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] (alg : Learning.Algorithm ๐ R) : โunitInterval โ ๐
Code
noncomputable def initAlgFunction (alg : Algorithm ๐ R) : I โ ๐ := (Measure.exists_measurable_map_eq alg.p0).choose
Type uses (1)
Body uses (1)
Used by (12)
Actions: Source ยท Open Issue
instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy๐
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicyNo docstring.
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy.{u_1, u_2} {๐ : Type u_1} {๐จ : Type u_2} {m๐ : MeasurableSpace ๐} {m๐จ : MeasurableSpace ๐จ} (alg : Algorithm ๐ ๐จ) (n : โ) : ProbabilityTheory.IsMarkovKernel (Algorithm.policy alg n)Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy.{u_1, u_2} {๐ : Type u_1} {๐จ : Type u_2} {m๐ : MeasurableSpace ๐} {m๐จ : MeasurableSpace ๐จ} (alg : Algorithm ๐ ๐จ) (n : โ) : ProbabilityTheory.IsMarkovKernel (Algorithm.policy alg n)
Code
instance (alg : Algorithm ๐ ๐จ) (n : โ) : IsMarkovKernel (alg.policy n)
Type uses (1)
Actions: Source ยท Open Issue
Proof
alg.h_policy n
algFunction๐
Bandits.ArrayModel.algFunctionThe next action is the image of the history and a uniform random variable by this function.
Bandits.ArrayModel.algFunction.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] (alg : Learning.Algorithm ๐ R) (n : โ) : (โฅ(Finset.Iic n) โ ๐ ร R) โ โunitInterval โ ๐Bandits.ArrayModel.algFunction.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] (alg : Learning.Algorithm ๐ R) (n : โ) : (โฅ(Finset.Iic n) โ ๐ ร R) โ โunitInterval โ ๐
Code
noncomputable
def algFunction (alg : Algorithm ๐ R) (n : โ) :
(Iic n โ ๐ ร R) โ I โ ๐ :=
(Kernel.exists_measurable_map_eq_unitInterval (alg.policy n)).chooseType uses (1)
Body uses (1)
Used by (17)
Actions: Source ยท Open Issue
pullCount'๐
Learning.pullCount'
Number of pulls of arm a up to (and including) time n.
This is the number of entries in h in which the arm is a.
Learning.pullCount'.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} [DecidableEq ๐] (n : โ) (h : โฅ(Finset.Iic n) โ ๐ ร R) (a : ๐) : โLearning.pullCount'.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} [DecidableEq ๐] (n : โ) (h : โฅ(Finset.Iic n) โ ๐ ร R) (a : ๐) : โ
Code
noncomputable
def pullCount' (n : โ) (h : Iic n โ ๐ ร R) (a : ๐) := #{s | (h s).1 = a}Used by (29)
Actions: Source ยท Open Issue
hist๐
Bandits.ArrayModel.hist
History of actions and rewards up to time n in the array model.
Bandits.ArrayModel.hist.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (ฯ : probSpace ๐ R) (n : โ) : โฅ(Finset.Iic n) โ ๐ ร RBandits.ArrayModel.hist.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} [Nonempty ๐] [StandardBorelSpace ๐] [DecidableEq ๐] (alg : Learning.Algorithm ๐ R) (ฯ : probSpace ๐ R) (n : โ) : โฅ(Finset.Iic n) โ ๐ ร R
Code
noncomputable def hist [DecidableEq ๐] (alg : Algorithm ๐ R) (ฯ : probSpace ๐ R) : (n : โ) โ Iic n โ ๐ ร R | 0 => fun _ โฆ (initAlgFunction alg (ฯ.1 0), ฯ.2 0 (initAlgFunction alg (ฯ.1 0))) | n + 1 => let hn : Iic n โ ๐ ร R := hist alg ฯ n let a : ๐ := algFunction alg n hn (ฯ.1 (n + 1)) fun i โฆ if hin : i โค n then hn โจi, by simp [hin]โฉ else (a, ฯ.2 (pullCount' n hn a) a)
Body uses (3)
Used by (30)
Actions: Source ยท Open Issue
obliviousEnv๐
Learning.obliviousEnvAn oblivious environment, in which the distribution of the next feedback depends only on the last action, but in a possibly time-dependent manner.
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
streamMeasure๐
Bandits.streamMeasureMeasure of an infinite stream of rewards from each action.
Bandits.streamMeasure.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} (ฮฝ : ProbabilityTheory.Kernel ๐ R) : MeasureTheory.Measure (โ โ ๐ โ R)Bandits.streamMeasure.{u_1, u_2} {๐ : Type u_1} {R : Type u_2} {m๐ : MeasurableSpace ๐} {mR : MeasurableSpace R} (ฮฝ : ProbabilityTheory.Kernel ๐ R) : MeasureTheory.Measure (โ โ ๐ โ R)
Code
noncomputable def streamMeasure (ฮฝ : Kernel ๐ R) : Measure (โ โ ๐ โ R) := Measure.infinitePi fun _ โฆ Measure.infinitePi ฮฝ
Used by (56)
Actions: Source ยท Open Issue