You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't think we should define probvec for Dirichlet since it returns the pseudo-count parameters for the Dirichlet distribution. I would say that a sample from a Dirichlet distribution is a probvec, and the output of a call to probvec should always be a normalized discrete distribution. I am referencing this because ReactiveBayes/ReactiveMP.jl#424 this PR actually found a bug in the tests for the Transition node. In this line we test the rule for the Transition node when the posterior marginal on the out interface is Dirichlet. This is something that is not possible since the Transition node governs transitions between Categorical variables (which can have a Dirichlet prior, sure, but the incoming message or marginal on that edge should be a Categorical distribution or PointMass. The test does not fail because Dirichlet implements probvec. Which I think is something then we should not be doing.
I agree something is fishy here, I think we should just use params() from Distributions.jl where necessary? I think probvec is a remnant from ForneyLab's implementation
I don't think we should define
probvec
forDirichlet
since it returns the pseudo-count parameters for the Dirichlet distribution. I would say that a sample from a Dirichlet distribution is aprobvec
, and the output of a call toprobvec
should always be a normalized discrete distribution. I am referencing this because ReactiveBayes/ReactiveMP.jl#424 this PR actually found a bug in the tests for the Transition node. In this line we test the rule for the Transition node when the posterior marginal on theout
interface isDirichlet
. This is something that is not possible since the Transition node governs transitions between Categorical variables (which can have a Dirichlet prior, sure, but the incoming message or marginal on that edge should be aCategorical
distribution orPointMass
. The test does not fail becauseDirichlet
implementsprobvec
. Which I think is something then we should not be doing.What do you think @ismailsenoz @Nimrais @ThijsvdLaar @bvdmitri ?
The text was updated successfully, but these errors were encountered: