Friday, October 19, 2007

I thought this was how The Matrix worked

I was browsing the internet today and came across something that I just had to comment on.

The link in question was referenced by Slashdot.

Reducing Lag Time in Online Games

Predictions from a neural network could reduce characters' jerky movements.


This just floored me.

Here are my thoughts:

If you think about it, the computer-generated world made famous in the movie "The Matrix" is simply just a big multi-player online game (MMOG), if you will. The distributed computing problems of "latency jitter" have been around since one computer talked to another across a network. The Matrix would have suffered from the same problems. There are a couple of things that really jumped out at me when I saw the movie that made the possible story line, as I saw it, really interesting.



  • Ultra-super-fast reaction in The Matrix:   Aside from the jumping from building to building and flying business (which is cool, but not a particularly interesting technical problem) the ability to move and react in ultra-fast time frames got my attention. I have been building distributed systems and various types of simulators (and a computer game is really just a type of simulation) for a long time. That "latency jitter" is a big problem and its causes are more complex than just network distance and packet size. One way to get around it, of course, is to predict actions in the latency window so that action/reaction pairs have parity in "game time" ... as if action/reaction was in the real world. So, the story revolves around this "Neo" dude who magically has the ability to react faster in "game time" better than anyone else. "Hmmmmm," I say. Where does this lead?



  • Jacking into the Matrix from "broadcast depth":   This really got my juices flowing. "Broadcast depth?" They were connecting to "The Matrix" network through a wireless connection; using a radio. And trying to do it quietly. I know a little but about trying to stay undetected while using radios and the nature of wireless networks. Good wireless network connections are "loud" or "bright". Kinda like having a big, bright light bulb on in the middle of a dark room. You're gonna get noticed. High-bandwidth connections to The Matrix while you are trying to hide from the Sentinels would be a big trick. Either way, the ultra-fast reaction time of Neo gets shakier with their WiMax-Max-Max hovercraft connection. You're gonna have piles of dropped packets and other radio interference from those crazy-cool-looking-lightning-spewing "hover pods" on the Nebuchadnezzar. Trying to stay "radio quiet" would exacerbate the problem far more as the radio would not be able to broadcast with too much energy (loudness) and that broadcast energy is proportional to your effective bandwidth and smoothness of your connection.



  • The Oracle:   This chick can predict the future!!! So there is a "program/being" that is a Matrix bigwig (the "Mother of the Matrix" no less) that can predict the future!!! Now we're getting somewhere. Neo's gotta go see this "future predicting" entity because he is "The One." And Neo can do all this crazy-fast-dodging-bullets and wicked-awesome-zippy kung-fu action!!! Maybe, just maybe, Neo has some ultra-special prediction algorithm that let's him act/react faster than anything else ... even Agents. Or, maybe The Matrix itself has allowed Neo to use it's special "Neuro-Reckoning" module (which would likely be more interesting).



  • There are Real-world robots and Matrix "programs"?:   This one slightly confuses me. So in the Matrix there are "Machine-world programs" that seems to live in it. For example: The Agents, The Merovingian, the very hot Persephone, all henchmen and S&M club-goers, The Architect, The Oracle and let's not forget that "family" of programs that were escaping on the train (not sure I quite fully understand that). Even these Matrix programs have the same engineering problems that "jacked-in" humans would have regarding "latency jitter." And having played online "continuous simulation games" for at least 20 years now, even over dial-up connections, I'm sure you'd all agree that if you were experiencing "latency jitter"walking around in your everyday life, you'd want to do something about it if you could. Perhaps adding a little "Neuro-Reckoning" would work here to smooth things out. So there are also these "real-world" physical robots as well. Maybe they have problems processing real-world event in a consistent manner as well.



  • Human brains are ... neural networks:   Coincidence, you say? I think not! Things might be coming together now. That whole "we use humans as batteries" story always sounded like a load of crap to me. Now, imagine that the "machines" really needed to use humans as surrogate "Neuro-Reckoning" processors, much the same way as we have graphics and physics co-processors today. There are, in fact, neural network processor boards available for computers (http://www.accurate-automation.com/Products/NNP/nnp.html) and have been for years. It seems we have never really had a great grasp on how the mind really works (read "How the Mind Works" by Steve Pinker). There are some thoughts going around that describe the brain as a continual "future predictor". See the TED talk by Jeff Hawkins (http://www.ted.com/index.php/talks/view/id/125). If that is the case, then much of the brain's machinery is built to do "Neuro-Reckoning" of various forms. from the split-second type needed to walk and talk and work in the physical world as well as the longer term "action/consequence" things we think about which is largely the domain of classic AI (if I get good grades in college, I'll get a good job, make good money and attract hot women). Perhaps THIS is why the machines needed the people. Perhaps the machines needed the "Neuro-Reckoning" processors that are human brains.

    The "human battery" thing seems way too hokey for me and it doesn't make sense WRT the movie dialog either. In the exchange between Neo and The Architect:

    Neo: You won't let it happen, you can't. You need human beings to survive.

    Architect: There are levels of survival we are prepared to accept.

    The whole dialog can be found here.

    So, if all the humans die, the machines go on, just with really jittery interaction with their world. Painful and frustrating, but survivable indeed. Obviously they had this problem before and they understand it. Why else would they enslave the humans to be co-processors.

    Therefore the real function of humans is as "Neuro-Reckoning" processors. So, the next question is: why destroy Zion and let Neo live and repopulate Zion all over again? At the risk of reading way too much into the dialog of a movie, let's look at the dialog one more time. Just before the "level of survival" comment, The Architect says:

    Architect: But, rest assured, this will be the sixth time we have destroyed it. And we have become exceedingly efficient at it. The function of the One is now to return to the source allowing a temporary dissemination of the code you carry reinserting the prime program after which you will be required to select from the matrix 23 individuals, 16 female 7 male, to rebuild Zion.

    What the heck does "temporary dissemination of the code you carry" mean? I wondered that. The only possible explanation of "code you carry" I can think of, because Neo is really a live human, is DNA. The "dissemination of the code" likely means making babies and spreading his genetic code. Why this? I think it might mean that the machines recycle the human population and seed it with the genetic code of the individual who as the best innate "Neuro-Reckoning Processor" based on predictive speed and accuracy. Neo was chosen because of an accident of his genetics. An accident of how his brain worked. His DNA contains the "prime program". Returning to "the source", I believe, means going to a special place in the physical world where he will deposit a portion of his DNA (or maybe a part of his brain) which will then be processed and injected into the next generation of human co-processors.

  • The machine world knew about him, nurtured him and then allowed Morpheus to come and get him as a precursor to destroy and repopulate the humans in a massive breeding effort ("this will be the sixth time we have destroyed it").  This was to create, through a pure genetic algorithm, the best "Neuro-Reckoning" processor they could get to make their "online" experience as smooth as possible.

    Holy shit. That's much cooler than whatever other story line The Wachowskis were trying follow (I totally did not get the ending of Matrix Revolutions ... maybe I'm just dumb). Maybe the end of the third movie was an indication that the "machine" entities thought it might be better to live in harmony with their "creator" race or begin to blend with then than continue to subjugate humans. Maybe. Sounds like a couple new Matrix movies are in order here. I'll have my people call the Wachowski's people and we'll do lunch.

    Ok ... so why don't the machines just build neural network based "Neuro-Reckoning" co-processors and dispose of those pesky humans? Good question. Perhaps there is something special about how human brains work that the machines could not figure out. Perhaps they tried and failed.

    The Architect: The first matrix I designed was quite naturally perfect; it was a work of art, flawless, sublime. A triumph equaled only by its monumental failure.

    The "dead reckoning" algorithms and their variants just didn't work or the neural networks they tried made the latency jitter worse instead of better. There are some theories that there is something special in how our neurons are made that allow for something called Quantum Computing which would allow for hyper-speed computations that would be quite useful for things like "fast complex predictive algorithms." But that's just a hypothesis. (See http://www.iscid.org/arewespiritualmachines-chat.php)


    If we figure this stuff out, then it will have a massive effect on how armed conflict would occur. If we can help fix the latency problem, then we could have real-world battles run in "remote-control." The autonomous Unmanned Aerial/Ground Vehicle (UAV/UGV) are not that smart. I'd rather have people run them. The F-35 was the last manned fighter to be designed and built. But how do you fly a remote-controlled jet at Mach 3 pulling 14Gs with a 1 second latency? Not well, actually. Not something you want to do with real-would consequences. Frankly, I would prefer a war of robots run by remote control rather "intelligent autonomous" robots. I would like more control over things with big guns. I'm just like that.

    2 comments:

    Unknown said...

    Jeff,

    I thought The Matrix was only built to keep humans docile while being used as batteries after we "darkened the sky" in an attempt to eliminate solar power as a source of energy for the machines. As a result, the machines don't need The Matrix any more than we need pig pens on a farm. The machines exist fully in the "real world", although some AI (like Agent Smith) exist primarily -- if not solely -- within the confines of The Matrix.

    KronoS said...

    I like the way you think.