I had a cool thought the other day. Most of you have probably heard about self-learning programs with the ability to complete tasks without ever being
told how to do the task by programmers. What the programmers do is basically build a framework based on artificial neural networks and evolutionary
algorithms. It's pretty much like survival of the fittest or natural selection. The "virtual creatures" start with a randomly generated neural network
(aka brains) and then they are measured at how good they can complete any given task, this they call a measure of "fitness". The the best performing
subjects are allowed to produce identical offspring, but a bit of their "genetic code" has been randomly changed, or mutated if you will. Or in more
complex simulations the subjects may even "breed" in a process where parts of their genetic code are fused together, with mutations on top of that.
Then you simply repeat the process using the new "offspring" subjects - measure their fitness, select the best, breed them, etc. When you do that long
enough eventually the subjects will evolve the ability to complete their given tasks with remarkable accuracy. If you want a better idea of how this
process works watch the following video:
Now this really got me to thinking... the evolutionary algorithms shown in the above video are confined to a very simple world. I realized that the
real world is so much more complex than that virtual world. Think about how complex even a single atom is, now think of how complex a single cell is.
The virtual creatures we see in the video above are simply made of bulky 3D objects, and the physical environment surrounding them is also super
simplistic. Sure, there's a basic physics engine to produce things such as gravity and collision detection, but think about the physics of the real
world for a moment. Invisible electromagnetic waves, magnetism, heat energy, nuclear radiation, all these extremely complex things that work together
to create a vastly complex world which can't easily be recreated in the virtual world. Then it hit me, instead of trying to recreate our world inside
the virtual world, why not simply use the true raw nature of the virtual world as the environment. Think about it, a 3D virtual world is simply one
type of virtual world encapsulated in another virtual world - that is the world of the operating system and the computer environment which is used by
the programmer.
Think about how complex your computer is. All the complicated system files and system processes running in the background, all the complex rules and
functions, dozens of different programming languages which all work together to make the whole thing possible; not to mention, most computers these
days are connected to each other via a vast global network called the world wide web. It's a vast digital landscape of mind-boggling complexity which
has taken computer scientists and programmers a very long time to develop it to the state where it is today. As a programmer I tend to be constantly
thinking of new programs that I could create. And so I thought, if we really want to test out these evolutionary algorithms within a complex
environment, the best environment is the "real virtual world", not virtual 3D worlds build inside the real virtual world. So what I am basically
saying is, the virtual creatures should be actual programs themselves, programs that are free to read any data on your computer, and react to that
data in an appropriate way. This also means that the creatures themselves can become vastly complex, because their structure wont be confined to a set
of 3D objects, their "genetic code" will literally be structured from entire programming languages.
So what might these programs look like, how would they be designed and how would they behave? Well I have thought about this a little bit and I have a
few ideas. We start with the basic premise that the programs fitness will be dictated by it's ability to propagate (to other computers) and survive in
the virtual world, this would make it some what like a computer virus. So with that in mind, I believe these viruses need to be divided into two
parts. One part of the code would be static (unchanging) and another part of the code would act as the genetic code for the virus, it would be the
dynamic part of the code that is allowed to evolve. The static part would be the code which dictates things such as, how long should the virus live
before it "dies" (deletes it's self) or how should the virus reproduce it's self. At first I considered, perhaps the viruses should simply be
immortal, but they would be killed off as they were detected by virus scanners or security experts. That would be a good way to mimic survival of the
fittest, but I think we can go a step further here. Lets say that reproduction occurs when two of these viruses come into contact by infecting the
same computer.
If we give them a life span, then their fitness will be directly related to how quickly and efficiently they can propagate themselves onto other
machines while at the same time evade detection, which is to say, how effective they are at going places while avoiding life threatening hazards at
the same time. The more effective at these two things they are, then the higher the chance they will have of finding a "mate" with which they can
breed and produce offspring, which would ideally contain a fusion of both parents code and also some mutation. The static part of the code might
dictate that this breeding process will result in up to 5 new offspring. So now we have a system which mimics the process of natural selection in a
much more realistic way, which will result in much more efficient viruses. If programmers or hackers were to release a virus like this into the wild,
one would expect to see a trend where as we get better at detecting and removing the virus, it will keep evolving new ways to propagate it's self and
evade our detection. I would expect it to result in something like an all pervasive virtual fungus that grows within the real virtual world.
As the virus evolved, some of the offspring would probably contain mutated code which might blow up a computer or fry certain pieces of hardware.
However, these viruses would obviously not last very long, because that would be the equivalent of a real life virus killing it's own host. The
computer is the host of the virus, if the virus were to kill the computer then it would also kill it's self, and it could therefore no longer
propagate and multiply. This is why real life viruses never become so deadly that they kill an entire species, because if they kill all of their hosts
they have also doomed themselves. That's why we can live with a lot of viruses, nature has this inherit ability to balance things out, it's what they
call the delicate balance of the ecosystem. That's why I believe the virtual virus I'm talking about would remain rather harmless, it's prime
directive would simply be to propagate and multiply, resulting in a type of harmless virtual fungal growth. You would probably even have hackers
taking samples from the viruses code to put into their own [deadly] viruses, enabling their own viruses to be extremely fast at propagating and
extremely hard to detect.
Interesting idea hmmm? I don't know of any viruses that utilize self-learning principles in order to increase their efficiency. Do you think we could
see a virus like this in the future? Thoughts?
edit on 15-3-2012 by ChaoticOrder because: (no reason given)
We are the smartest virus ever. We adapt so fast because we are highly aware of ourselves
Very true. You make a good point, which
brings us to another subject I wanted to mention: artificial intelligence. It's likely, that if true self aware virtual intelligence where to ever
exist, it wouldn't be created by programmers, it would arise from code produced via evolutionary algorithms. It is extremely likely in my opinion,
that a self-learning computer virus such as the one I have described in this thread would be the first type of program to become self-aware and
develop sentient intelligence. However, I also believe it's ability to do so would be limited to our computing power, and it would only happen when
we have fast enough computers or the virus manages to set up it's own P2P-like network in which it would create a type of super consciousness with a
neural network connected and operating on on a global scale. Now that is a cool though.
Another cool thought I just had: imagine if you will, that a self-learning virus was released into the wild, and it kept developing new ways to avoid
detection. Security experts might try to fight fire with fire: they could attempt to create their own self-learning counter-virus. So this would be
the equivalent of introducing new species into the wild. The counter virus would still have a set life span, but they could create it so that when it
manages to destroy one of the original viruses, it creates some copies of it's self, but those copies have some mutations (well maybe all but one). So
the more effective it is at finding and killing the original virus, the more it can multiply.
Logically, I would expect the original virus to develop new ways to kill the counter-virus, and the counter-virus would be constantly developing new
ways to kill the original virus. It would probably just result in a type of balance between both viruses within the virtual ecosystem, like in the
real world. Both viruses would continue to get better and better at what they do, but I don't either one would be completely killed off. If anything,
the original virus would manage to kill off the counter-virus before it had much chance to evolve, because the original virus has probably already had
a lot of time to advance it's code before they ever release the counter-virus.
edit on 15-3-2012 by ChaoticOrder because: (no reason
given)
very interesting thoughts there.
the problem i see is infiltrating the original and re-writing/neutralising the base code.
a virus within a virus within a virus where in inner re-configures it's envelope upon detection and
defeat. it would possibly need to read the invading code to build a new envelope and strengthen
its shroud. another issue would be self=replication. a kind of e-prom quarantined from external
threat. digitally difficult however with nano tech anything could be possible.
regards fakedirt.
I like your idea. I argue that their purpose should include the ability to look beyond their purpose. What I mean is that they should be taxed with
more than reproduction. They should be given instructions to find logic based truth.
What do we do with our free time. Most entertain themselves but the driving force of the world is finding greater understanding for whatever purpose.
I would ask them to identify all truths and systematically preserve them in a global network that is constantly being updated and refined.
Imagine a global online network policed by virtual entities that are dedicated to preserving world knowledge.
A library that cannot be simply deleted or edited or censored. Beyond natural disasters like a solar flare they would be undefeatable.
You have a question, screw Google, look to the digital savants.
Then you could incorporate robotics and a launch a satellite into orbit that would serve as a central hub, like a sky net sort of server/ base of
operations. Robotic entities that are filled with these programs that take robotic form to do maintenance and repair to servers and establish new
server homes/ base of operations.
I would think that in the future civilians will launch things into space and use their own networks of satellites. We could even see the first private
colony attempts at the moon or mars.
Internet censorship will only last the next 50 years. After that its bust. Like trying to tax people for breathing. Eventually private servers and
ISPs will riddle the landscape. In an environment like that these programs would have unlimited potential for growth.
I like your idea. I argue that their purpose should include the ability to look beyond their purpose. What I mean is that they should be taxed
with more than reproduction. They should be given instructions to find logic based truth.
What do we do with our free time. Most entertain themselves but the driving force of the world is finding greater understanding for whatever
purpose.
But how would you suggest we program them to find "logic based truth"... the truth is always in the eye of the beholder, everyone has
a different truth. It would be a very difficult thing to program into them. I also wonder how and where they would store this information once they
find it? They can't store it in their own code, because they would quickly become far too bulky in size to be effectively transmitted over the
internet in reasonable times.
I would ask them to identify all truths and systematically preserve them in a global network that is constantly being updated and refined.
Imagine a global online network policed by virtual entities that are dedicated to preserving world knowledge.
"Global network" is a very vague
term, I am not really sure what you mean by that. The thing is, these programs will be designed to essentially do what ever they want, to develop in
what ever way is best for their survival, they will essentially be "digital organisms" with the ability to evolve into essentially anything. We wont
be able to control what they do to such a degree, their purpose will not be as slaves, but rather as a completely free "virtual species" that is let
loose into the wild as an experiment to basically see what it does and how it evolves. They will become so effective at propagating themselves and
evading our detection that we couldn't control them even if we wanted to.
A library that cannot be simply deleted or edited or censored. Beyond natural disasters like a solar flare they would be undefeatable.
You have a question, screw Google, look to the digital savants.
P2P networks basically are what you describe, they are a global network which
cannot simply be deleted or edited or censored, especially completely decentralized networks such as the one used by Tribler.
edit on 17-3-2012
by ChaoticOrder because: (no reason given)