Norm tells me a few people have commented on the bit in his interview with me, where I say that simulations are not yet a substitute for the real world. The general opinion seems to be that this is close to not being true, mostly thanks to better physics engines.
Well I'm a huge fan of simulations - in fact I'm working on a 3D, physics-based simulation now - but I still think there's an awful long way to go yet and robots are much easier to build for certain things. I thought it might be worth starting a casual debate on this subject.
Physics engines certainly mimic collisions and forces pretty well these days, but there's a lot more to perception (and hence intelligence) than physics.
Vision, for instance, occurs when quadrillions of photons interact with tens of millions of rod and cone cells, after refracting and diffracting from thousands of surfaces. Anything much more abstract than that misses the point about how vision works. We can mimic the effect in a 3D engine by rendering the scene from the organism's point of view to produce a bitmap, and that's a fair starting point. If 3D graphics are good enough to fool human eyes, they'll do nicely for a robot too. Each eye in the scene requires a render, though, so a single organism slows the frame rate by a factor of three (two for the eyes and one render for us, the viewers). It's not cheap, computationally speaking, but it's doable.
But then you have to add touch - a badly underrated sense. We use touch for all sorts of things (including calibrating our vision and muscles). We have millions of touch sensors, capable of telling the difference between the pressure of a doorknob, the pressure of a finger, the brush of someone's hair, etc. Calculating zillions of sub-poly intersections is a pretty demanding thing, several orders of magnitude harder than any current physics engine attempts to handle.
And then there's hearing (thousands of reflections interfering with each other - we use all that information to detect location, context, etc.), and smell (gazillions of diffusing molecules). We can in principle compute all these things with reasonable resolution, but not in anything like realtime. And don't forget that the robot also has to do its own processing work on all this massively parallel data, probably on the same CPU (or if not then we have communications bandwidth to worry about).
I suspect people will argue that we don't need to go to this level of detail, and we can abstract a lot of this sensory information (as I did in Creatures). But if we really want to understand how brains work (which I do, and I think we *have* to figure this out before we have any hope of creating true intelligence) then I think this noisy complex data is vital to the task.
Abstraction is what gave AI false hope. Even today, computer vision people tend to start with an RGB bitmap from a static, linearly-mapped camera, and abstract it straightaway into vertices, surfaces, etc. But the human eye turns a scene into a map of contrast ratios, then convolves the signals deeply, splits them into three or more parallel representations and modulates the data through continuous tiny eye movements. This is what brains actually use to see with, not a static bitmap. And we can be damn sure that evolution has created brains that capitalise specifically on this particular form of representation. Starting with a bitmap or geometric abstraction of a scene skips a fundamental fact about the visual system - a fact that's almost certainly crucial to its function.
Robots are hard to build, but they're a lot easier than building a complex 3D engine with suitable veracity (I've done both, so I'm not making this up). 99.99999% of the bandwidth and processing come for free, via the real world - atoms bump into other atoms, photons diffract and interfere, electrical forces pull and push - leaving us with the comparatively simple task of processing the sensory data and driving the motors (the real world then ensures that our robot will fall over ineptly, with far better veracity than a simulation).
Cheating is a bigger problem than any of us would like to admit. We take shortcuts for good pragmatic reasons, but each shortcut removes us one more step from the world that real organisms live in, and hence makes it that much harder to understand how they work.
You don't need any of this if you disagree with my general stance on AI though. If you think we can create intelligent machines without reference to the one natural example we have, and those machines can be highly abstract devices, which process discrete symbols and think without perceiving, then you don't need the real world OR a faithful simulator. In that case, stick to your blocksworld, feed your model some Prolog declarations and pray! I just don't think it's going to work...































simulation
Its certainly satisfying to have someone of your stature documenting this opinion into words, given the problem that this stuff is "one jump ahead" of current trends. While the world is just waiting for the "ai breakthrough"(some even think that its already happened), you've clarified that the paradigm in which it might happen is totally different from what most expect.
Incredibly, I arrived at similar conclusions from a totally different direction. Lately, there has been a resurgence in the theory proposing that "we are all living in a simulation" run by some higher being(s). Of course I think it is hogwash, but the only way to prevent pseudo-science from becoming popular-science is to provide hard scientific rebuttals. The same logic that you've used to demonstrate the difficulty of simulating something accurately (compared to just having the real thing), I used it to profess that it is probably easier to have real humans than to "simulate" them.
But, then again, lately I am inclined to go one step further. Looking at this whole thing critically, the only real difference I can see between our attempted simulations and the real thing, is the matter of "scale".
What if, the only reason we have not yet succeeded in simulating intelligence is because we always simulate at too high a level? Why do we try to model a neural network for vision with just a few thousand neurons? Why not a billion?
Of course the thing will be interminably slow! No researcher wants to wait 5 weeks to know the result of a simple test, or a minor tweak in the parameters. But that is besides the point. The primary issue is correctness of the algorithm.
I'll put forward some analogies to make my point clearer. When water reaches 100 deg celsius, it spontaneously boils. When a seed is sown into the soil, it waits for the right conditions, maybe even years, then germinates spontaneously. A nuclear chain reaction does not begin until there is a "critical mass" present.
So, maybe, even if a collection of interacting entities is configured correctly, intelligence will sprout only when they are present in some critical quantity. Maybe there is some relationship between the number of entities and the quality of information exchange between the entities compared to their individual intelligence, which when used together affect the critical quantity. For example, two molecules of water have negligible "intelligence", and the only interactions between them are the basic forces at molecular level. So the "intelligence gain" derived from bunching together water molecules is miniscule.
But two ants, both are somewhat intelligent, and the quality of their interaction is also high compared to their individual intelligence, so the intelligence gain derived from their pairing is also high. Then compare that with a whole crowd of humans, which is by now a well studied phenomenon.
Although of course I am biased, I can envision a whole new branch of mathematics which can be used to manipulate and understand such constructs.
I intend to work further along this intelligence-gain theory. It would be great to hear your thoughts on this.
You can find more of my thoughts on my blog at http://raghavgupta.wordpress.com