A while ago I was experimenting with evolving virtual creatures using neural network + genetic algorithm, but that didnt go well (simulation speed was too slow, mainly because bad programming habbits of creatures, not neural network). I used Feedforward neural network and now I can see it isnt exactly right choice for this kind of application (creatures have no memory, etc.)
I would like to try again, start from scratch, and I would like to perform better than before. However, I dont know what neural network architecture to select.
What I need:
- Possibility of memory: Should I study more about memory cells, or is using correct NN architecture (like Reccurent NN) enough? What will be main differencies?
- Possibility of mutations: I would like to not only mutate weihts in network, but also possibility of adding weights / neurons into "black box". I plan to use genetic algorithm, so cross mutations + random mutations.
- Easy programming: I plan on not using any assets and to write my NN from ground in order to learn. I would preffer more easy neural networks than others. (While Im writing this, I realize there might not be difference)
What I dont need:
- Quick computation: I think that 90% of CPU time will be used on other things of controling my creatures, than on computing NN. (as I am terrible programmer)
- Training: I will use genetic algorithm to train, so I dont need typical training methods to train NN. I can use types of NN where training part is very CPU intense, as I will drop this part out.
I am looking at possible types of NN and I think some type of Recurrent network would be suitable, but cant really pick a winner, since I only ever worked with Feedforward type, and I will need to learn about the type you will reccomend before I start writing it. I would like to learn just the one you will suggest instead of learn pros/cons of all, since I think It would set me back for too long.
The task for is to surive. I dont have any objective aside than observing interesting patterns of behaviour that can evolve. Basically I would like to "seed" the world with some properties with creatures that can exploit those (food, temperature, danger) and such. Everything very basically modeled, in flat 2D.
Question is: What is the type of NN that you think would suit this best?