Message Boards Message Boards

Genotype, Pheontype and AI

Posted 9 years ago

Nature versus nurture, the classic question. But what does it mean for artificial intelligence (AI)?

I was just reading the latest blog from Stephen Wolfram on how to talk to AIs, and was thinking how it seems like the AIs are getting pretty close to general intelligence. The post might suggest it is further off, but recent developments in machine learning have developed quite a bit of momentum in the last few years.

On the one hand, some of the basic tools have entered Wolfram Language, enabling even beginners to use Classify. There have also been developments in the abstract theory. Which reminded me of a summer school project a couple years ago.

In the summer of 2014, Alyssa Adams came to the Wolfram Science Summer School with ideas about self reference, which is a concept important for physical systems like those in biology, as well as being a crucial ability for a general AI. There is a lot of relevant philosophy, including ideas from A New Kind of Science, like computational irreducibility and the Principle of Computational Equivalence. But what she intended to do was perform some concrete experiments.

Every project at the summer school, those that relate to NKS and those that do not, involves computer experiments, and that is probably the most important thing taught there.

In the spirit of Stephen Wolfram's blog let me explain one of Alyssa's ideas about how the phenotype can change the genotype. How behavior can update the rule.

PhenoGenCAEvolveList[rn_, fraction_, init_, t_] := 
 Module[{rule}, rule = rn; 
  NestList[CellularAutomaton[rule = If[Max[Tally[Partition[#, 3, 1, 2]]]/Length[#] > fraction,
        BitXor[rule,  2^Commonest[FromDigits[#, 2] & /@ Partition[#, 3, 1, 2]][[1]]], rule], #] &, init, t]]

The result can be an open ended complexity, which is what one expects in biology, and also in an evolving artificial intelligence.

BlockRandom[SeedRandom[30]; init = RandomInteger[1, 200]; 
 Row[{ArrayPlot[PhenoGenCAEvolveList[25, 1/5, init, 600],  ImageSize -> 200], 
ArrayPlot[PhenoGenCAEvolveList[36, 1/5, init, 600], ImageSize -> 200], 
   ArrayPlot[PhenoGenCAEvolveList[62, 1/5, init, 600], ImageSize -> 200]}]]

25,36,62

This was not surprising, but there were also other behaviors observed. Like some rules were stable in the sense that the phenotype never changed, and these tended to dominate the overall space.

BlockRandom[SeedRandom[30];  ArrayPlot[PhenoGenCAEvolveList[108, 1/5, RandomInteger[1, 200], 600]]]

108

POSTED BY: Todd Rowland
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract