What do we mean when we say that we are programming machines to “learn”? Initial Artificial Intelligence research focused on developing programs with enough rules to explicitly describe tasks or solve problems. Scientists soon found that writing software to mimic human response for recognizing objects, understanding concepts and comprehending speech is a very complicated problem, for which a list of heuristics (i.e., statistics, rules and guesses) cannot be easily compiled. Simple decisions for humans, such as identifying objects in any background field, cannot be programmed with a set of rules covering all possible cases. Constructing a program that uses rules to handle every possibility that could arise is horrendously complicated.
The use of neural networks for machine learning has been a focus for developing Artificial Intelligence solutions since the 1960s. Neural networks have evolved into Deep Learning networks that successfully address important machine learning problems, such as image classification and language translation. Deep Learning networks solve many problems that were unsolvable using classic Artificial Intelligence, but there are still significant limitations. Deep Learning networks are complex and challenging to develop. They require large computer processing and memory resources; they need vast bodies of accurate training data and require time to train the network. Deep Learning networks are also inflexible and cannot handle constantly changing data patterns. Though these limitations are substantial, the largest issue facing deep learning networks is the inability of the CPUs and GPUs to efficiently handle massively parallel, dissimilar and divergent processing threads. The NNP overcomes these major limitations.
The initial Natural Intelligence NNP machine learning research shows innovative algorithms, incredible speedups and tremendous power reductions in many contributors to the machine learning work flow, such as feature extraction, classification and model execution. These algorithms take advantage of the fundamental capabilities of the Natural Neural Processor (NNP), such as the ability to: 1) easily program and execute thousands or tens of thousands of parallel, non-deterministic and independent decision threads in one device, 2) rapidly reconfigure the entire device hardware fabric, 3) not require instruction fetching and the associated memory accesses while evaluating streaming data, and 4) perform these algorithms on devices that run at just a few watts of power.