paulws / Banish

Banish
1 stars 2 forks source link

What models are in Banish? #1

Open amb-enthusiast opened 10 years ago

amb-enthusiast commented 10 years ago

Just wanted to get the discussion started about Banish features, and thought a good place to start would be the kinds of models that Banish will include.

These links provide formal background to most of the terms I use - feel free to ask me to clarify anything. http://robotics.stanford.edu/~koller/Papers/Koller+al:SRL07.pdf http://www.cs.ubc.ca/~murphyk/Bayes/bnintro.html

Types of graph models

Bayesian Network (BN)

The standard Bayesian network, comprised of a directed acyclic graph (DAG) where nodes correspond to random variables and the graph structure defines dependency relationships between variables. In addition, the model includes the conditional probability distributions (CPDs) for each component (variables and variable parents).

Dynamic Bayesian Network (DBN)

A DBN is usually defined by an initial state (t=0) BN and a transition model (t+1 given t) BN, and can be unrolled over a sequence (from t=0 to t=T). DBNs are very relevant to my work, and are especially relevant for activity-based problems. This representation incorporates Hidden Markov Models (HMMs).

General template BNs

This would include "plate models" which allow complex models with shared parameters to be defined over indexed variables, and "unrolled" to give the full model. I haven't really used this, but may be useful to someone?

Markov Networks / Markov Random Fields

Discussion so far has been focused on BNs. I guess that Markov Networks (MNs) and Conditional Random Fields (CRFs) are out of scope? This might be something that can be added without a huge stretch, as many inference algorithms work for BNs and MNs.

Parameter distributions

As well as the kinds of graph models included, worth thinking about the types of variables and CPDs included in Banish.

Discrete variables

I'm assuming that the focus is on discrete variables, with multinomial CPDs represented in a tabular data structure. This fits well with my needs, as we typically create discrete variables and table distributions from time-series data.

Continuous variables

Continuous variables would be a good addition, especially for sensor-oriented applications. Specifically, conditional linear Gaussian (CLG) models would be cool.

Compact representations

Being able to include some compact representations (tree CPDs, selector/multiplexer distributions, noisy OR , noisy AND, HMM state transition models etc.) would be a big bonus.

astr0labe commented 10 years ago

Hi Ant, the development of Banish is largely being guided by three example problems (and will later be guided by a 'reperesentative' problem). These example problems only require the simplest options in terms of the graph models, parameter distributions, and query types you list. On the other hand, one of the problems talks about specifying distributions in non-standard ways, for example if there are some zero values specified for certain conditionals, then certain marginals can be deduced without the need for certain other conditionals to be specified; or a user might estimate the probability of complicated 'conditionals' such as the probability that A or B is true but C is false, and want to know whether the specified data is contradictory, whether it's complete, and what additional conditionals might be specified in order to be able to deduce certain marginals.

These requirements are quite different from anything I've seen tackled before, and I'm expecting that at first a lot of our effort will be devoted to working out whether and how they could be usefully approached, rather than generalising the network in ways that aren't required by the example set. On the other hand, our goal is to make a tool that is useful enough to our intended users that they actually use it, so if the elaborations you discuss would be a big advantage for them, we would definitely consider adding them. We would also be very happy if the work extended beyond the current project, so ideas for what me might do in further work are welcome.

wozzam commented 10 years ago

Its great to get the dialogue going on this. I guess there's only a little while left this year and the example problems that PC et al put up are driving the near term development. They are example problems but applicable to the kinds of thinking that PC et al would encourage structured analytical thinking towards. However its worth pointing out that the tool in its current form, and in later iterations, will be used by the most enthused and capable analysts.

Is there scope in the technology watch aspect to investigate more of the Dynamic BN but I agree that others are probably out of scope in this time scale? Most of the focus has been on discrete variables but we did cover continuous variables in the kick off. I agree with AB that this will be increasingly relevant to our future work so anything done in this space isn't going to be nugatory effort.

I echo Toms comments about shaping the future work and its continuations. At this stage it might be useful to not over think the UI and UX because if we have the richness in functionality and a strong API then we'll be able to work closely with the users (in this and future contracts) to develop the UI.

amb-enthusiast commented 10 years ago

Thanks for the clarification guys. It sounds like the foundational features for "doing BNs" will be tackled, with potential for more esoteric features to be added in the future. Anything that keeps the code extensible and reusable is good news in my book.

Really interested to see the work on feedback between user model estimation & "data contradiction". Understanding when users re-estimate their model vs. discard data will be an interesting study!