-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
In ClojureCat, logprob returns a not-implemented error.
This is fixable. On the view level, event processing/normalization needs to be implemented to ensure the correct probabilities are returned for logprob with complex events (see reference implementation for the event processing here). For categorical GPMs, logprob is trivial. For the normal components, the situation is a bit more complicated. It can be implemented in two ways:
- Simple rejection sampling; this is going to be slow, in particular, if we combine this with calls to
constrain, which currently also relies on rejection sampling (resulting in a nested loop for rejection sampling). - Turning the normal-inverse gamma conjugate implementation of our normal components into t-distribution components and computing the CDF for logprob analytically. This alone will support univariate events. Combined with event processing/normalization complex events can be supported.
Because logprob repeatedly called for computing mutual information, 2. is the way to go. 1. Will be significantly quicker to implement, though.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels