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.
PERCEPTION
The sensory modality module performs the function of perception. The type of perception is not specified in the model. It could be vision, or auditory, or text, or several senses combined. In order to keep the first implementation simple, as a mere proof of concept, it would be advantageous to select a single well understood sense. Some very good work has been done on the early stages of vision and auditory but not complete enough for our purposes, so I would suggest a simple data stream from an artificial environment such as a chess game. The single box SM1, on the drawing, represents the whole enchilada, as you say, including low level filters, smoothing functions, mid level pattern recognition, and high level object, spatial, temporal, movement, and intersection recognition. It receives raw sensory data, type dependent on sense, performs functions, and outputs high level abstractions. For example: a camera aimed at a chess board sends a picture every five seconds to the sensory modality, the sensory modality outputs a data stream concisely indicating that the white queen has been moved from the E4 square to the E7 square displacing the black pawn that was there. In a real implementation I would not expect to go to the trouble of writing a complete vision sensory modality module in order to test the system's learning and self improvement capabilities. I would probably just create some sort of text interface. But in a later more robust system placed in the real world environment with a complex goal, I would expect multiple senses completely implemented.
KNOWLEDGE BASE
In the drawing this is represented by the RS1 module. I envision this as a record of all sensory memory organized by the physical and temporal dimensions of the sense data originating environment annotated with all learned declarative, procedural, and pattern definition data. To me this looks like a static simulation. Feeding back pattern definition data to the SM1 is certainly necessary.
LEARNING
There is certainly a lot of good work done on machine learning and beyond knowing that it is out there and available when we need it, I haven't investigated it in great detail. Rich structural networks will be part of the design. An experienced software engineer, which I am not, would be necessary to lead this project team.
UNDERSTANDING
The function of recognizing causal relationships is performed in LSA1. The function of using these causal relationships to predict what behaviors have the best chance of increasing satisfaction of the goal is performed in the PSA1 module.
GOAL
The goal is an external input to the system and beyond it's control to modify.
MOTIVATION
The motivation is implicit in the modules. They run. They do what they do. A complicated conscious positive/negative reinforcement system is not attempted here.
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.
The sensory modality module (SM1) accepts raw sense data and using successive levels of analysis including smoothing filters, feature detectors, pattern recognition nets and concept identification functions creates high level abstractions that are passed to the reality simulation module (RS1). The sensory modality module performs the function of seeing.
The reality simulation module (RS1) accepts abstractions from the sensory modality module (SM1) and incorporates them into a database of past sensory abstractions to create a time and space dimensional simulation of reality. The module also accepts data from the learning simulation analysis module (LSA1) in the form of declarative, procedural and pattern definitions and annotates the simulation database storing all learned data. It also responds to requests for data from the learning simulation analysis module (LSA1) and the prediction simulation analysis module (PSA1). Requests for data arrows are not shown on the drawing. The reality simulation module (RS1) performs the function of knowing.
The learning simulation module (LSA1) requests and accepts data from the reality simulation module (RS1) and applies various learning and analysis and pattern recognition algorithms to produce declarative, procedural and pattern definition data which it passes back to the reality simulation module (RS1) for inclusion into the database. It also performs the function of ascertaining the current degree of satisfaction of the goal and passes this data back to the reality simulation module (RS1). This module also accepts requests from the prediction simulation analysis module (PSA1) to focus learning efforts on information the prediction module (PSA1) thinks would be useful. This isn't the only determinant of learning objectives but is incorporated into the heuristic along with relatedness to the goal, ease of learning, general causal scope and pattern fulfillment. The learning simulation analysis module (LSA1) performs the function of learning.
The prediction simulation analysis module (PSA1) requests and accepts data from the reality simulation module (RS1) including goal satisfaction data and all other types of data. It performs various heuristics and algorithmic and abstracted simulation analysis to discover behaviors that will result in future improvements to goal satisfaction. Causality and causal relationships are central to this module. The prediction simulation analysis module (PSA1) performs the function of understanding.
The code modality module (CM2) accepts the program code and databases of program 1 in the case of CM2 and program 2 in the case of CM3 and performs the standard modality functions of producing abstractions for use by a simulation database just as the sensory modality (SM1) in program 1 produces the abstractions for the reality simulation module (RS1). The only difference being it's algorithms and heuristics are optimized for the different type of input data. The code modality (CM2) sees code as a high level abstraction the way we see pixels on a screen as scenery, objects, foreground and background, depth and movement.
The code simulation module (CS2) accepts the abstractions from the code modality module (CM2) and incorporates them into an abstracted simulation that shows the current internal behavior of the program plus the past history of state change, along with descriptive generalizations of the programming environment similar to the way the reality simulation module (RS1) describes the real world of program 1.
The learning simulation analysis module (LSA2) in program 2 functions similarly to the LSA1 module except that its heuristics and algorithms are optimized for a code reality.
The front end optimization simulation analysis module (FEOSA2) requests and accepts data from the code simulation module (CS2) regarding the operation of the front end of program 1 (the shaded modules on the drawing), specifically SM1, RS1 and LSA1. Its' function is to make changes to SM1, RS1 and LSA1 which improve accuracy and efficiency of creating and maintaining the reality simulation.
The back end optimization simulation analysis module (BEOSA2) requests and accepts data from the code simulation module (CS2) regarding the operation of the back end of program 1 (non-shaded module), specifically PSA1.
FEOA2 modifies SM1, RS1 and LS1.
BEOSA2 modifies PSA1.
FEOSA3 modifies CM2, CS2, LSA2, FEOSA2, CM3, CS3, LSA3, and FEOSA3.
BEOSA3 modifies BEOSA2 and BEOSA3.
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.