Lean module · UCB
BanditRLProof.Algorithms.UCBRealStationaryCanonicalKernelTrajectory
# Canonical-kernel trajectory source for stationary UCB This module packages the canonical arm-stream UCB split conditional laws as a history algorithm and environment, then independently regenerates their observable action/reward pair process with Mathlib's Ionescu-Tulcea `Kernel.trajMeasure`. The resulting coordinate process supplies every field of `RealStationaryUCBSequence` without a caller-provided sample space or law.
Module map
Imports
BanditRLProof.Algorithms.ThompsonCanonicalTrajectory, BanditRLProof.Algorithms.UCBRealStationaryFiniteArmRewardLaws
Imported by
BanditRLProof, BanditRLProof.Algorithms.UCBRealStationaryExplicitPolicy
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
def
BanditRLProof.UCB.canonicalArmStreamHistoryAlgorithm
Compiled
Canonical arm-stream initial and successor action laws as a history algorithm.
noncomputable def canonicalArmStreamHistoryAlgorithm {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Thompson.HistoryAlgorithm (Fin K) Real where
def
BanditRLProof.UCB.canonicalArmStreamHistoryEnvironment
Compiled
Canonical arm-stream initial and successor reward laws as a history environment.
noncomputable def canonicalArmStreamHistoryEnvironment {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Thompson.HistoryEnvironment (Fin K) Real where
def
BanditRLProof.UCB.canonicalKernelTrajectoryMeasure
Compiled
Independently regenerated pair trajectory from the canonical UCB split kernels.
noncomputable def canonicalKernelTrajectoryMeasure {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Measure ((n : Nat) -> Fin K × Real)
def
BanditRLProof.UCB.finiteArmCanonicalKernelTrajectoryMeasure
Compiled
Finite-arm-law specialization of the canonical-kernel trajectory measure.
noncomputable def finiteArmCanonicalKernelTrajectoryMeasure {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (armLaw : Fin K -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) : Measure ((n : Nat) -> Fin K × Real)
def
BanditRLProof.UCB.canonicalKernelTrajectoryAction
Compiled
Action coordinates of the canonical-kernel pair trajectory.
def canonicalKernelTrajectoryAction {K : Nat} : ((n : Nat) -> Fin K × Real) -> ActionTrace (Fin K)
def
BanditRLProof.UCB.canonicalKernelTrajectoryReward
Compiled
Reward coordinates of the canonical-kernel pair trajectory.
def canonicalKernelTrajectoryReward {K : Nat} : ((n : Nat) -> Fin K × Real) -> RewardTrace Real
theorem
BanditRLProof.UCB.realStationaryUCBSequence_canonicalKernelTrajectory
Compiled
The independently generated canonical-kernel trajectory satisfies all local stationary UCB split conditional-law fields.
theorem realStationaryUCBSequence_canonicalKernelTrajectory {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : RealStationaryUCBSequence (canonicalKernelTrajectoryMeasure hK c sigma2 nu) hK c sigma2 nu canonicalKernelTrajectoryAction canonicalKernelTrajectoryReward
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedRegret_nonneg_and_le
Compiled
Armwise-bounded laws give the logarithmic expected-regret envelope on the independently regenerated canonical-kernel trajectory.
theorem canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedRegret_nonneg_and_le {K : Nat} [NeZero K] (hK : 0 < K) (armLaw : Fin K -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (lo hi : Fin K -> Real) (hbound : forall arm, Filter.Eventually (fun x : Real => Set.Icc (lo arm) (hi arm) x) (ae (armLaw arm))) (n : Nat) : let sigma2 := Concentration.finiteArmPositiveVarianceProxy (fun arm => Concentration.intervalVarianceProxy (lo arm) (hi arm)) 0 <= realStationaryArmwiseBoundedFiniteArmExpectedRegret (finiteArmCanonicalKernelTrajectoryMeasure hK 4 sigma2 armLaw hprob) armLaw canonicalKernelTrajectoryAction n /\ realStationaryArmwiseBoundedFiniteArmExpectedRegret (finiteArmCanonicalKernelTrajectoryMeasure hK 4 sigma2 armLaw hprob) armLaw canonicalKernelTrajectoryAction n <= realStationaryArmwiseBoundedFiniteArmModelCoefficient armLaw hprob lo hi * (1 + Real.log ((n + 1 : Nat) : Real))
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedAverageRegret_tendsto_zero
Compiled
The expected regret per round of the independently regenerated canonical-kernel UCB trajectory tends to zero.
theorem canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedAverageRegret_tendsto_zero {K : Nat} [NeZero K] (hK : 0 < K) (armLaw : Fin K -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (lo hi : Fin K -> Real) (hbound : forall arm, Filter.Eventually (fun x : Real => Set.Icc (lo arm) (hi arm) x) (ae (armLaw arm))) : let sigma2 := Concentration.finiteArmPositiveVarianceProxy (fun arm => Concentration.intervalVarianceProxy (lo arm) (hi arm)) Tendsto (realStationaryArmwiseBoundedFiniteArmExpectedAverageRegret (finiteArmCanonicalKernelTrajectoryMeasure hK 4 sigma2 armLaw hprob) armLaw canonicalKernelTrajectoryAction) atTop (nhds 0)