October 6, 2004
Modeling ADLs with Timed HMMs: Conclusion
So here is what I think is reasonable to conclude from this data. Nothing earth shattering, but now there is data to support it:
- Activity durations are not well characterized by exponential distributions. One might model them differently and possibly give an inference engine more accuracy as gaussian, gamma or poisson distributions
- The HMM model is sufficient to recognize activities well if the objects involved do not overlap. When the objects involved overlap, the HMMs start to fail. Particularly when you want the system to segment the activities, which is a reasonable expectation.
So I think that the next step is to actually a step backwards in terms of modeling. I want to see how well a purely event driven version of this model does in comparison. That means that there are no "null" observations.
Modeling ADLs with Timed HMMs: Follow-up
Here are three graphs comparing the probability of seeing an object given an activity. This first one compares engaging in a leisure activity with making a snack. In this case there is little in common between the two profiles. As a result, the activities were never confused by the HMM model.
In contrast here are two examples in which the activities were confused. Notice the overlap in the observation profiles
another example of confused activities:October 4, 2004
Modeling ADLs with Timed HMMs
Here are some results for using HMM's to recognize ADLs. First about the data set:
This was the dataset that Matthai first recorded at his house. It consists of 17 non-researchers performing 12 activities one from each of 12 classes. The 12 classes were chosen randomly from a total set of 14 classes, so in each user trace there are 2 classes not represented. The classes of activities performed correspond to ADLs on the form that Intel scrounged up that care-givers fill out during home-care visits.
Each user wore an RFID antenna glove and performed their activities in a house that was tagged with 108 RFID tags. The sequence of activities has no information as they were randomly ordered. Each activity was performed atomically with no interruptions. Here are some statistics related to the data:
Activity Class | # of traces in dataset | Average Duration in seconds |
Personal Appearance | 16 | 91 |
Oral Hygiene | 13 | 108 |
Toileting | 15 | 111 |
Hand Washing | 11 | 75 |
Housecleaning | 16 | 134 |
Appliance Usage | 13 | 92 |
Prepare a snack | 12 | 174 |
Prepare a drink | 19 | 135 |
Control the temperature | 15 | 67 |
Laundry | 11 | 146 |
Leisure | 15 | 152 |
Telephone Usage | 17 | 149 |
Infant Care | 17 | 160 |
Take Medication | 14 | 74 |
Here is a graph of the activity durations:
Here is the aggregate of all of those durations approximated by a gamma function
To model this domain with HMMs I segmented each of the traces into their 12 composite activities. I calculated P(RFID objects given activity) for each activity including the possibility of a "nothing" observation. Then I constructed an HMM in which there was one node for each activity. Each node has a self-transition whose probability was calculated based on mean activity duration. Each node also had 13 uniformly distributed out-transitions to the other activity nodes. The HMM started with a uniform prior over all of the activities. I then performed 17 fold cross-validation on the user traces and determined the viterbi path through the state space that corresponded to left out user trace. Here are the results:
Total Number of Activities performed: | 204 | |
Number of missed Activities (False Negatives) | 17 | |
* | Average duration of missed activity | 82 second |
* | Average number of objects touched in a missed activity | 2.3 |
Number of added Activities (False Positives) | 6 | |
Number of confused Activities | 17 | |
* | Toileting interpreted as washing hands | 7 times |
* | Washing hands interpreted as toileting | 1 time |
* | Using a dishwasher interpreted as making a snack | 1 time |
* | Making a drink interpreted as making a snack | 1 time |
* | Personal appearance interpreted as washing hands | 1 time |
* | Personal appearance interpreted as brushing teeth | 2 times |
* | Cleaning interpreted as making a drink | 1 time |
* | Using an appliance interpreted as making a drink | 1 time |
* | Making a drink interpreted as using an appliance | 1 time |
* | Leisure interpreted as controlling temperature | 1 time |
Overall Recall (Correctly guessed activities)/(All true activities) = 160/204 | 78% | |
Overall Precision (Correctly guessed activiites)/(All guessed activities) = 187/193 | 97% |