I am not sure the current programming languages have the properties that would
facilitate building sophisticated AI. Although it might be theoretically
possible, building an AI with, say, C or Java, resembles building a castle from
gravel with bare hands. We need the kind of tools that allow programming with
concepts, influences, contexts, weights, levels-of-detail, causes, structures,
heuristics, not instructions, predicates, rules or algorithms.
An AI is something too complex to be rewritten every few years. It is not just
the procedures, it's also the knowledge the system has accumulated. This means
that all the components will have to be reusable to an unprecedented extent. An
idea is reusable, but its implementation is not.
* Hierarchy of computation
An AI is not just a program. It's a system that combines the code, and the
knowledge about the code. Code alone is not introspective. Knowledge about the
code is too inefficient to be interpreted. Given a task, the system recompiles
the important tasks into code that executes quickly. And the code that executes
especially often to justify the expenditure of time, can be recompiled into
FPGAs. And every now and then, the system might provide designs for custom chips
and ask the human guardians for them.
Building an AI has proven to be something too complicated for a small team of
people working for a year or two. Perhaps it is better to provide a framework
that would allow many people to contribute, without breaking the system.
Deductive thought is just one subsystem, other subsystems are spatial thought,
classification, clustering, self-analysis, etc.
Living in the real world requires perception, and artificial perception is still
terribly primitive. Until then, it is better to limit the focus of the AI on
software itself. We do not need proper perception: the objective for Seed AI is
to rewrite and improve itself, while acting in a simple world (computer), where
the environment is disk-space ecology, network geography, CPU food, and user the
* To Do
Some things have to be done first. Building the framework is the most complex
and important item. But we don't yet know how new concepts should emerge, how to
deal with levels-of-detail, how to estimate the reliability of knowledge, how to
formally describe ideas, or how to understand and rework software. The problems
are at a very fundamental level. They're not philosophical, but require a lot of
introspection, at a relatively mundane level.
(c)2001 Aleks Jakulin
This archive was generated by hypermail 2b30 : Mon May 28 2001 - 10:00:01 MDT