How it works
Hardware (old)
Hardware (NEW)
Old pages

RAICA - How it works

In RAICA everything that happens is stored in a raw form, without pre-interpretation of the AI. These experiences are used repeatedly in a learning process whose output is particularly the modification and subjoining of abstract states being recognised by the AI.

If a movement sometimes leads to the desired result, and sometimes does not, the AI will try to define two new abstract states. One of which shall catch all entry situations, where this movement seems to be successfully applicable. While the other new abstract state shall cover all entry situations where this movement is to be discouraged from.

To achieve this, the AI records precisely, at which time each action (=part of a proposal) was executed, and if in this particular run the desired state was reached or not. Based on this data the AI can provide a list of experiences with a good outcome and a list of experiences with a bad outcome for each proposal. These lists are the input for a so-called supervised learning, where for each proposal it will be evaluated, what it is, that divides the entry situations of the good experiences from the entry situations of the bad experiences.

Such a new aggregation of situations is coded by a new state indicator (SIN) - as all other abstract situations are - and is added to the state indicator net (SINNet). Additionally this new SIN will be registered as the new Entry-SIN in the respective proposal.

If a proposal fails, it is not because the action was wrong, but because the situation where this proposal was chosen (the entry SIN) was wrong.

Architecture overview:


Abbreviations and terminology:
SIN     State Indicator
ESIN    Entry State Indicator
TSIN    Target State Indicator
CSIN    Corridor State Indicator

Complex Action:   List of subgoals (to be executed one by one)
Primitive Action: List of servo movements (to be executed all at once)

Wenn ein neuer Target-State als zu erreichendes Ziel vorgegeben wird, so wird es sich dabei selten um eine Anweisung handeln, die direkt als Gelenk-Winkel (also als Servo-Positionen) gesehen werden kann. Es muss also nach einem Proposal gesucht werden, wie dieses Target-State erreicht werden kann. Das wird vor allem auch von der aktuellen Situation abhängen, die sich durch eine Menge von zur Zeit aktiven State-Indikatoren beschreibt.

Der Proposal-Chooser wählt also ein geeignet erscheinendes Proposal aus, welches der Action-Executer ausführt. Dabei legt der Action-Executer eine neue Experience für dieses Proposal an. Die in dem Proposal genannte Action ist möglicherweise keine Primitive Action (= Gelenk-Winkel-Angabe = Servo-Positionen), sondern eine Complex Action, also ein oder mehrere der Reihe nach zu erreichende Target-States.

Um dieses zu erreichen muss der Action-Executer erneut den Proposal-Chooser befragen, und die Suche nach einer geeigneten Aktion geht in die nächste Runde. Bis dann wirklich eine Primitive Action, also eine direkte Anweisung an die Servos, gefunden ist, wird es eine Vielzahl von begonnenen Experiences geben, für immer kleiner gefasste Unteraufgaben.

Während die Ausführung von Complex Actions optimaler Weise in Null-Zeit erfolgt, muss den Primitive Actions Zeit eingeräumt werden, denn der Roboter kann (und soll) sich ja nicht unendlich schnell bewegen, und es braucht seine Zeit, bis eine Aktion eine spürbare Reaktion der Umwelt hervorruft. Während nun also die Primitive Actions ausgeführt werden, wird ständig (optimaler Weise mit jeder Verfügbarkeit neuer Sensordaten) geprüft, ob die grundlegenden Rahmenbedingungen, für die die gerade in Ausführung befindlichen Proposals gedacht waren, überhaupt noch vorliegen. Diese sind in den Corridor-SINs beschrieben, welche zu jedem Proposal dazu gehören.

A real novum of this architecture is that the experiences do not refer to any abstract states directly, but to points in time (timepoints) in the timelines. These timepoints together with a surrounding snippet of the timeline, build a "pseudo markovian" primitive state. With this primitive state the abstract states can be reproduced.

=> You can imagine a timeline as an old-fashioned magnetic music tape, and the primitive state as the audio head. Whenever a timeline is passed along the "audio head", the happenings in the timeline are experienced again by the AI - like dreaming.

But as the SINNet may have changed in the meantime, the AI might see the happenings in a different light now, maybe more mature.

So far for today, 12. April 2012, about the Roboshock/RAICA architecture. A follow up will come in the next days, weeks or month. -- stay tuned! --

 (c) Copyright 2012-2016 Thomas Schütt