thinkingmachine
July 2004
Learning Models of Human Behavior

Wouldn't it be great if someone could develop a way to mine the web to figure out which activities are typically used in a given activity? Maybe one way that they could do it would be to look at how often an object term shows up in a Google query when paired with the related activity. If you compared that to how often the object showed up in general then maybe you could get a probability of the object's use when performing that activity.

Of course this would completely fail if there were web-pages that mentioned activities in the same breath as objects which were completely unrelated. For example, if there were a web-page somewhere that suggested "I like to eat tea-bags when I use the toilet", or "I frequently find that my television viewing is enhanced by sleeping with a vacuum", or "last night I changed a baby's diaper with a wooden spoon and a jar of peanut butter strapped to my dog" Fortunately for such a hypothetical research project though, there aren't any web-pages that say things like that....

What is Programming by Demonstration?

In the AI field people generally know what you mean by the term "Programming by Demonstration." When you pin them down on the definition it seems to settle on: A computer learning a macro from what you are doing repetitively in a text editor.

But at a higher-level, more general level, what is it? All a computer can do is execute a program, so any machine learning is "programming" a computer. And all learning is learning from demonstrations of things. So from at least a linguistic standpoint, the phrase Programming by Demonstration seems pretty meaningless. Judging from the body of work that calls itself PBD though I would say that it has the following qualities:

1) "It" learns from a very small number of examples (like maybe 1).
2) "It" learns a procedural language from the examples.
3) "It" operates in a discrete environment without non-determinism.

Discuss amongst yourselves...