Can functional neurons be replicated in a computer simulation? How about in real life in different forms? What are the implications, if this is possible, for AI?
NOTE: This post was originally by another user
Can functional neurons be replicated in a computer simulation? How about in real life in different forms? What are the implications, if this is possible, for AI?
NOTE: This post was originally by another user
So who wants to tell Chat-GPT that it is impossible for it to exist?
Just kidding, but I wanted to joke about this a bit as this is the approach that the modern wave of AI technologies all use. So this is obviously possible and anyone following any of the recent AI news should know this. Well at least if they read more in-depth articles than just clickbait that doesn’t mention any of the technical details.
Here’s the Wikipedia page on neural network simulations:
there’s also the Artificial Life Engine (ALiEn), which has functional neurons that are individual cells, but they are 2D and can only interact with their neighbor cells.
Do you have a link to it?
Just how CPU-intensive is a neural network?
depends. It could be simple enough to run on a raspberry pi zero, or complicated enough to need the Frontier supercomputer’s entire resources.
All of the best AI neural networks require GPU computing power and a bunch of GPU RAM to run effectively. Only really simple neural networks can run on a CPU.
So to be clear this absolutely could not be implemented into the game for 1 simple reason:
CPU intensive.( You could actually do some neural network training on a CPU but even a reasonably fast CPU (3Ghz) will take a lot of time to train a three layers network with 10000 neuron each layer I have ruined a demo with 3 layers (10000,10000,600) and it took around 13s to do a pack of 1000 training token which is very little compared to it’s size.
But a reasonable number of neuron around 100 hundred structured like 10 for sensory input 20 for memory and 20 for input and some 50 could be for processing or cyclic work (work each month or each day) could achieve a good complexity handling while still be stimulated frequently like 10 or so should be manageable for a decent CPU. however it should be noted that the model of 100 is not actually a learning model as the neurons will learn through a an evolutionary process rather than simple back propagation technic ( this looks a little bit like real life however a truly learning will need 1 of two options:
1- the same principal just adding more neuron and unlocking a type of neuron that could change the weight between other neurons: very costy
2- a normal Neuron network ( uses a back propagation technic) equipped with an algorithm that judge the organism Action and tell the neural network how to adjust it’s weight( loss function)
Are we sure we need to simulate neurons to have the creatures feel “realistic”?
No, you can make an algorithm that mimic real behavior, and to make a real stimulation is costy beyond belief, so this the best it could get however a good algorithm could make for a very good approximation, I mean what evolution make through hundred of yours could be written in some lines of code, like a a predator is very big pressure then we could make the spiecy have a very high alterness to colors or the patterns of that predators effectively stimulating thousands of years of evolution
There is only so much wiggle room when you consider that those limited-in-count neurons will need to work on the strangest creatures to evolve.
well, depending on what you really wish to see we might as well not use neurons, however if you want a basic calculation then here it comes for you:
Let’s say you’re creatures have N sensory inputs and have M possible output and have 1 layer of internal neurons with width equal to (N+M)/2 (the bigger the animal the bigger it’s brain or something like this?)
So the total calculations will be of complexity O( M^2 + N^2) so you will want M and N to be reasonably little (less or equal to a 1000(preferably)and no more then 5000 no matter what)
I think with n=1000 and m=1000 we could stimulate 10 at max ,
However, real game situation, m will be around 50 at most 100 and the input might around 300 at most 500
However the internal neurons will be up to ( how much intelligent our spiecy is) but we could cupped at 1000 so the final calculations (worst case scenario):
500X1000+1000X100= 6*10^5 operation, well I don’t know how old PC’s CPU performance are but a reasonable assumption would be 1 GHz at least:
So we could technically speaking stimulate 1666 creatures in a second but the problem always remain with the frame rate (you don’t want to wait 1 s second to just move a little bit) so the question remains about the stimulation frequency
If we are aiming at 60 fps being the “regular framerate”, we could afford simulating some 27 creatures, going off your results.
Well I think your calculations assume that each stimulation will happen in a frame but we should match the gamer pace I mean there is no human capable of reacting in 1/60s we might as well update it to be once every 0.1 second which will lead as to 6X27=162 creatures
if we say that the most that could be shown in 1 screen is 50 creature, then we will have ample of time for the learning process and for the loss function to be calculated.
Remember that there are other processes going on other than creature brains working in the game at a moment.
Well if you want a realistic thing then , I have calculated with 500 input neurons , but I think all the variables in the game then it might be at best 200(this obvious an over estimation I mean we have only lol ke 6 or 7 compounds to keep track of as well as 3 atmospheric variables and light,temperature, pressure and we will add the running metabolism operations and the atp_level then we will have maybe 30 variable if we add 170 for the run variables ( other organisms and environmental hazard and resources) I think 200 is still an overestimation more over the output neurons where calculated to be in 100 but if we consider the possibility outputs then maybe 4 for movements and 6 for special operations like sprinting or engulfing and that’s it so it become 10 or at max 20 and this will significant enhance our ability to stimulate them
Right, but how will these networks will be generated/adjusted? Making autoevo do that will surely highly extend the duration of it’s calculations…
You want how the all thing will happen then I don’t know the auto-evo is the hardest part other then that I think 20. To 30 organism could be stimulated at once with relative ease, the auto- evo part is more like a correction to the loss function , in real life even the loss function is a neuron network ( I mean even when you feel pain or pleasure you still using your neurons) so I thought of the same Idea maybe we could make a miniature neuron network for this but this will be updated during the auto-evo it’s size should be N inputs and M outputs so it will run significantly faster then the main Neuron network ( if the main one takes 1s this will take only 0.01s for comparations) and it will stimulate dopamine and pain for the creatures
So you say every NN should be duplicated for the autoevo process?
I don’t understand your question but I’ll clarify something any change to the main Neuron network during the run with will not carry over to the auto-evo ( this is the things that are learnt by the creature during it’s life time) but each spiesy have a starting NN configuration that could be changed during the Auto-evo, so each spiesy will have 2 NN models but each of the stimulated creatures will have 2 NN which will work during the run