AI Expert Newsletter
AI - The art and science of making computers do interesting
things that are not in their nature.
December 2002
Is AI Practical?
Thanks for the e-mail.
A number of people asked if AI was practical and if there were
commercial applications.
The very fact that the question needs to be asked, and that there
are those who see the need to catalog affirmative answers, indicates
that there is some question. I haven't seen anyone ask if there
were commercial applications of databases, or Java.
So, are there commercial applications of AI? Yes. Are there as
many as those in the field would like to see? No.
Why not? I believe it has to do with the fundamental premise of
this newsletter, that AI is NOT in a computer's nature.
Java was a tremendous success with programmers because it was both
new and familiar. It was familiar because it was based on the well-understood
CPU and memory of computer. It was new because of easier semantics
and syntax than previous languages. In short, it was a better tool
for the familiar job of programming.
An AI tool is based on a virtual machine that does NOT work like
a normal computer. In order to get competent with a given tool,
a programmer has to learn the language of the tool AND the way the
underlying virtual machine works. Further, the language of the tool
is more difficult to learn because it is, in essence, programming
an unfamiliar type of machine.
In other words, it's simply harder to get started with an AI tool.
Which means there is more inertia to overcome in getting a commercial
information technology (IT) shop to implement an AI-based solution
to a particular problem. Given the vast application backlog of most
shops, it's just human nature to tackle the familiar problems first.
However, if a problem is pressing enough, and AI is the best solution,
then there is motivation to overcome that inertia. Consider for
example, all the stock brokers in the World using neural
net applications (I hope that link still works) to predict stock
prices.
Two of my favorite motivations of early adapters came from Frito
Lay and Lazy Boy. Frito Lay wanted fewer broken potato chips in
their bags; Lazy Boy wanted more efficient distribution and shipping
of recliners. They both achieved their goals with Rete-based production
planning systems. Something to think about when you relax with a
bag of chips watching the next Super Bowl.
And how did expert systems first get out of the laboratory and
into commercial use? It was insurance companies screaming for a
way to automate underwriting. They brought IBM and a bunch of entrepreneurs
into the rule-based business in a hurry.
Each month I'll try to cover some practical/commercial AI application,
so if you have any favorite ones, please let me know. This month,
its Egyptian Cucumbers.
As always, any and all feedback is appreciated.
dennis@ddj.com
Evolving Machine Intelligence
"Everything we know about life is based on one example
of life: Life on Earth. Everything we know about intelligence is
based on one example of intelligence: Human intelligence. This limited
experience burdens us with preconceptions and limits our imaginations."
-- Tom Ray in his critique
of Kurzweil's book "The Age of Spiritual Machine."
One of the things I found fascinating about the Hyperion Trilogy
was the concept of the "AIs," intelligences that evolved
in the information networks of the future. Not AIs built by humans
to human design specifications, but rather AIs that evolved in the
primordial digital soup of a vast information network.
Tom Ray's work on evolving machine intelligence was the basis for
that bit of science fiction. What is refreshingly different about
Ray's work is how he tries to escape from anthropomorphic thinking
about artificial intelligence.
It is his claim that biological intelligent beings were produced
by evolution, and the best way to create silicon intelligent beings
is the same. To this end he developed the first Tierra program.
It had a mechanism to let programs evolve, but there was no "artificial"
human motivation, like searching for food, that drove the evolution.
Rather, these were just programs trying to reproduce themselves,
competing for CPU cycles and memory.
In other words, Ray's work goes exactly opposite the working definition
of AI for this newsletter. Rather than building a virtual machine
antithetical to a computer's nature, he was seeking to evolve intelligence
totally within the realm of "data" and "processing."
Of course, he had to write a virtual machine to do it.
His virtual machine had a machine language designed to support
evolutionary change, and an original program that made replicas
of itself in memory. But mutation would enter into the replicas
from time to time. The result was replicating programs evolved that
were much smaller and faster than the original. Also parasitic programs
evolved that used code from other programs, and hostile and friendly
programs.
Wow.
But his programs never got much beyond that, and he figured the
problem was the limitation of a single machine. This led rise to
Network Tierra, whereby the unused cycles of all the machines on
the Internet could be used to house a "game preserve"
where digital creatures were free to evolve.
Tom Ray's work is an excellent example of what can happen when
disciplines cross. He is not a programmer. He is a zoologist. And
his interest in evolving intelligence in a digital medium was motivated
to a large degree in the possibility of creating a laboratory where
the mechanism of evolution could be better studied.
Based on his latest writings, it appears as if the Network Tierra
has slowed due to technical difficulties. His creatures were consuming
too much band width. Ray has also moved his focus to some other
evolutionary software projects that more closely model organic evolution.
These have yielded some very visually pleasing pictures and movies,
but that's for a later newsletter.
Egyptian Cucumbers, Citrus Fruit
and Cherry Tomatoes
The question of commercial applications of AI might be a peculiarly
American one, with its dramatic separation of government, academic
and private institutions. The three sectors work closer in other
parts of the World.
The Central Laboratory
for Agricultural Expert Systems (CLAES) was established by the
Egyptian Ministry of Agriculture to optimize the use of agricultural
resources and maximize food production. The director of the laboratory
is Dr. Ahmed Rafea, who is also chair of the computer science department
of Cairo University.
They have fielded a number of systems that seek to optimize production
of crops such as cucumbers, citrus fruits and cherry tomatoes, as
well as other agricultural related expert systems. These systems
are in different states of deployment, some working in the field,
others still in research states.
Probably because of the tight relationship between government funding,
academia and commercial application, CLAES has had the ability to
develop their own set of specialized tools for agricultural expert
systems.
These tools were developed to support the KADS
development methodology for expert systems. KADS is the result of
an a European Esprit-II research project that provides a framework
for thinking about and implementing knowledge-based solutions.
The tools illustrate the wide range of options available for building
tools. Their primary expert system shell is KROL, A Knowledge Representation
Object Language, that was built on top of the logic programming
language, Prolog.
They have a case base reasoning (CBR) tool written using a relatively
new high order language, Mozart,
and they have KSR, a Knowledge Sharing and Reuse tool, implemented
in C++. (See expert system links below to access post script documentation
on KROL and KSR.)
The choices of tools for building tools makes sense. Prolog and
Mozart are both higher level languages with abstractions that make
it easy to model different types of knowledge representations and
the reasoning engines that deal with that knowledge. They are good
tools for building expert system and case-based tools.
Their KSR system is more of a library and editing utility, something
that fits well within the more conventional programming capabilities
of C++.
Thus we see in CLAES the two aspects of AI: the development of
virtual machines for a particular task; and the application of those
virtual machines to a particular problem domain.
Organizationally, the Egyptian Ministry of Agriculture has leveraged
CLAES's expertise and tools for a dozen or so applications. Given
the tremendous potential for spreading agricultural knowledge using
expert systems, the investment in team and tool building has paid
off for them.
Request Line
A few readers asked about connectionism and neural nets. I've included
some links on these topics below and will hopefully cover the topics
more in later newsletters.
Another reader was interested in high performance workflow expert
systems in network applications. As always, there are two issues,
the tool and using the tool. For this type of application a tool
is needed that can represent the workflow knowledge, and meet the
performance constraints of the application.
In this case I see three tool choices based on the performance
constraints: 1) pure compiled Prolog rules (as opposed to something
layered on top of Prolog); 2) a Rete algorithm-based production
system (efficient rule indexing); or 3) a custom knowledge representation
and reasoning system written in C++ and tailored to the application.
Given the need for a user-friendly front-end for knowledge engineering,
a hybrid approach probably makes the most sense. A front-end designed
for expressive, easily-maintained knowledge development and maintenance
could compile into a back end form suitable for high performance
execution.
For example, user friendly rules could be compiled to either pure
Prolog or CLIPS
(Rete network production rules) rules.
One commercial site I have worked with provides their users with
a spread sheet for expressing pricing and business rules for the
mortgage loan industry. The spread sheet rules are then translated,
based on application area, to either Prolog or JESS
(CLIPS in Java).
What decides whether Prolog or JESS is used? Prolog is used for
the more formally precise rules, such as pricing rules. JESS is
used for more subjective business rules.
I welcome any thoughts or experiences from readers on this application.
Links
The Best of AI Expert
Each month selected articles from AI Expert are republished on
the DDJ AI Expert Web site. Here are some related to this month's
issues.
In Practice - AI at Amex [Jan 93, pg 39]
-- Harvey P. Newquist III's study of Amex's use of AI, emphasizing
the business mechanisms put in place to ensure a successful program.
In Practice - American Express 2 [Feb 93,
pg 59] -- Part two of the above article.
The Practical Applications of Prolog [Apr
93, pg 25] -- Al Roth, who was at the time the head of a
Prolog advocacy group, provided this summary of Prolog applications.
The Rete Matching Algorithm [Dec 92, pg 24]
-- Bruce Schneier explains the Rete algorithm and the hows and whys
of its importance in high-performance expert systems.
General AI
Cognitive Systems
at Pacific Northwest National Laboratory -- This Department
of Energy multiprogram national laboratory does work in AI and provides
an excellent site covering many branches of AI. When I first found
this site, it had long lists of commercial applications in each
area, but as I write this, most of those pages are under construction,
although commercial neural networks were alive and well. Oh well,
here's the link, keep it for a later date.
Artificial Life
Zen
and the Art of Creating Life -- There are a number of summaries
of Tom Ray's work, but this one from his earlier days is one of
the best.
Tierra
Home -- The home page for the Tierra project, with many associated
links.
Aesthetically
Evolved Virtual Pets -- If you're tired of looking at code and
want to see some neat pictures and movies even, this is an article
on work using genetic algorithms to steer evolution of three-dimensional
creatures moving is a simulated physical world. The creatures swim
and walk in imaginative ways.
Knowledge Base Systems
KADS --
The European Esprit II research projects included one whose goal
was to move to the next generation of sophistication of expert system
development by providing a taxonomy and methodology for expert systems.
KADS is the result of that work.
Knowledge
Representation Object Language KROL -- An expert system tool
from CLAES built on top of Prolog that supports the KADS methodology
for developing expert systems. This link leads to a download for
a postscript document.
Knowledge Sharing
and Reuse (KSR) -- A system designed to allow reuse of "chunks"
of knowledge, again from CLAES. This link leads to a download for
a postscript document.
CLIPS
-- C Language Integrated Production System is, as the name implies,
a fast C implementation of the Rete algorithm for production rule
systems. It is a very popular tool for many expert system applications.
JESS -- Java
Expert System Shell is, as the name hints at, CLIPS in Java.
Logic Programming
Prolog
course -- A good Prolog introduction from the Department of
Computational Linguistics, University of the Saarland, Denmark,
in the center of the Scandinavian hotbed of Prolog implementations.
There are many free and commercial implementations of Prolog.
Mozart -- A relatively
new language that is designed to support constraint and concurrent
programming. It supports logic programming features as well, but
in a more general manner. Mozart is freely available for both academic
and commercial use.
Connectionism
History
of Connectionism -- This "brief" history by David
Medler provides an excellent background into neural networks.
Tutorial
On Neural Nets -- Dr. Kevin Gurney of the University of Sheffield
provides an excellent set of notes on neural nets. A more complete
version is available in book form, as explained on the Web site.
Philosophy
Kurzweil's
Turing Fallacy -- Tom Ray's critique of Kurzweil's "The
Age of Spiritual Machines." You don't need to have read the
book to enjoy the critique.
|