No Comments

AI: What’s Missing?

Scott Fahlman,   April 21, 2008
Categories:  AI    

We seem to be solving AI backwards. That is, the early triumphs of the field have all been examples of what we consider to be mankind’s “higher” mental abilities – the things that we learn to do in college or grad school, or that we view as a sign of particular intellectual prowess: chess, puzzle-solving, manipulating complex algebraic formulae (Macsyma), interpreting nuclear magnetic resonance spectrograms (Dendral), planning the best way to use the resources of a factory or a Mars rover, suggesting antibiotics and dosages for various bacterial infections (Mycin), calculating your income tax (Turbo Tax), and so on. All very impressive – but these programs are confined to narrow domains of expertise. As I noted in an earlier article, today’s AI systems still lack the common sense and the flexible problem-solving ability of a five-year-old child – or the sensory-motor capabilities of a rat.

Why is this the case? In retrospect, it is perhaps not too surprising. The problems that AI researchers have so far attacked successfully are the ones that we humans must work hard to solve. We are aware of each step in the process. We write textbooks and manuals that describe, in considerable detail, how to perform these tasks. These are serial, conscious behaviors. On the other hand, the problems that have proven to be the hardest for AI have been the things that we humans can do “without any mental effort”: recognizing an object, understanding a spoken sentence, understanding (and being able to answer questions about) a “simple” children’s story. Whatever is going on when we do these things, we don’t have conscious access to it.

When we try to build machines and programs that do these jobs, we quickly discover how deep and complex these tasks really are. But the amazing thing is that we had to discover this. It’s not obvious to the five-year-old kid, reading or listening to a story about pigs, wolves, and construction materials, that he is doing something much harder (in some sense) than arithmetic or chess or interpreting nuclear magnetic resonance spectrograms. An awful lot of complex computation is going on as the kid makes sense of his story: sentences are being parsed, words are being disambiguated, motives and belief-states of the characters are being modeled, and so on, but the reader is mostly unaware of all this processing unless something goes wrong, or unless a partial solution pops up to the conscious level as a “flash of recognition”.[1]

In the early days of AI we were blissfully unaware that all this unconscious[2] processing was going on. I think that this explains, in part, why some early researchers in the AI field made predictions that, in retrospect, were wildly optimistic. These researchers were focused on the part of the problem they could see – the conscious, high-level, “difficult” part – and nobody realized until later that this was built on a hidden foundation that was doing a tremendous amount of work, but that somehow made that work seem “effortless”. After the first rush of AI and expert-system success (including many results of great commercial value) the field has paused for a while as we search for the principles and mechanisms that will allow us to replicate these hidden “core” capabilities.

In the meantime, there has been another wave of valuable AI applications based on statistical machine learning. Some of these results have been very impressive – search engines, adaptive control systems, and many kinds of data mining, just to name a few – but I would argue that these developments have not brought us much closer to understanding the core capabilities of human-like cognition, and in many ways they have been a major distraction.

So, we have had one wave of valuable AI applications based on symbolic “expert systems” technology and another wave based on statistical machine learning, but we are still far from implementing a broad, flexible, human-like intelligence. Some crucial capabilities seem to be missing. If we cannot yet implement these missing capabilities, can we at least list what they are?

Here is my own personal list of the fundamental missing capabilities that are necessary for human-like AI:

· The ability to assimilate and store large amounts of symbolic knowledge and to make that knowledge effective. By effective, I mean that the knowledge is in a form that supports reasoning, and that it plays a role in determining the system’s behavior.[3] It’s not enough just to stuff in the knowledge in the form of undigested English: it’s very hard to reason precisely using that sort of representation. So some sort of logic-like representation would appear to be necessary.

· The ability to take a set of features and expectations and find the best match (or a small number of plausible matches) from among a vast set of stored descriptions. This capability lies at the heart of many kinds of recognition: matching a stream of acoustic features against stored words and phrases; matching visual features against stored shape descriptions; matching observed actions against stored plan templates that might explain why these actions occurred; and so on. These matches are seldom perfect, so a brittle representation such as a hash table won’t do the job.

· A planning mechanism that exhibits the sort of flexibility and resourcefulness that we see in humans (and in many animals as well). By flexibility, I mean that when the system is blocked, it must fall back and choose an alternative path, perhaps combining its operators in novel ways. The planner must be robust in the face of incomplete knowledge and conditions that change at runtime, and it must be well integrated with the system’s store of world knowledge. The system should be able to learn new plan templates by observation or by being supplied with high level “recipes” – not detailed code. It is not necessary (or even particularly desirable) for the planning to be optimal; it just needs to be “good enough”.

· A learning paradigm that, over time, can provide the system with the vast amount of knowledge it will need – both symbolic knowledge and the “recipes” that are needed to create and understand new plans. Statistical learning will certainly play a role, but we also need mechanisms that “learn by being told” and that learn by observation – often from one or just a few examples.

· A flexible, integrated architecture to pull this all together. See my earlier article on this topic.

These are just the capabilities that I think are most important; there are many smaller ones, some of which depend on these.

As I said, this is my own personal list of “core” AI issues. I should point out that most of my colleagues in the AI field would come up with very different wish-lists. Among the capabilities that other researchers might highlight are further improvements in statistical learning; learning by mining the semantic web; optimal planning; coordination of many intelligent (or slightly intelligent) agents; solving of large constraint systems; more improvement at the lower sensory-motor levels; and building better interfaces between AI systems and humans, so that the AI systems can just stick to the things they do well. These are all excellent goals, but in my opinion they are not on the critical path. They don’t get us any closer to the heart of the monster.

While I can’t claim that I (or anyone else) has completely solved any of the issues on my list, I think we have made some progress, or at least have come up with some good ideas about how to make progress. Future articles will address each of these areas in greater depth.

---------------------------
  1. I plan to return to the whole slippery question of “consciousness” in a future article. []
  2. We must unfortunately avoid using the term “subconscious”, which was appropriated by Sigmund Freud to describe a rather different set of phenomena. []
  3. My current best guess as to the amount of information required for human-like common sense is somewhere in the range of 100 million entities and assertions, but that number could be low. Of course, many applications can get by with much less knowledge. []

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>