How to combine generative observations with an explicit observation model? #509
Replies: 1 comment 3 replies
-
Hi @stefan-f-bucher, I think the solution is to create multiple POMDP models. For example You can use the explicit model to find a policy and then simulate with physical data, e.g.
(As an alternative to multiple types, you could implement this using a compositional approach with a single type that has an observation model field and associated type parameter - ask if you are interested in further explanation) One more note: As mentioned in the docs, |
Beta Was this translation helpful? Give feedback.
-
Hi all, and thank you so much for your work on this incredible framework! 🙏
I'm hoping for some help with my conceptual understanding of generative and explicit models and how they can be combined, especially in relation to the changes in #269 by @zsunberg. To make things concrete, let's say I'm trying to implement a lunar lander with noisy sensors.
I have an observation model implemented as
POMDPs.observation(m::myProblem, s, a, sp)
.Now let's say I'm trying to adapt the framework for use with a physical environment sending observations. Transition models and reward are still implemented using the explicit interface. My understanding is that I can implement this observation using the generative framework, along the lines of
First question: If both implementations are present, when does POMDPs.jl invoke the generative vs explicit implementation? Here I would guess that the generative implementation of
o
is used, but the explicit implementations of the transition and reward (sincesp
andr
are lacking in the NamedTuple returned by gen). Is that correct?Second question: I would like model-based solvers to have access to my explicit observer model in
POMDPs.observation(m::myProblem, s, a, sp)
rather than just samples as would be the case if I would implement it as an ImplicitDistribution. The generative model is only meant to provide observations when interacting sequentially with a physical environment. How can I ensure that? Currently it appears as though POMSPs.observation takes precedence over POMDPs.gen.I hope that my questions are clear. I'm really just hoping for a better conceptual understanding of how generative and explicit implementations can/should be combined. Thank you so much for your kind help!
Beta Was this translation helpful? Give feedback.
All reactions