Sunday, June 2, 2013

Learn By Doing

A really long time ago, I read the dissertation written by Hofstadter and his associates regarding the program known as Metacat, whose life's ambition was to understand analogies and produce a new analogy following the rules given by an initial analogy. The catch was that the rules behind the first analogy were not explained to it: it had to "figure it out," as it were. It occasionally got it right, but was more interesting was when it got it "wrong:" because, technically, the analogies it came up with did indeed follow the same rules as the first... it was just a different rule than the humans giving it the examples had thought of.

Teaching an AI is, I imagine, roughly similar to teaching a child: you basically go over the basic concept again and again, then give the AI a chance to demonstrate that it has learned what you've been teaching it. However, I suspect that there may be a better way, at least for AI, given just how incredibly different they think than we do.

Instead of just giving the AI examples of what you want, and see what happens, allow it to give the humans examples. Allow it to produce an analogy, then request that the humans teaching it produce a similar analogy.

For example, let's say that we give the AI these two analogy sets: "AA:BB, CC:??", where it needs to figure out the second half of the second analogy. Now, I can come up with at least two very reasonable responses: DD, following a +1 increment on letter position; or FF, following a doubling of the letter's position (A is 1, double is 2, so B; C is 3, double is 6, so F). Doubtless there are others, all assuredly involving more complicated maths or takes on what exactly is going on in these analogies.

The humans who gave this example have a clear idea in mind, but the AI has little clue which one is right. Humans are, for the moment, more sensitive to context and tend to think simpler at younger ages: a young child will, for example, almost assuredly give DD as the answer. Most people might not even consider FF as a possible answer, if only because performing unusual mathematical operations on letter position may not occur to them. But to an AI, this shit is all math, which leads them to doing things that may - at first glance - seem preposterous.

This is why the idea of learning by doing - by making the AI give the humans an example and an unfinished analogy - would be so incredibly powerful. On the one hand, it gives it an opportunity to see how other people solve analogies: it gives it ways to examine the concept of the analogy when it is not the one being tested, allowing it to see how other entities react to the sorts of information that it's been being tested on. On the other, it gives us even greater insights into how a particular AI is thinking: what sorts of analogies is it creating? Are they human-easy, human-difficult? Are they long and complex, or are they short and simple? Through looking at what sorts of examples the AI creates, we get a better picture of its own understanding of analogies and how they are constructed.

Obviously, this concept can be expanded out to nearly anything, not just analogies. I think that one of our problems with teaching AIs to date is that we are not giving them the opportunity to learn through watching other entities work through the problems we're giving them: instead, we force them to solely rely upon their own experiential data and the information required to make decisions about the tasks we are making them go through.

Just as the presence of sensorimotor equipment may prove to be crucially important to the development of an AI, we also need to keep in mind the other myriad ways in which our present AI teaching methodologies are non-reflective of how human minds are taught and grow. The more alike we can make their environments and methodologies, the more likely we are, I think, to be able to arrive at strong AI.