January 4, 2005

IJCAI update

model.jpg

Alright, I'm pretty excited. Things are going well.

I've got a full interrupt model running on toy data right now. I'm doing exact DBN inference and EM learning. A picture of the model is on the left. Starting from the top, there is a box with a dashed line around it. This is a template that is instantiated for each activity in the library. Each activity is a linear sequence of steps with self-transitions. The nodes labeled "Activity X" take on the value of the currently executing step in the activity. Instantiating each activity generates an additional in-arrow to the "Observation" node, but the data association variable "Primary Activity" cause the parents of "Observation" to be independent given its value.

The remainder of the nodes are used to manage interrupts. The "Interrupt" node indicates how flow is moving in the world. It takes on one of 6 values depending on whether an activity is continuing as expected, or being interrupted in various ways. The "switched" node and the "Start/Middle/End" node are deterministic. The "Constraint Check" node is always observed to be "1" and is used to enforce properties about the system. It is this structure which enables us to get away from the dependency on the joint progress of all the activities and just focus on resuming activities that are in progress, regardless of which ones they are.

This model allows us to:
1. Learn which activities are interrupted by which other activities.
2. Learn which observations we expect to see at each step in an activity.
3. Encode a preference for resuming previously underway activities.

The next step is to add relational smoothing to the parameters at each step of EM.

Here is an example of inference:
flow_:( )(3)(0)(0)(0)(0)(2)(0)(0)(0)(3)(0)(0)(0)(2)(0)(0)(0)(0)(0)(3)(0)(0)(0)(0)(0)(3)
dataA:(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)
a0___:(3)(3)(3)(3)(3)(3)(0)(1)(2)(3)(0)(1)(2)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)
a1___:(4)(0)(1)(2)(3)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)
a2___:(5)(5)(5)(5)(5)(5)(5)(5)(5)(5)(5)(5)(5)(5)(0)(1)(2)(3)(4)(5)(0)(1)(2)(3)(4)(5)(0)
obs__:(9)(0)(1)(2)(3)(4)(0)(1)(2)(3)(0)(1)(2)(3)(0)(1)(2)(3)(4)(5)(0)(1)(2)(3)(4)(5)(0)
sme__:(2)(0)(1)(1)(1)(2)(0)(1)(1)(2)(0)(1)(1)(2)(0)(1)(1)(1)(1)(2)(0)(1)(1)(1)(1)(2)(0)
sw___:( )(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)
cc___:( )(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)
Second example
flow_:( )(2)(0)(0)(5)(0)(0)(0)(0)(0)(0)(3)(0)(0)(0)(0)(0)(1)(3)
dataA:(1)(0)(0)(0)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(0)(0)
a0___:(3)(0)(1)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(3)(0)
a1___:(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)
a2___:(5)(5)(5)(5)(0)(1)(2)(3)(3)(4)(5)(0)(1)(2)(3)(4)(5)(5)(5)
obs__:(9)(0)(1)(2)(0)(1)(2)(3)(3)(4)(5)(0)(1)(2)(3)(4)(5)(3)(0)
sme__:(2)(0)(1)(1)(0)(1)(1)(1)(1)(1)(2)(0)(1)(1)(1)(1)(2)(2)(0)
sw___:( )(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(1)(0)
cc___:( )(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)

Posted by djp3 at January 4, 2005 12:58 PM | TrackBack (0)
Comments
Post a comment

Post a comment