AERA

AI development

For the past three years, I’ve been working as an AI specialist/programmer in the AERA development team. AERA (Autocatalytic Endogenous Reflective Architecture) is a general purpose AI system under development at the Center for Analysis & Design of Intelligent Agents (CADIA) at Reykjavik University and the Icelandic Institute for Intelligent Machines in Iceland (IIIM). AERA’s codebase is written in C++ and Replicode, the latter of which is also implemented in C++. The Replicode programming language is based on principles of extensive pattern-matching and dynamic code production of short parallel programs and executable models.

Contribution

So far I’ve tested AERA on different tasks (e.g. cart-pole and push-pull) and integrated several features to AERA’s codebase, which extends the learning and simulation mechanisms of the system. Some of those features have already been merged with the code, for example see the pull requests PR1and PR2. I have also been integrating a new algorithm into AERA’s learning mechanism that allows it to hypothesize new models through similarity checking. In other words, I am extending AERA’s learning capabilities by enabling it to use analogical reasoning for generalizing its models. The related code is in my forked AERA(click here to see) on GitHub, which will be merged to the main/dev branch of AERA after completion and testing. Here is also one of my papers that describes the method I have used for analogies in AERA (the paper was published in Proceedings of Machine Learning Research).

My analogy-based learning idea

Let me explain the idea by a simple example: Assume that a robot hand h already learned that it can grab and lift a green cube c. Then, later when it sees a green sphere s he guesses that the sphere can also be grabbed and lifted in the same way. Why? Because the sphere is also green! In other words, the green color is the similarity between the sphere and the cube, and so the robot guesses that the same action in relation to both of them leads to the same result! This guess may be right or wrong, but it is worth trying! This type of reasoning is called induction via analogy, which is a way generalizing knowledge. I have implemented this analogy mechanism in AERA, which allows AERA to create new models that can explain the behavior of new things!

Here is the result of the idea’s implementation for the above simple example, shown by the AERA visualizer:

The left scene shows the list of models and their requirements AERA learns. The red circled items are the model and its requirement build via analogy. The yellow items on the right scene show how AERA uses the analogical reasoning to issue the best command which is grabbing the sphere, shown by cmd grab(s), once it is assigned to grab the sphere.

My Experience with AERA and AERA team

AERA has been under development for more than a decade and is one of the most unique systems I have ever had the privilege to work with. Throughout my involvement in various AERA projects, I have had the pleasure of collaborating with some of the brightest minds in the field. Among these exceptional individuals are Kristinn R. Thórisson (my advisor), Jeff Thompson and Leonard Eberding. Their contributions to the development and implementation of AERA have been invaluable.