Learning parametes in DBNs

The front end.
Post Reply
liid
Posts: 32
Joined: Tue Jun 19, 2018 5:19 am

Learning parametes in DBNs

Post by liid »

Hi,

I have some questions regarding learning parameters of dynamic BNs.
I will talk in terms of intra-slice edges and inter-slice edges though I know genie takes a different representation.

1. I want to be sure that I understand how genie implements training for dbns:
lets say that I have 3 training sets, one taken at time0 (ds0), one at time 1 (ds1) and one at time 2 (ds2). I assume each dataset includes data about all the variables in the network.
When I train my dbn at time 0 using ds0, I believe that only intra-slice edges (cpds) will be updated. (which can be basically be seen as learning parameters in static bns, right?)
But I am not sure what happens at time1 and after. After I train my dbn using ds1, will only order1-edges-related cpds change (cpds that are created "based" on order-1-edges)? or will *all* the DBN's cpds change, even those that are based on regular (non temporal) edges?
in other words, when I provide information for time1 (order 1) after already providing information for time 0, do only inter-slice edges get updated? or also intra-slice edges?
(when I talk about intra/inter slice edges I obviously mean "cpds that are based on intra/inter slice edges)


2. I am trying to model a scenario where a certain edge is BOTH intra and inter slice. E.g., a0->b0, a0->b1, a1->b1.
I can not find a way to do that, as if I choose an "order 1" arc between a and b, I cannot see a in b's cpd at time 0.
How can I do that?

3. In the box "time series columns" (parameter learning), does it matter which variable I choose to put in each series (which one is mapped to series1, which one is mapped to series 2, etc)

Thank you very much!
marek [BayesFusion]
Site Admin
Posts: 430
Joined: Tue Dec 11, 2007 4:24 pm

Re: Learning parametes in DBNs

Post by marek [BayesFusion] »

Hi Liid,

Let me try to answer your questions one by one:

(1) For learning DBN parameters, all your data should be in one file that follows the format described in GeNIe manual. In that file, you will have all time slices, i.e., ds0, ds1 and ds2. Otherwise, you are right that the ds0 data will be used to learn the first slice. ds1 data (in combination with ds0) will be also used to refine the static links but also order 1 links. ds2 data in combination with ds1 data will be used to learn order 1 links and ds2 data in combination with ds0 data will be used to learn order 2 links.

(2) In the scenario that you have described, you will have two links between a and b, one is a static link and one is a temporal, order 1 link. To see the CPTs for each of the links, please use the pop-up menu in the definition tab, which shows you tables for different time orders.

(3) The labels in the first row of your data tell the program which variables the data correspond to.

I hope this helps,

Marek
liid
Posts: 32
Joined: Tue Jun 19, 2018 5:19 am

Re: Learning parametes in DBNs

Post by liid »

Thank you very much Mark.

I see that there is no option to do sensitivity analysis for dbns...may I ask why?
also, is there an alternative you can suggest for SA with regards to DBNs? my goal is just to identify the most influential factors on my target node.
liid
Posts: 32
Joined: Tue Jun 19, 2018 5:19 am

Re: Learning parametes in DBNs

Post by liid »

Sorry, I think I found a solution for that, as I can probably unroll the network and then perform SA...
However I do have a more fundamental question:
I am looking for either the a. "most influential variables", or the b. "most influential tuples of <variables, state>", but what SA gives me is basically the c. "most influential parameters". (.=.|.=.,.=.,=.=,...)
Is there any way to deduce, or partially deduce a. or b. from c.? even in a non quantitive manner?
Alternatively, is there any other method in genie that can be used to obtain either a. or b.?

Thanks!
marek [BayesFusion]
Site Admin
Posts: 430
Joined: Tue Dec 11, 2007 4:24 pm

Re: Learning parametes in DBNs

Post by marek [BayesFusion] »

Hi Liid,

You are right in that unrolling the network may be your only option. It is theoretically sound, as one way of conceptualizing inference in DBNs is that they are first unrolled. What will happen is that you may see the same patterns in various slices, depending of course what you select as target variables.

You can (imperfectly) deduce which variables are important by looking at which variables contain important parameters. GeNIe does this in the process of sensitivity analysis by coloring nodes. Those that contain very important parameters (in terms of influence on the target posterior) are colored red. If you use SMILE do do this calculation, you can decide yourself how to identify important nodes based on parameters that they contain.
I hope this helps,

Marek
liid
Posts: 32
Joined: Tue Jun 19, 2018 5:19 am

Re: Learning parametes in DBNs

Post by liid »

Hi Marek,

Thanks for the response!

I was actually thinking of choosing the most influential variables based on the nodes' colors (very red, lightly red etc). But then I realized that while I understand how the target's "tornado" is being calculated, I am not really sure according to which metric are you ranking nodes as more influential than other nodes (i.e. ranking whole nodes (whole nodes are colored in red/light red...) rather than specific parameters). Can you please explain which metric are you using, and whether I can see it in genie?

Also, I was wondering if there is a way in genie to performs SA only on a subset of nodes/parameters? (for instance, only consider observed nodes when performing SA. This kind of makes sense as oftentimes you invest more resources in those nodes (that their value is obtained from an external source) rather than the latent ones.
marek [BayesFusion]
Site Admin
Posts: 430
Joined: Tue Dec 11, 2007 4:24 pm

Re: Learning parametes in DBNs

Post by marek [BayesFusion] »

Hi Liid,

The colors of nodes are based on the maximum value of sensitivity (i.e., highest for any parameter).

The SA algorithm performs calculation for all nodes because it is very, very efficient and it does not makes practical sense to run it on a subset of nodes when you can calculate sensitivities for all nodes. If you want to focus on a subset, you could run the algorithm and then highlight the nodes that you are interested in (described in the manual, select the nodes that you are interested in and press CTRL-L).

I hope this helps,

Marek
liid
Posts: 32
Joined: Tue Jun 19, 2018 5:19 am

Re: Learning parametes in DBNs

Post by liid »

Thanks, you answers do help a lot!
Post Reply