For a while i am trying to make basic arduino robot, interacting with its environment . Built some versions which are doing pretty well with it’s given purposes. taking data from environment and act accordingly . However decision making process of the robot is a bit frustrating. It is pretty linear , predictable and all decisions was based on predefined rules. Now the hardware of robot version 0.5 is ready , and before make it “alive” Im looking for a solution to make more self-learning , environment-adaptive and in a level “conscious-robot” instead of full mechanical machine. Surely without loosing all for fun part or get lost in super technical details. With a small group of my friends from different background started to make little workshop about this topic recently. In this post I will try to summarize our starting point, objectives and future experiment plans.
Current methods limitation
Lets start with current decision making process’ limitation. One problem is adapting to Environment: We observe it in some instinctive machines in nature. there are some interesting experiments about wasps and their instinctive behaviors. Wasp finds a prey , paralyze it, injects his single egg on prey and put to nest. Wasps inspect its prey several times than seals it. One of Fabre’s experiments (1915) he completely remove prey from nest. Wasp check the nest finds out something missing out but still sealed the nest as if there was prey in it. He concluded his experiment as; “Instinct knows everything, in the undeviating paths marked out for it; it knows nothing, outside those paths”. (https://archive.org/stream/huntingwasps00fabr#page/210/mode/2up) (Fabre 1915: P211)
Like our robot,it does not learn, its knowledge is static (does not change) hence it is not adaptive to its environment. So if it designed nearly perfect way, robot will survive in many cases, until it confronts with situation which never taught by its designer. So it fails. In nature thanks to evolution we encounter with different kind of insects best fit to their environment. But probably not adapted to their environment.
The aim for our robot project may be, being able to adapt the environment, like super organisms ie. ants, which adapts and even reshape its surroundings for its benefit.
Creating Conscious Being
So how to create more self aware – more conscious decission making process. If our aim was merely creating and artificial intelligence to pass turing test, creating an algoritm that make audience believe they are interacting with intelligent agent might be enough. However The inner mechanism of cognition matters and just by observing outputs does not prove that we have one conscious machine.
” Wright brothers and others stopped imitating birds and started using wind tunnels and learning about aerodynamics. Aeronautical engineering texts do not define the goal of their field as making “machines that fly so exactly like pigeons that they can fool even other pigeons.”(Artificial-Intelligence-A-Modern-Approach )
Also I think it should not be mixed up with creating conscious being and creating humanlike thinking mechanism. Although our starting point naturally humanbeing, machines dont have hormones and bodies, which might makes us human. So another question to be answered; how will machine consciousness achieved.
Another approach ;
Instead of one center, which receives inputs and gives output according to predefined rules, we can try different mechanism; There will be many cores which have again predefined rules for evaluate its environment and gives output. But agent can run one action per run, Thus there will be one main core which receives all decision proposes and chose the one with highest priority. For choosing the most priority one , all cores’ demanded action should have two internal attributes, importance (importance of an action for core ) and weight(the priority between cores).
importance value will be decided according to how important this action for core itself. for instance, robots energy level is 25% and finding some lighted area for recharging solar cells is crucial. Lets say it is 0.75 importance. or in other case my battary is nearly full so importance is 0.0.
Weight value will be correlated between cores. So when one core’s weight increased the others has to decrease . The weight might be decided according to environmental situation. For instance if we have two decision cores , one of the “survival” the other one “fun”, and we have balanced environment with play -work , weights will be balanced also. But when environment becomes hostile (winter comes little light sun energy for charging batteries survival cores weight will be increased. Then summer comes little worry about charging batteries more weight for play core.
Main core will choose decision according to comparing scores of each core. Scores formula is (weight X importance) the highest scored cores decision , action is taken and executed. after each decission according to success or failure, system will re-weight all cores importance. So the system will be more and more adaptive to its environment.
I just started looking at neurol networks , I guess we will take great help from it, In further design of decision making pipeline we might take great help from it. so further reading on this topic…
In order to design cores we will take some organism. Like maslow’s pyramid but in a simplified way; Amip may have just one core for mere survival. it search for food and reproduce, Cat have same survival core plus “fun and play” core, human may have both cores plus self-actualization, Having pyramid shape is just defines the priorities however having different environmental conditions all priorities may change order. Here will come adapting to environment.
Help from Greek gods ; I believe human culture created these gods by understanding and observing itself, later its culture. In other words, More stylized, exaggerated human attributes embodied in shape of gods. One single human being carries all these gods in its consciousness in different levels, different weight and its decission making process is continues fight or harmony of these cores.
Inside we all have Apollo’s reason and logical thinking, and Dionysus’ chaos and appeal to emotion and instincts. They are not opposites or rivals, although interlaced entities in our decision making process , In our methode we will try to capture these entities. Now we will try to make the process backwards , we will try to achieve conscious being by combining these gods in a network of decision making process.
Also we might take help from jung’s archetypes, but combining all archetypes one single entitiy. But its one of later discussions topic.
where freewill stands?
with this multi-core Technic, we might achieve instinctive system adapting to its environment. But where is freewill? Is not this system is just instinctive-mechanism just plus attribute of adapting its environment. Unfortunately existence of freewill is questionable by itself. In 80s there was an experiment, finds out that the timing of conscious decisions was consistently preceded by several hundred milliseconds of background preparatory brain activity. So all decisions was already made in unconscious level ,before we decide them. It was iritating idea and many experiments have proven this theory.
However recent discoveries finds traces of conscious intervention to decision making process. Still decisions are taken in unconscious level but just in action time we have power to stop them or let it go. this paper summarizes these experiments ( http://nymag.com/scienceofus/2016/02/a-neuroscience-finding-on-free-will.html)
Adapting freewill to our mechanism, we should have one extra core, continuously observes decision making process , aweres its all cores and check ballance between them and intervene when times requires. This part not only will be source of freewill, but also self awareness part. Also this part is our only conscious level, while all others are decission making mechanism in unconscious level. Further discussion on this topic is required. Especially mental ilnesses related to identdity clashes, may be nice starting point.
In order to sumUp, we will have 4 mechanism individually evaluate situation and come togather for making decission;
1.individual cores: evaluates situation, decides according to its benefit disregarding to other cores.
2.main Core : combine all seperate cores decisions, compare them according to their weight and choose highest rated one.
3.evaluation of mechanism: Memorizes taken decisions, evaluate decisions performance by checking robots changed situation and environments feedback. Change individual cores’ weights accordingly.(positive negative reinforcement, learning with experience)
4.control mechanisms: check balance of cores, intervenes when necessary, reshape weights(freewill and self-awareness)