The Simulation Model. by Mike Deering (deering9@mchsi.com)



Theory of AGI Functional Approach

In the functional approach to designing AGI (Artificial General Intelligence) we first define what we think an intelligence is doing and then we try to figure out how to get our program to do that. This is the approach taken in the SIMULATION MODEL.

My very basic model of intelligence is that if you create a system with the functions of 1.perception, 2.knowledge base, 3.learning, 4.understanding, you have an intelligence. Now if you give this system a goal and the motivation to satisfy this goal through the production of behavior you have an agent. And if you give this agent a method of modifying its own reasoning algorithms, and this method results in an increase in effectiveness in goal satisfaction, you have a Seed AI. The feedback loop of the behavior going out into the environment and the change to the environment being perceived by the system, informs the system as to the effectiveness of the behavior.

The Simulation model is a general design for a recursively self improving seed AI of a non-conscious tool level AI. Simulation creation and simulation analysis are the core of the design. The term 'simulation' as it is used here consists of an abstraction of raw data into a relational database that shows the multilevel behavior of the subject of the simulation and annotation of all known generalizations related to it's elements. The database is indexed with respect to time and space. If the subject of the simulation does not have spatial characteristics such as the operation of a computer program then a metaphorical space dimension may be created indicating it's modular program flow. A simulation should be abstracted to a level of detail sufficient for analysis of all causal relationships. Levels of abstraction range from completely abstract mathematical descriptions to completely detailed reality descriptions. Simulations should be designed for optimum functionality of the simulation analysis module. Simulation analysis is the function of understanding. It comprises identification of causal relationships, deduction of declarative and procedural knowledge, sensory pattern definitions, to analogize to isomorphisms, the accurate prediction of future behavior and the creation of behaviors to maximize future compliance with a goal structure. In order to accomplish these functions the use of a variety of algorithms will be necessary, including the design and analysis of multiple hypothetical simulations in an auxiliary simulation work space, sim space. The functions of simulation design and simulation analysis are non-trivial programming tasks but the silver lining is that they don't have to be perfect the first time out in a recursively self improving model.



Functional Module Descriptions

METHOD

The Simulation Model Seed AI is designed to get around the requirement of already having artificial general intelligence before recursive self-improvement can begin, by making the self-improvement process purely mechanical. The mechanical feature should allow the model to bootstrap itself from a very limited pre-general intelligence level.

The method of self modification proposed is:

Prog1 runs and tries to generate behaviors that increase satisfaction. Using a code modality and a similar intelligent agent design as in prog1, prog2 watches the operation of prog1 and tries to generate logic changes to prog1 that will increase the effectiveness of prog1. Prog3 watches prog2 and tries to generate logic changes to prog2 that will improve the effectiveness of prog2. Since prog3 is identical to prog2, any changes mandated by prog3 for prog2 are also implemented on prog3. Hence, recursive self improvement.

Program 1 generates the behavior.

Program 2 modifies program 1.

Program 3 modifies program 2, and since program 3 is identical to program 2 the changes program 3 mandates for program 2 are also applied to program 3.

All modules run continuously in parallel using whatever data is currently available from their input modules.

The model only has the capability to modify it's reasoning algorithms not it's general program structure which limits it to tool status.

If the system is run in a limited environment it will optimize itself for that environment. If it is run in a rich complex large environment it will optimize itself for that environment.

Most effective development will result from starting out in a highly restricted and simple subset of the end objective environment and expanding the scope and complexity as the system masters the causal relationships of the subsets. Subsets should be expanded in contiguous causally related steps.

The reason the simulation analysis is separated into the learning, predicting, front end and back end is to prevent the program from wire heading, modifying itself so that it interprets it's sense data as being more in compliance with the goal than it really is.

The parts of it that effect interpretation and determination of satisfaction of goal are not modifiable by the parts that are motivated to increase goal satisfaction.

CONCLUSIONS

As to why the program only changes reasoning algorithms and not program structure, I purposely am attempting the more modest goal of tool level non-conscious non-self motivated intelligence as a more achievable starting point in seed ai.

This model is not intended to be a copy of how the human brain functions. No attempt has been make to emulate consciousness, emotions or autonomous motivation.

The non-situatedness argument that roboticists use against the AI modelers is dependent on the richness of the interactions with the environment. Even the robot only knows what messages come from its sensors. Or the charge that you can't learn to walk without legs may be true but then your legs and their functioning become part of your environment.

The model at this stage of development makes no specific definition of what reasoning algorithms are used by each module. One of the main purposes of the system is to figure out what works best where. But their is no reason to make the system start from scratch, for instance reinventing the simplex algorithm or FFTs. Human programmers should take their best guess based on their years of experience and set up the initial logic. The system should also include a vast library of all kinds of algorithms for the system to experiment. The system needs a more rational way to modify itself than pure randomness. This would include the use of allegorical isomorphisms plus a recognition of causal relationships in a high level abstracted code environment.

I wish to acknowledge the intellectual debt to Eliezer Yudkowsky for the concept of the code modality and the notion of human programmer interaction in the development phase as well as the idea to expand the environment from simple to complex. Also note that while not specifically included or excluded here, his understanding of levels of organization (sensations, concepts, thoughts, deliberation) I find particularly compelling along with his feed backward paths from the attentional logics through the sense modalities, and may be useful or necessary in any intelligent system.

Singularity Action Group website frames version.