This is an old revision of the document!
Course notes.
Methodology: How Do We Build an Intelligent Machine?
A key message so far is that intelligence requires architecture: Intelligence comes about only if we have a set of components, interconnected in a particular way, operating in part as a single unit – i.e. in concert. Intelligence is also a relative term in that we can say that any acting entity, in a particular environment, is more or less intelligent to some degree, depending on its juxtaposition towards that environment, its available knowledge, and goals. Therefore we must at some point ask ourselves the question “what kinds of system architectures are more likely than others to enable us to build intelligent systems?”
A reasonable hypothesis would be that present methodologies in software engineering, having enabled us to build some of the most advanced and complex systems ever created in the history of mankind, might prove sufficient to realize AGIs. It certainly has been sufficient for making progress in building intelligent systems, and while the ones built so far are clearly not AGIs, they are vastly more capable than prior solutions in handling complex tasks, dealing with missing data, and doing tasks that only humans could solve before.
There are not very many methodologies that have been created specifically within the field of A.I., but some can be listed. For example, production systems were proposed as a formalism that would enable the creation of general intelligence. Being frustrated with the shortcomings of this approach for building reliable robots, the “subsumption architecture” was proposed, based on augmented finite state machines. An attempt at synthesizing all the best from prior ones is the Constructionist Design Methodology. More recently the “belief, desire, intentions” methodology has been increasingly appearing in the literature. All of these stand firmly on prior and present software design methodologies, and while all of them add ideas specific to A.I. development, they are more or less confined to what can be done with current programming languages on current network designs. Therefore they are also subject to the same restrictions as these methodologies. This makes the task of evaluating their potential for creating AGIs a bit easier than otherwise, because the pros and cons of these methodologies are reasonably well documented.