Translate

Thursday, 18 February 2016

YouTube Link

Catch more videos here:

https://www.youtube.com/channel/UCPyWlvBY7Lw2c8NuRhsumjw
Or

Sunday, 14 June 2015

Multi-Environment Simulation

This video aims to explain the way creatures can live within my system in different environments. 

From this simulation the data was collected to create the following conclusions:  Here

Sunday, 25 January 2015

New video

Aims to show what factors effect how the system changes. 


Thursday, 17 July 2014

Experiment 1

Natural Selection Neural Network Simulation

My Electronic Environment Containing Electronic Life, Created by Paul Matthew Boxwell


Overview of the project

Electronic life can be just as varied, amazing and intelligent as real life. All it needs is an environment to live in and rules to live by. I aimed here to create an electronic environment with rules similar to that found in the microscopic world. My environment is two dimensional and the creatures that can exist in it abide by consuming energy that is needed for movement and reproduction. They reproduce through mitosis; all the offspring are genetically identical to the parent except for rare mutations. These mutations will lead them to have small differences in their behaviour from that of their parents. These differences may be improve or hamper the chance of survival for that creature.


Experiment 1   (Program 1.5)

Aim

I hope to recreate the biological phenomenons that lead Darwin to come up with his theory of evolution. When visiting the Galapagos Islands in 1835, Darwin observed how the finches had specialized into a variety of niches. They had evolved from a single origin species into a variety of species; each with a particular habitat or food source that they were adapted for.
I will create 12 environments at the start of my experiment, the rules of survival are the same in all, however 6 environments will have a small area, and 6 will be unlimited in size. I hope that the difference between the environment types, although small, will be enough that the initial species will split into two clear types; one specialised for each environment.
I shall record the current average generation in each environment. The ‘generation’ is the number of genetic changes (or evolutionary steps) since the original species. The original species would therefore be generation zero. By plotting the average generation of the 6 limited environment and the 6 unlimited I hope to see a clear difference between the animals living in the two different environment types.

Testing

I quickly edited the original program to accommodate the data collection for this experiment. From a provisional experiment I knew I wanted to collect the average gen of all 12 environments at a regular interval of a few minutes. The final program collects the data at 1 minute intervals.
I have run the simulation for 3.5 hours, and then a further 2.5 hours each time displaying the data in the graphs bellow.

Time 0:00 to 3:30
 Time 3:30 to 6:00



Conclusion

You can see in the first graph that for the first hour and a half of the simulation the creatures where ‘similar’ in both of the environment types. They evolved through around 140 genetic steps. By generation 150 they had split into two types, each with a clear preference for one environment. From then on the gap between them has grown. The species that populates the unlimited environments has continued to change but at a slower pace than the species that populates the limited environment. Occasionally, an ‘unlimited’ creature has populated a baron limited environment, but when a ‘limited’ creature is reintroduced, they tend to quickly take over the environment again. There is no evidence to suggest this has happen the other way around, with a ‘limited’ creature populating an unlimited environment. I think this is because the creatures can only populate an environment they are not evolved for, if there are no other competitors. There is a chance that all the ‘limited’ creatures in a limited environment can be killed off when they hit the edge, this temporarily removes the competitors and can allow the ‘unlimited’ creatures a short reign before they are overrun again by the better-adapted-to-that-environment limited creatures.
The character traits that have evolved in the creatures are obvious when viewed. Here are my observations:

Unlimited

The ‘unlimited’ creatures are fast; they loop wide for many passes at the food in the hope of getting their first. This way of life has lead to a fast pace of life, the creatures live for short periods, use their energy quickly and also breed often. This made me think that they would also evolve quickly, changing through the generation at a rapid pace like their life style. However the evidence has shown they in fact have a slower rate of evolution than the ‘limited’ type. Their population tends to be between 50 and 100 per environment.

Limited

The ‘limited’ creatures are timid, they will hold back till they think they have a chance, then race forwards to try to get to the food first. Their slower pace of moment when holding back, allows them to spread out, keeping their distance from their competitors/siblings this reduces chance they will bump into each other and be eaten. When charging for the food however, all aims of avoiding others disappear, and the fastest tends to get their first. Their population tends to be between 5 and 40 per environment. The fact that they have low numbers can lead to temporary loss of an environment. This can lead to the unlimited creature occupying the limited environment for a while. But once a limited creature is reintroduced they tend to be successful in retaking the environment by not hitting the edge and going for the food only when its confident it will get their first.

