| Intelligent Systems And Their Societies | Walter Fritz |
An artificial Brain for a Humanoid Robot
Introduction
To build a humanoid robot brain, it looks to me, that two
strategies are important:
Here, a possible first step is explained, the General Learner 3..
The basic idea of this program is that it should
have the capacity to learn anything, like a very young
child. It is amazing, how much a child learns during the
first years of life. This shows that already at the start of
life, it has the capability to learn how to move and
coordinate limbs, to distinguish faces, to learn some
words and to speak them.
This shows the need for early learning,
teaching by a "mother" and gaining experience by playing
with blocks, balls and other toys. These games are
important, they teach how the environment functions, for
instance, what happens when you push a wooden block or a ball.
The value of playing is much underestimated generally.
As a second stage of learning, there is a need for a preschool for these programs. This would be followed by school and a trade or university.
For a robot brain, the types of senses and actuators
that it has, are very important. Having just text input and
output is not enough. The "concepts" (symbols, ideas) it
uses have to be grounded in sensations. Without vision or
pictures on a computer screen, it cannot understand
distance, speed, shape, volume and objects because it
cannot perceive them; it lacks the required senses. It can
only create concepts based on sense information it
receives. Just using a word, such as "distance", in a sentence
creates a concept for the word, but not a concept for the
amount of pixels between two perceived objects.
Similarly without hearing, it can not understand
loudness and pitch. Without limbs and their
corresponding senses, it cannot understand the concepts
of force, weight and mass. "Understanding" here means
knowing how to respond to a concept and how to use a
concept. It looks to me that a robot brain program has to be a
complete intelligent system to understand and then use
correctly the concepts we human beings use. The author defines a
complete "intelligent system"
as a system that learns during
all of its existence; it learns for each
"situation"
, which
action permits it to reach its objectives, its goals.
If you are interested in some thoughts about
"patterns" and their use in brains, have a look at
Here
If you are interested in how the program developed from previous versions, have a look at the History of the Program
The Program
The General Learner 3 is more biologically
inspired than by narrow artificial intelligence. The
program is applicable to many fields, to many tasks, it is
quite general. To explain it, lets use the famous black box.
There are sense inputs into the black box and actor
outputs. All inputs from the senses are coded as concepts,
named by a number. The set of concepts that enter
together, at a given time, represent the present situation
that exists outside the black box. At first, the black box
cannot know what these concepts represent. But it can
learn what output concepts are adequate in a given
situation. These it sends out.
The senses create the input "concepts".
At first, the
concept contains only data from the senses, for instance
the letters of a word, and the shape, colour, size and position of
something seen. Later more data is added to the concept,
such as connections to other concepts and rules.
Also the
output is one or several concepts. As text output an input
concept is used. In the version of the program that has a
robot body, a movement concept contains the number of a
limb angle encoder, the objective angle and the desired
speed.
The connection between input concepts and output
concepts are the
"rules".
Rules are sometimes called
"productions" or "procedures" by other researchers. They
contain the input concepts and the corresponding output
concepts. The black box learns these rules. Eventually,
when the present situation corresponds to a learned rule,
the black box sends out the output concepts. These
concepts define a situation. It is the situation that is
wanted, the objective. There is an interior rule that takes
these concepts and performs the required action.
The reason for working with concepts and rules is that
they are data, not program functions, and therefore the
program can create and change them while it runs.
The General Learner 3 is a 56 K computer program,
written in the C language. It runs on a Macintosh with a Mac OS 9 System. The version for a PC with Windows XP is still incomplete. This code supports the concepts and rules. These in
turn, perform all the learning and activity. There are
several different types of concepts, such as "text",
"vision", "abstract", "combined" and "action". But all
concepts have the same C language structure. A concept
has a structure member (a branch) for type, for contents,
for related concrete or abstract concepts, for related part
or combined concepts, and in which rule it is used.
A rule has a structure, with members for its type, the
concepts of the situation (Sit1) to which it is applicable,
the value of each of these concepts, an intermediate
situation if it is a combined rule (or an elemental action, if
it is an elemental rule) and the resulting situation (FutSit).
All existing concepts and rules are stored in memory.
Also there is a chronological memory that stores the
sequence in which exterior rules are used.
There are "external" and "internal" concepts, situations
and rules. We call them "external" when they relate to the
external environment. We call them "internal" when they
relate to situations (conditions) inside the brain.
We use internal rules because we expect that, in a future
version, also internal rules will be learned by building
them up from elementary rules. These elementary rules
then would activate C language functions.
All concepts representing objects of the environment are
learned. Also all rules working with these concepts are
learned. At present internal rules and concepts are created
during the initialization of the program, they are not
learned.
The program has two modes of operation. The "awake"
mode when it interacts with a person and the "asleep"
mode when it is externally inactive but internally active.
We use this asleep mode, because it is very annoying to
the person operating the computer, if the computer
continually stops responding, because it is learning
something. The person usually wants an immediate
response. So now the person can indicate by the menu,
when it is time to sleep and later, when it is time to wake
up again.
In the asleep mode the program reviews its memory of
rules, created by experience, and, based on them, creates
new rules. These new rules are more general and therefore
applicable to many similar situations. In the sleep mode, the brain is active without exterior stimuli.
At the start, the program reads the stored memory (or creates a new one) and creates interior rules and interior concepts. Then it falls into the awake mode.
See the details of the Awake Mode
Here see details of the Asleep Mode
Noteworthy Features
Once written, we have tested the program
See the Tests
Future Work
The present program is a first step towards a human level robot brain. As the next step, a sound sense has to be added
and also a body with limbs. With these additions, the
program can experiment with the environment, making
random actions and observing the changing environment.
Then it could store these experiences as rules.
At present, a limited amount of rules that look for
patterns are installed in the sleep mode. In the future all
possible types of patterns between rules should be defined
and rules to detect them included, to make sure that any possible pattern can be learned.
Internal rules are, at present, created at the start of the
program. In the future they should be learned, just as
external rules are. Both internal and external rules are
activated by the present (internal or external) situation.
This situation is the information needed, so the rule can
act. In both cases the information is expressed with
concepts. One way of learning an internal rule is creating
it by combining, by chance, a number of pre-existing
elementary rules. If the resulting rule is useful it is kept. If
not, it is cancelled.
When it has learned quite a few rules, the capability to
disconnect the internal situation from the environment
and also disconnect action commands from the limbs,
could be added. This gives it the possibility to produce
random representations of situations, and try rules on
them. From a series of sequential rules a combined rule
would be created. This is equivalent to imagining and
making plans in human beings.
Another, very important, next step could be to add the
capacity to copy actions it sees in its environment.
When all these capabilities are reached, it should
become obvious what next capabilities have to be added.
Conclusion
Here we have shown one way to eventuallly get to a human level
robot brain program. We considered programming every
capability in detail and, as another alternative, having the
program learn every capability. It appeared that learning
is faster and less costly. So what we need is a program
that can learn everything.
This program should be as simple as possible, preferably
as simple as the many interconnected neurons in the
human brain. We have chosen rules that have an input and
an output. Both input and output are represented by
concepts. But there is a difference, a rule does the work of
many neurons. Theses differences are to be expected. Birds flap
their wings, but airplanes have fixed wings and jet
engines. The best artificial way is not always identical
with the best biological way.
The General Learner 3 shows some capabilities that are
needed in a final human level robot brain program. It can learn
from experience, it can abstract and generalize. It can get
the meaning of a word, what it represents. For instance it
can learn the quantity involved; and in a previous version
of the program, working with drawings on a computer
screen, it leaned what vertical and horizontal means, and
used this meaning to rotate a geometrical figure. When we
use a language in teaching the General Learner 3, it learns
in this language. Any language that we can enter using
the keyboard, can be learned. At present its understanding
of language is quite rudimentary. In an input sentence it
cannot understand indirection, negation and conditions.
The General Learner 3 program shows that learning from
sense input to limb output is possible. A person learns
many "mental" activities, such as higher mathematics first
with pencil and paper (physical) and only later can they do them in
the mind only (mental).
It appears that " mental" activities, such as " thinking"
are not very different from what the program does now.
A future version of the General Leaner should be able
to do this also. A step in this direction is the use of rules
to direct the activity of the brain, the use of interior rules.
In the Anstey version of the program, at some steps of the
processing of information, a number of rules are
applicable to the same present interior situation. Here the
program tries out several interior rules until it finds a rule
that gives a result.
It is important to remember that the diversity of what can
be learned is limited by the existing senses and actuators.
In short the General Learner 3 is a start. On the other hand much is still to be done. In the section on "Future Work" we show what is still missing. Beside the known inabilities, there must be many more, at present unknown. At each moment of its development, only tests can show what capability is missing and what changes in the program are therefore required. Only while building and testing the program can we improve its capabilities and also its architecture.
If you liked this page, please do me a favor: Tell your friends about it.
The author appreciates comments and suggestions.
For continuous reading, like a book - continue
Jump to the
E-Book Contents /
Robby, A Household Robot
A.I. The authors AI Programs /
top of this document /
Copyright © New Horizons Press