Intelligent Systems And Their Societies Walter Fritz

 

español            

Robot Brain

An artificial Brain for a Humanoid Robot

Abstract
The brain for a humanoid robot should have a general intelligence. As such it is an example of an "Artificial General Intelligence" program.
Also it should learn how to react to its environment. rather than have its reactions programmed. It should learn, step by step, like a human child does. To start in this direction, a simple program, the General Learner 3, has been built. This program learns and works with "concepts" and "rules". Concepts represent sensations and actions. Rules indicate what to do when the program receives a certain set of sensations. This is somewhat similar to what in biology is called stimulus and response. The General Learner 3 works in two modes, interacting with a person and searching for patterns in its memory.

 

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 /


Last Edited 12 Aug. 2010 / Walter Fritz
Copyright © New Horizons Press