From b00279c8eba6148b939bddd71e0f23a5e9d8034b Mon Sep 17 00:00:00 2001 From: Logan Mondal Bhamidipaty <76822456+FlyingWorkshop@users.noreply.github.com> Date: Tue, 19 Mar 2024 13:21:50 -0700 Subject: [PATCH] minor changes --- paper.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/paper.md b/paper.md index 607bc01..48eeee8 100644 --- a/paper.md +++ b/paper.md @@ -25,7 +25,7 @@ bibliography: paper.bib # Summary -A standard mathematical framework for specifying a sequential decision problem with state and outcome uncertainty is the partially observable Markov decision process (POMDP) [@AFDM], with applications to areas such as medicine [@drugs], sustainability [@carbon], and aerospace [@planes]. Unfortunately, solving real-world POMDPs with traditional methods is often computationally intractable [@complexity; @complexity2]. Belief compression [@Roy] is a powerful technique for overcoming this limitation that's particularly effective when uncertainty is sparse or concentrated. +A standard mathematical framework for specifying a sequential decision problem with state and outcome uncertainty is the partially observable Markov decision process (POMDP) [@AFDM], with applications to areas such as medicine [@drugs], sustainability [@carbon], and aerospace [@planes]. Unfortunately, solving real-world POMDPs with traditional methods is often computationally intractable [@complexity1; @complexity2]. Belief compression [@Roy] is a powerful technique for overcoming this limitation that's particularly effective when uncertainty is sparse or concentrated. # Statement of Need @@ -36,13 +36,16 @@ As far as we are aware, no prior Julia or Python package implements POMDP belief # Belief Compression The belief compression algorithm in @Roy can be generalized into the following steps: + 1. sample reachable beliefs; 2. compress the beliefs; 3. create a function approximator for the compressed beliefs; 4. create the compressed belief-state Markov decision process (MDP); 5. and, solve the MDP with local approximation function approximation. -For steps 1. and 2., CompressedBeliefMDPS.jl defines two abstract types `Sampler` and `Compressor`. For step 3., we use the `LocalFunctionApproximator` abstract type from [LocalApproximationValueIteration.jl](https://github.com/JuliaPOMDP/LocalApproximationValueIteration.jl) (we need function approximation because it gives us an error bound on the estimated value function which is no longer guaranteed to converge to the optimum since it's not necessarily convex over the compressed beliefs). For each of these types, CompressedBeliefMDPs.jl defines several convenience subtypes which we describe below. For step 4., we define a new generative `POMDP` type called `CompressedBeliefMDP` that wraps [`GenerativeBeliefMDP`](https://juliapomdp.github.io/POMDPModelTools.jl/stable/model_transformations/#Generative-Belief-MDP). As an aside, in @Roy, the state space comprises the _approximate_ compressed belief states; CompressedBeliefMDPs.jl, on the other hand, delegates local approximation to the solver. This makes it easier to benchmark different solvers against the same compressed belief-state MDP. Finally, for step 5., we define `CompressedSolver <: POMDPs.Solver` that wraps the entire belief compression pipeline. +For steps 1. and 2., CompressedBeliefMDPS.jl defines two abstract types `Sampler` and `Compressor`. For step 3., we use the `LocalFunctionApproximator` abstract type from [LocalApproximationValueIteration.jl](https://github.com/JuliaPOMDP/LocalApproximationValueIteration.jl). Note that we need function approximation because it gives us an error bound on the estimated value function: our estimate is no longer guaranteed to converge to the optimum since the value function is not necessarily convex over the compressed belief simplex. CompressedBeliefMDPs.jl defines several convenience subtypes which we describe later. + +For step 4., we define a new generative `POMDP` type called `CompressedBeliefMDP` that wraps [`GenerativeBeliefMDP`](https://juliapomdp.github.io/POMDPModelTools.jl/stable/model_transformations/#Generative-Belief-MDP). As an aside, in @Roy, the state space comprises the _approximate_ compressed belief states; CompressedBeliefMDPs.jl, on the other hand, delegates local approximation to the solver. This makes it easier to benchmark different solvers against the same compressed belief-state MDP. Finally, for step 5., we define `CompressedSolver <: POMDPs.Solver` that wraps the entire belief compression pipeline. # Example @@ -70,7 +73,7 @@ CompressedBeliefMDPs.jl is compatible with any `LocalFunctionApproximator`. It s ## Compressors -CompressedBeliefMDPs.jl provides several wrappers for commonly used compressors. Through [MultiVariateStats.jl], we include principal component analysis (PCA) [@PCA], kernel PCA [@kernelPCA], and probabilistic PCA [@PPCA]. Through a forthcoming package `ExpFamilyPCA.jl`, we also not only the Poisson exponential family PCA in @Roy, but also the more general exponential family PCA from @EPCA that induces a compression objective from any convex function. +CompressedBeliefMDPs.jl provides several wrappers for commonly used compressors. Through [MultiVariateStats.jl](https://juliastats.org/MultivariateStats.jl/stable/), we include principal component analysis (PCA) [@PCA], kernel PCA [@kernelPCA], and probabilistic PCA [@PPCA]. Through a forthcoming package `ExpFamilyPCA.jl`, we also include exponential family PCA [@EPCA]. This is more general than the Poisson exponential family PCA in @Roy: ExpFamilyPCA.jl supports compression objective induced from _any_ convex function, not just the Poisson link function. # Acknowledgements