Skip to content

Commit

Permalink
minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
FlyingWorkshop committed Mar 19, 2024
1 parent da316d4 commit b00279c
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down

0 comments on commit b00279c

Please sign in to comment.