DrQuine: your points are well taken; after all, an artificial neural network (if successful) is going to have a lot of the same characteristics as a biological one (some of which are just the ones you list!). In the spirit of the mixed system mentioned above, I would say that the best way to use neural network processors is as a feed to a final digital system. Refer again to the TSP: Hopfield's op amps can get the best million (roughly) solutions to a 30-city tour in a few microseconds, but can't go beyond that. But a digital system can now evaluate a million tours very easily (unlike the 10^30 original possibilities). The same principle could be used for image recognition.
First, I'd like to mention that NN chips will be another processor type in a heterogeneous processor system. Like human brains, ANN chips will not be very fast at solving matrix equations and other deterministic problems. Instead they are good at learning to be decision makers, or in other words they can "solve" NP-complete (Nondeterministic Polynomial time) problems, (like the travelling salesman problem you mention), in a much more efficient way than Harvard architecture computers.
Must they be analog? A good question. Another is, must they be electronic at all? There is a need for the synaptic connections to be analog, or at least to carry a variable signal. Whether electronic or photonic, the signal energy is in fact quantized, and so perhaps there is no such thing as true analog and the only possible signal is a discrete one. As the trace sizes get smaller and smaller, so does the possible number of discrete signal levels. In any case, we don't know how many signal levels are necessary for a usable ANN. Perhaps a relatively small number of signal levels is sufficient, in which case digital synaptic connections are plausible.
One of the significant questions with neural networks is whether learning is continuous or not. This came up years ago when people started thinking about using them for control systems. If learning is disabled in an operational system then its utility is certainly limited, but if it is enabled then you run the risk of it learning something that would cause it to give a wrong answer (in some waus these things are very much like people!). This may be less of an issue for an intelligent UI than a direct control system, but one way or the other we need to understand how it will react. Some of the best Asimov stories revolved around ambiguity of interpretation of the Three Laws for a good reason.
I agree, neural has been on the boards for decades, Motorola had one about 15-20 years ago but no one ever seems to get it off the ground because they try to "program" them instead of letting them learn. Also power consumption has been a problem because they need to be essentially analogue and massively parallel to do real work (see our brain) and that doesn't translate well into silicon. I think some quantum deriviative of a neuron is going to be the real solution.
The use of neural nets and "experience stores" allowing users to download expertise into their consumer products is a fascinating topic. I remember downloading neural net software for my MS-DOS computer in the early 1990's. It was the emerging breakthrough technology for solving image recognition problems. Obviously biological neural nets have served mankind very well (our brains). That said, there is an area of concern to me. The very fact that we don't know what cue is being used by the network to solve a problem may be the source of a serious issue. The software cannot be debugged or "certified" as correct. Imagine that we use a neural net algorithm to distinguish apples from oranges. Perhaps it does perfectly. Not knowing the "factor" it is utilizing, we might get into very unexpected results under unexpected conditions. Is it using color? If so, did we remember to test with green and yellow apples as well as red ones? Is it looking for stems? Will it mistake round candles for apples? When the variables being used are understood, a simple traditional program can run with less resources (and potentially less errors in a comprehensive test) than the neural net. I would predict that downloading a variety of "experience" updates to a neural net may result in some unexpected results.
The comments about various libraries, compilers, and other standard digital lore are well off the mark with respect to neural networks. The basic structure of neural function has been known for a long time, even if the details may await future generatiions. It is analog through and through, and no digital approach will work. John Hopfleld and colleagues showed three decades ago how extraordinarily efficient a simple collection of analog processors could be at a test case - solving the traveling salesman problem. Operational amplifiers were all the electronics needed.
So it can certainly be done in CMOS, but it will not be digital, and it will not involve a lot of C++...
This may not be critically important in the overall scheme of things, but since others have called elements of this article into question it is worth noting that Asimov's Zeroth law is incorrectly described. The law that robots may not harm a human is captured in the first law. The Zeroth Law states that a robot may not harm humanity, which is quite a different thing. Anyone interested can get the lowdown at this Wikipedia page: http://en.wikipedia.org/wiki/Three_Laws_of_Robotics
NASA's Orion Flight Software Production Systems Manager Darrel G. Raines joins Planet Analog Editor Steve Taranovich and Embedded.com Editor Max Maxfield to talk about embedded flight software used in Orion Spacecraft, part of NASA's Mars mission. Live radio show and live chat. Get your questions ready.
Brought to you by