Thursday, 10 July 2014

Why is AI Important?

The differences between a computer and a human mind have always been clear. We have creativity and imagination; a computer does not. A computer can do hundreds of calculations a second; we can not. They have code and follow instructions; we appear to have free will. But will there always be these differences?

In many ways computers are much like a brain already. They require power to work as we require food; They have Inputs and Outputs (sensors and motors), as we have sensory and motor neurons. The main difference between how they compute these inputs into outputs could be summarized like this, brains are hugely parallel where computers are predominantly singular. Individual CPU's can only compute small numbers of instructions per clock cycle. In a brain every neuron is in effect its own processor, so there are thousands of them all working at the same time and communicating.

The development of new systems such as multiple processors will lead to computers behaving more like brains over time. the benefits of parallel computing include greater flexibility, damage resilience and abstract thinking. The Internet is an example of a system that could become very clever. Millions of CPU's all connected each with huge amours of individual inputs and output, sounds very similar to a brain!

Artificial intelligence is the branch of computer science that studies and creates 'intelligent' technology. It is an important science to develop because understanding what makes a system intelligent will answer ethical questions of the future.


Saturday, 26 April 2014

Neural Networks: The first steps

My previous attempts to create AI programs have used binary inputs and outputs. But in reality, a sensor on a robot changes it value (resistance) on a continuous analogue scale, not a digital one. My programs up until now have required fix states to make decisions, so my next program will use a range of input levels.

Neural networks model what goes on in a biological brain. The individual neurons, and their synapse connections, are replaced with nodes each connected to the others with weights.

I have created a program that can create store and compute a neural network. I have then used this with a genetic algorithm for evolution by natural selection to create this:




After developing a Model for a Neural Network, I used it within a simulation. By giving the creatures an opportunity to reproduce I have created a genetic algorithm for their ‘DNA’ will change over time and their brain will make them behave differently. Only the best adapted will make it to food first constantly and so their DNA will spread through the population. When a creature reproduces, 80% of is offspring are exact clones of the original, the other 20% have slight changes to their DNA or ‘mutations’. Some of the mutations may improve the creatures chance of survival; but most properly won’t.




Thursday, 24 April 2014

Linking DNA to AI

DNA is the blueprint for all life forms, rather like the Code for a computer program. Contained within the nucleus of every cell there are chromosomes, these are made from strings of elements and are the coded instructions for making and sustaining life. Learning about DNA will help us understand how human DNA can create the most complex known thing in the universe, our brain. With this understanding we will be a step closer to understanding how to create out own AI. Here is my understanding of DNA:

In both single and multiple celled organisms, cells have to preform curtain processes in order to keep them selves alive. Examples of these process include Active Transport, where the cell uses energy to move molecules such as glucose through the cell wall. Instructions for these necessary cell processes are coded in our DNA.

Single celled organisms eventually evolved, by chance, to become multicellular; for this to happen the DNA of the organism had to be changed. To create multicellular organisms the DNA not only has to hold the instructions for the cells processes but also contain the rather more complex instructions for how the cells should specializes and interact with others such that they could grow to become the animal.

In small multicellular organism's DNA you will find the there is code for the same cell processes that have always been essential to cells; but in addition to this you will find that there is a large amount of code that describes how the cells will change to form its body and brain.

These detailed instructions for life are what artificial intelligence programmers are trying to emulate in computer form. The key to being able to create advanced intelligent robots is, I think, dynamic programming; the ability for a system to act diffidently because of inputs that it has come across not because it was programmed to do so. Our DNA, and that of any other living organism, does not contain instructions on how we should react to every input we receive, instead our DNA was used by our cells during our development to find out what proteins to create and how to behave. From these simple instructions, because of billions of generations of trial and error, our DNA tells our forming body how to create our brain. So the code for an AI system must provide it with the ability to do basic tasks (ie: heart beat) and give it the tools to be able to develop and learn from its experiences.

I have released from this that for my AI system I must program it with the tools to learn and change according to its inputs. You can not create an AI system by hard coding an output to every input, instead, true intelligence comes from learning from pass mistakes and experiences. AI must be dynamic to be intelligent at all.