OpenCogPrime:Probabilistic Evolutionary Learning Overview
The content of this chapter originated from variety of documents written by Ben Goertzel, Moshe Looks, Cassio Pennachin, and Lucio de Souza Coelho.
Evolution is the E in SMEPH, which is one indicator of the central role that evolutionary learning processes play in the cognitive theory underlying OCP. On a SMEPH level, what evolution means is the continual creation of new structures and dynamics from the fragments of old, in a manner driven by system goals and subgoals. I.e. evolution in a SMEPH context is "novelty generation, plus differential reproduction based on fitness, where the entities being reproduced are Edges and Vertices. The idea is that new concepts, procedures and relationships are constantly forming, and these are in large part variations on or combinations of previously existing concepts/procedures/relationships, where the ones chosen for variation/intercombination tend to be the ones that have been involved in successful achievement of system goals.
This kind of evolution can occur in an intelligent system whether or not the low-level implementation layer of the system involves any explicitly evolutionary processes. For instance it's clear that the human mind/brain involves evolution in this sense on the emergent level -- we create new ideas and procedures by varying and combining ones that we've found useful in the past, and this occurs on a variety of levels of abstraction in the mind. But the extent to which human neurodynamics display directly evolutionary characteristics is subject to debate. Following Edelman, in designing OpenCog Prime we have come down on the side that believes brain dynamics are intrinsically evolutionary in nature (see Ben Goertzel's book The Evolving Mind), and that neuronal maps (networks of neuronal clusters) are the level on which differential reproduction based on fitness and evolutionary novelty-generation are best conceived to occur.
OCP is intended to display evolutionary dynamics on the derived-hypergraph level, and this is intended to be a consequence of both explicitly-evolutionary and not-explicitly-evolutionary dynamics on the CIM level. Cognitive processes such as PLN inference may lead to emergent evolutionary dynamics (as useful logical relationships are reasoned on and combined, leading to new logical relationships in an evolutionary manner); even though PLN in itself is not explicitly evolutionary in character, it becomes emergently evolutionary via its coupling with OCP's attention allocation subsystem, which gives more cognitive attention to Atoms with more importance, and hence creates an evolutionary dynamic with importance as the fitness criterion and the whole constellation of MindAgents as the novelty-generation mechanism. However there is also an "evolutionary learning" subsystem which explicitly embodies evolutionary dynamics for the learning of new patterns and procedures. This evolutionary learning subsystem naturally also contributes to the creating of evolutionary patterns on the emergent, derived-hypergraph level.
The bulk of the pages supervened over by this one deal with the explicitly-evolutionary learning subsystem of OCP, which is focused on the learning of predicates and schemata — i.e. on learning good Combo trees to put inside GroundedProcedureNodes, where good is defined in a contextually-appropriate way.
The learning of predicates and schemata is done in OCP via a number of different methods, including for example PLN inference and concept predicatization (to be discussed below). Most of these methods, however, merely extrapolate procedures directly from other procedures or concepts in the AtomSpace, in a local way — a new procedure is derived from a small number of other procedures or concepts. Intelligence also requires a method for deriving new procedures that are more "fundamentally new." This is where OCP makes recourse to explicitly evolutionary dynamics.
The basic method that OCP uses to learn procedures that appear fundamentally new from the point of view of the AtomSpace at a given point in time is "specification-based procedure learning". This involves taking a PredicateNode with a ProcedureNode input type as a specification, and searching for ProcedureNodes that fulfill this specification (in the sense of making the specification PredicateNode as true as possible). In evolutionary computing lingo, the specification predicate is a fitness function.
Searching for PredicateNodes that embody patterns in the AtomSpace as a whole is a special case of this kind of learning, where the specification PredicateNode embodies a notion of what constitutes an "interesting pattern". The quantification of interestingness is of course an interesting and nontrivial topic in itself ;-)
Finding schemata that are likely to achieve goals important to the system is also a special case of this kind of learning. In this case, the specification predicate is of the form:
F(S) = PredictiveImplicationLink (ExOutLink S) G
This measures the extent to which executing schema S is positively correlated with goal-predicate G being achieved shortly later.
But given a PredicateNode interpretable as a specification, how do we find a ProcedureNode satisfying the specification? We address this problem in OCP using an approach called Probabilistic Evolutionary Learning, specific examples of which are MOSES and Pleasure.
Estimation of Distribution Algorithms for OCP
EDA program learning as applied in OCP involves the probabilistic-inference-guided evolution of Combo trees as described in previous chapters. Currently EDA in OCP is represented by the MOSES algorithm, but extension to Pleasure is envisioned, along with various more ambitious extensions as indicated in the pages supervened by this one.
In OCP-EDA, the fitness function is a predicate that takes in a Combo tree and puts out a number in [0,1] telling how fit the Combo tree is. Thus we can portray an OCP-EDA fitness function as a PredicateNode with input type ProcedureNode and output type SimpleTruthValue. But OCP-EDA goes further than just applying the EDA idea to Combo trees, incorporating ideas such as:
- Using PLN to give OCP-EDA a memory across all the different optimization problems encountered by a OCP system during its history.
- Using OCP-EDA as an inference control scheme, to guide the amount of PLN inference applied to various conjectural solutions to a problem during the course of exploratory problem-solving.
- Designing modeling schemes that recognize 'fitness-correlated patterns' involving phenotypic as well as genotypic characteristics.