Cellular neural network
Encyclopedia
Cellular neural networks (CNN) are a parallel computing
paradigm similar to neural networks
, with the difference that communication is allowed between neighbouring units only. Typical applications include image processing, analyzing 3D surfaces, solving partial differential equations, reducing non-visual problems to geometric maps, modelling biological vision and other sensory-motor organs.
where information is encoded via its initial state, inputs, and variables used to define its behavior. Dynamics are usually continuous, Continuous-Time CNN (CT-CNN) processors, but can be discrete, Discrete-Time CNN (DT-CNN) processors. Each cell has one output, by which it communicates its state with both other cells and external devices. Output is typically real-valued, but can be complex or even quaternion, i.e. Multi-Valued CNN (MV-CNN). In most CNN processors, processing units are identical, but there are applications that require, Non-Uniform Processor CNN (NUP-CNN) processor, consisting of different types of cells. In the original Chua-Yang CNN (CY-CNN) processor, the state of the cell was a weighted sum of the inputs and the output was a piecewise linear function. However, like the original perceptron-based neural networks, the functions it could perform were limited: specifically, it was incapable of modeling non-linear functions, such as XOR. If this is a problem, more complex functions are achievable via Non-Linear CNN (NL-CNN) processors.
Cells are defined in a normed space, commonly a two-dimensional Euclidean geometry
, like a grid. The cells are not limited to two-dimensional spaces however; they can be defined in arbitrary numbers of dimensions and can be square, triangle, hexagonal, or any other spatially-invariant arrangement. Topologically, cells can be arranged on an infinite plane or on a toroidal space. Cell interconnect is local, meaning that all connections between cells are within a specified radius, where distance is measured topologically. Connections can also be time-delayed to allow for processing in the temporal domain.
Most CNN architectures have cells with the same relative interconnect, but there are applications that require, Multiple-Neighborhood-Size CNN (MNS-CNN), consisting of spatially-variant topology. Also, Multiple-Layer CNN (ML-CNN), where all cells on the same layer are identical, can be used to extend the capability of CNN processors.
The definition of a system is a collection of independent, interacting entities forming an integrated whole, whose behavior is distinct and qualitatively greater than its entities. Although connections are local, information exchange can happen globally through diffusion. In this sense, CNN processors are systems because their dynamics is derived from the interaction between the processing units and not within processing units, and as a result, they exhibit emergent, collective behavior. Mathematically, the relationship between a cell and its neighbors, located within an area of influence, can be defined by a coupling law, and this is what primarily determines the behavior of the processor. When the coupling laws are modeled by fuzzy logic, it is fuzzy CNN
. When these laws are modeled by computational verb logic, it becomes computational verb CNN (verb CNN)
. Both fuzzy and verb CNNs are useful to modelling social networks when the local couplings are achieved by linguistic terms.
behavior. In these articles, Leon Chua and Lin Yang outline the underlying mathematics behind CNN processors. They use this mathematical model to demonstrate, for a specific CNN implementation, that if the inputs are static, the processing units will converge, and can be used to perform useful calculations. They then suggest one of the first applications of CNN processors: image processing and pattern recognition, which is still the largest application to this date. Leon Chua is still active in CNN research and publishes many of his articles in the International Journal of Bifurcation and Chaos
, of which he is an editor. Both IEEE Transactions on Circuits and Systems and the International Journal of Bifurcation also contain a variety of useful articles on CNN processors authored by other knowledgeable researchers. The former tends to focus on new CNN architectures and the latter more on the dynamical aspects of CNN processors.
Another key article is Tamas Roska and Leon Chua’s, 1993 article, "The CNN Universal Machine: An Analogic Array Computer", where the first algorithmically programmable, analog CNN processor was introduced to the engineering research community. The multi-national effort was funded by the Office of Naval Research, the National Science Foundation, and the Hungarian Academy of Sciences, and researched by the Hungarian Academy of Sciences and the University of California. This article proved that CNN processors were producible, and provided researchers a physical platform to test their CNN theories. After this article, companies started to invest into larger, more capable processors, based on the same basic architecture as the CNN Universal Processor. Tamas Roska is another key contributor to Cellular Neural Networks. His name is often associated with biologically inspired information processing platforms and algorithms, and he has published numerous key articles and has been involved with companies and research institutions developing CNN technology.
There are several overviews of CNN processors. One of the better references is a paper, "Cellular Neural Networks: A Review" written for the Neural Nets WIRN Vietri 1993, by Valerio Cimagalli and Marco Balsi. This paper is beneficial because it provides definitions, CNN types, dynamics, implementations, and applications in a relatively small, readable document. There is also a book, "Cellular Neural Networks and Visual Computing Foundations and Applications", written by Leon Chua and Tamas Roska. This reference is valuable because it provides examples and exercise to help illustrates points, which is uncommon in papers and journal articles. This book covers many different aspects of CNN processors and can serve as a textbook for a Masters or PhD course. These two references are invaluable since they manage to organize the vast amount of CNN literature into a coherent framework.
The best place for CNN literature is from the "International Workshop on Cellular Neural Networks and Their Applications" proceedings. The proceedings are available online, via IEEE Xplore, for conferences held in 1990, 1992, 1994, 1996, 1998, 2000, 2002, 2005, and 2006. There is also a workshop being held on July 14–16 in Santiago de Composetela, Spain. Topics include theory, design, applications, algorithms, physical implementations, and programming/training methods. For an understanding of the analog semiconductor based CNN technology, AnaLogic Computers has their product line, in addition to their published articles available on their homepage and their publication list. They also have information on other CNN technologies such as optical computing. Many of the commonly used functions have already been implemented using CNN processors. A good reference point for some of these can be found in image processing libraries for CNN based visual computers such as Analogic’s CNN based systems.
and CA (Continuous Automata). The processing units off CNN and NN are similar. In both cases, the processor units are multi-input, dynamical systems, and the behavior of the overall systems is driven primarily through the weights of the processing unit’s linear interconnect. The main discriminator is that in CNN processors, connections are made locally, whereas in ANN, connections are global. For example neurons in one layer are fully connected to another layer in feed-forward NN and all the neurons are fully interconnected in Hopfield networks. In ANN, it the weights contain information on the processing system’s previous state or feedback, but in CNN processors, the weights are used to determine the dynamics of the system. Furthermore, due to the high interconnectivity of ANN, they tend not exploit locality in either the data set or the processing and as a result, they usually are highly redundant systems that allow for robust, fault-tolerant behavior without catastrophic errors. A cross between an ANN and a CNN processor is a Ratio Memory CNN (RMCNN). In RMCNN processors, the cell interconnect is local and topologically-invariant, but the weights are used to store previous states and not to control dynamics. The weights of the cells are modified during some learning state creating long-term memory.
The topology and dynamics of CNN processors closely resembles that of CA. Like most CNN processors, CA consists of a fixed-number of identical processors that are spatially-discrete and topologically-uniform. The difference is that most CNN processors are continuous-valued whereas CA has discrete-values. Furthermore the CNN processor cell’s behavior is defined via some non-linear function whereas CA processor cells are defined by some state machine. However, there are some exceptions. Continuous Valued Cellular Automata or Continuous Automata are CA with continuous resolution. Depending on how the Continuous Automata is specified, it can also be a CNN. There is also Continuous Spatial Automata, which consists of an infinite number of spatially-continuous, continuous-valued automata. There is considerable work being performed in this field since continuous spaces are easier to mathematically model than discrete spaces, thus allowing a more quantitative approach as opposed to an empirical approach taken by some researchers of cellular automata. Continuous Spatial Automata processors can be physically realized though an unconventional information processing platform such as chemical computers. Furthermore, it is conceivable that large CNN processors compared to the resolution of the input and output can be modeled as a Continuous Spatial Automata.
CNN processors can be used as Reaction-Diffusion (RD) processors. RD processors are spatially-invariant, topologically-invariant, analog, parallel processors characterized by reactions, where two agents can combine to create a third agent, and diffusions, the spreading of agents. RD processors are typically implemented through chemicals in a Petri dish (processor), light (input), and a camera (output) however RD processors can also be implemented through a multilayer CNN processor. RD processors can be used to create Voronoi diagrams and perform skeletonisation. The main difference between the chemical implementation and the CNN implementation is that CNN implementations are considerably faster their chemical counterparts and chemical processors are spatially-continuous whereas the CNN processors are spatially-discrete. The most researched RD processor, Belousov-Zhabotinsky (BZ) processors, has already been simulated using a four-layer CNN processors and has been implemented in a semiconductor.
Like CA, computations can be performed through the generation and propagation of signals that either grow or change over time. Computations can occur within a signal or can occur through the interaction between signals. One type of processing, which uses signals and is gaining momentum is wave processing, which involves the generation, expanding, and eventual collision of waves. Wave processing can be used to measure distances and find optimal paths. Computations can also occur through particles, gliders, solitions, and filterons localized structures that maintain their shape and velocity. Given how these structures interact/collide with each other and with static signals, they can be used to store information as states and implement different Boolean functions. Computations can also occur between complex, potentially growing or evolving localized behavior through worms, ladders, and pixel-snakes. In addition to storing states and performing Boolean functions, these structures can interact, create, and destroy static structures.
Although CNN processors are primarily intended for analog calculations, certain types of CNN processors can implement any Boolean function, allowing simulating CA. Since some CA are Universal Turing machine
s (UTM), capable of simulating any algorithm can be performed on processors based on the von Neumann architecture, that makes this type of CNN processors, universal CNN, a UTM. One CNN architecture consists of an additional layer, similar to the ANN solution to the problem stated by Marvin Minsky years ago. CNN processors have resulted in the simplest realization of Conway’s Game of Life and Wolfram’s Rule 110, the simplest, known universal Turing Machine. This unique, dynamical representation of an old systems, allows researchers to apply techniques and hardware developed for CNN to better understand important CA. Furthermore, the continuous state space of CNN processors, with slight modifications that have no equivalent in Cellular Automata, creates emergent behavior never seen before.
Any information processing platform that allows the construction of arbitrary Boolean functions is called universal, and as result, this class CNN processors are commonly referred to as universal CNN processors. The original CNN processors can only perform linearly separable Boolean functions. This is essentially the same problem Marvin Minsky introduced with respect to the perceptions of the first neural networks In either case, by translating functions from digital logic or look-up table domains into the CNN domain, some functions can be considerably simplified. For example, the nine-bit, odd parity generation logic, which is typically implemented by eight nested exclusive-or gates, can also be represented by a sum function and four nested absolute value functions. Not only is there a reduction in the function complexity, but the CNN implementation parameters can be represented in the continuous, real-number domain.
There are two methods by which to select a CNN processor along with a template or weights. The first is by synthesis, which involves determine the coefficients offline. This can be done by leveraging off previous work, i.e. libraries, papers, and articles, or by mathematically deriving co that best suits the problem. The other is through training the processor. Researchers have used back-propagation and genetic algorithms to learn and perform functions. Back-propagation algorithms tend to be faster, but genetic algorithms are useful because they provide a mechanism to find a solution in a discontinuous, noisy search space.
CNN processors have been implemented and are currently available as semiconductors, and there are plans to migrate CNN processors to emerging technologies in the future. Semiconductor-based CNN processors can be segmented into analog CNN processors, digital CNN processors, and CNN processors emulated using digital processors. Since analog CNN processors were the first to be developed, they will be discussed first. Analog computer
s were fairly common during the 1950 and 1960’s, but they gradually were replaced by digital computers the 1970s. Analog processors were considerably faster in certain applications such as optimizing differential equations and modeling nonlinearities, but the reason why analog computing lost favor was the lack of precision and the difficulty to configure an analog computer to solve a complex equation. Analog CNN processors share some of the same advantages as their predecessors, specifically speed. The first analog CNN processors were able to perform real-time ultra-high frame-rate (>10,000 frame/s) processing unachievable by digital processors. The analog implementation of CNN processors requires less area and consumes less power than their digital counterparts. Although the accuracy of analog CNN processors does not compare to their digital counterparts, for many applications, noise and process variances are small enough not to perceptually affect the image quality.
The first algorithm
ically programmable, analog CNN processor was created in 1993. It was named the CNN Universal Processor because its internal controller allowed multiple templates to be performed on the same data set, thus simulating multiple layers and allowing for universal computation. Included in the design was a single layer 8x8 CCN, interfaces, analog memory, switching logic, and software. The processor was developed in order to determine CNN processors producibility and utility. The CNN concept proved promising and by 2000, there were at least six organizations designing algorithmically programmable, analog CNN processors. This is when AnaFocus, a mixed-signal semiconductor company that was spun off the University of Seville, started with their ACE prototype CNN processor product line. Their first ACE processor contained 20x20 B/W processor units, their next ACE processor increase it to a 48x48 grayscale processor units, and their latest ACE processor contains 128x128 grayscale processor units. As time progressed, not only did the number of processing elements, their speed improved, the number of functions they can performed have increased, and a detector interface was seamlessly integrate into the silicon yielding a considerably improved interface. The ability to embed the detector interface into the CNN processor allows for real-time interaction between the sensing and processing. AnaFocus has a multilayer CASE prototype CNN processors line. The latest CASE processor is a three layer 32x32 CNN processor. Their work in CNN processors is currently culminating in their soon-to-be-released, commercially-available Eye-RIS product line that consists of all the processors, co-processors, software development kits, and support need to program and integrate an analog processor into a system.
AnaFocus is working with AnaLogic Computers, to include their CNN processors into visual systems. Founded in 2000, by many of the same researchers behind the first algorithmically programmable CNN Universal Processor, AnaLogic Computers mission is to commercialize high-speed, biologically inspired systems based on CNN processors. In 2003, AnaLogic Computers developed a PCI-X visual processor board that included the ACE 4K processor, with a Texas Instrument DSP module and a high-speed frame-grabber. This allowed CNN processing to be easily included in a desktop computer, considerably improving the usability and capability of CNN analog processors. In 2006, AnaLogic Computers developed their Bi-I Ultra High Speed Smart Camera product line, which includes the ACE 4K processor in their high-end models. The product that their developing team is now pursuing is the Bionic Eyeglass. The Bionic Eyeglass is a dual-camera, wearable platform, based on the Bi-I Ultra High Speed Smart Camera, designed to provide assistance to blind people. Some of the functions that the Bionic Eyeglass system will perform is route number recognition and color processing.
Some researchers are developed their own custom analog CNN processors. For example an analog CNN processor was developed from a research team from University degli Studi di Catania, in order to generate gaits for a hexapod robot. Researchers from National Chiao Tung University designed a RM-CNN processor to learn more about pattern learning and recognition and researcher from the National Lien-Ho Institute of Technology developed a Min Max CNN (MMCNN) processor to learn more about CNN dynamics. Given the diversity of CNN processors and the momentum that CNN research has gained, it is plausible that these unique analog CNN development efforts will be fairly common in the near future.
Despite their speed and low power consumption, there are some significant drawbacks to analog CNN processors. First, analog CNN processors can potentially create erroneous results due to environment and processes variation. In most applications, these errors are not noticeable, but there are situations where minor deviations can result in catastrophic system failures. For example, in chaotic communication, process various will change the trajectory of the system in phase space, resulting a lost of synchronicity or stability. Due to the severity of the problem, there is considerable research being performed in this field. Some researchers are optimizing templates to accommodate more variation. Other researchers are improving the semiconductor process to more closely match theoretical CNN performance. Other researchers are investigating different, potentially more robust CNN architectures. Last, there are researching developing methods to tune templates to target a specific chip and operating conditions. In other words, the templates are being optimized to match the information processing platform. Not only does process variation limit what can be done with current analog CNN processors, it is also a barrier for creating more complex processing units. Unless this process variation is resolved, ideas such as nested processing units, non-linear inputs, etc. can not be implemented in a real-time analog CNN processor. Also, the semiconductor real state for processing units limits the size of CNN processors. Currently the largest AnaVision CNN-based vision processor consists of a 4K detector, which is significantly less than the megapixel detectors found in affordable, consumer cameras. Unfortunately, feature size reductions, as depicted by Moore’s Law, will only result in minor improvements. For this reason, alternate technologies such as Resonant Tunneling Diodes and Neuron-Bipolar Junction Transistor are being explored. Also, the architecture of CNN processors is being reevaluated. For example, the Star-CNN processors, where one analog multiplier is time-shared between multiple processor units, has been proposed and is expected to result in processor unit reduction size of eighty percent.
Although not nearly as fast and energy efficient, digital CNN processors do not share the problems of process variation and feature size as their analog counterparts. This allows digital CNN processors to included nested processor units, non-linearities, etc. In addition, digital CNN are more flexible, cost less and are easier to integrate. The most common implementation of digital CNN processors uses an FPGA. Eutecus, founded in 2002 and operating in Berkley, provides intellectual property that can be synthesized into an Altera FPGA. Their digital 320x280, FPGA-based CNN processors run at 30 frame/s and there are plans to make a fast digital ASIC. Eustecus is a strategic partner of AnaLogic computers, and their FPGA designs can be found in several of AnaLogic’s products. Eutecus is also developing software libraries to perform tasks including but not limited to video analytics for the video security market, feature classification, multi-target tracking, signal and image processing and flow processing. Many of these routines are derived using CNN-like processing. For those wanting to perform CNN simulations for prototyping, low-speed applications, or research, there are several options. First, there are precise CNN emulation software packages like SCNN 2000. If the speed is prohibitive, there are mathematical techniques, such as Jacobi’s Iterative Method or Forward-Backward Recursions that can be used to derive the steady state solution of a CNN processor. These can be performed by any mathematics tool, such as Matlab. Last, digital CNN processors can be emulated on highly-parallel, application-specific processors, specifically graphics processors. Implementing neural networks using graphics processors is an understood by the research community and it would not be a stretch to implement a CNN processor.
Researchers are also perusing alternate technologies for CNN processors. Although current CNN processors circumvent some of the problems associated with their digital counterparts, they do share some of the same long-term problems common to all semiconductor-based processors. These include, but are not limited to, speed, reliability, power-consumption, etc. AnaLogic Computers, is developing optical CNN processors, which combine optics, lasers, and biological and holographic memories. What initially was technology exploration resulted in a 500x500 CNN processor able to perform 300 giga-operations per second. Another promising technology for CNN processors is nanotechnology. One nanotechnology concept being investigated is using single electron tunneling junctions, which can be made into single-electron or high-current transistors, to create McCulloch-Pitts, CNN processing units. In summary, CNN processors have been implemented and provide value to their users. They have been able to effectively leverage the advantages and address some of the disadvantages associated with their underling technology, semiconductors. Researchers are also transitioning CNN processors into emerging technologies. Therefore, if the CNN architecture is suited for a specific information processing system, there are processors available to purchase today and will be in the foreseeable future.
CNN processors were designed to perform image processing; specifically, the original application of CNN processors was to perform real-time ultra-high frame-rate (>10,000 frame/s) processing unachievable by digital processors needed for applications like particle detection in jet engine fluids and spark-plug detection. Currently, CNN processors can achieve up to 50,000 frames per second, and for certain applications such as missile tracking, flash detection, and spark-plug diagnostics these microprocessors have outperformed a conventional supercomputer. CNN processors lend themselves to local, low-level, processor intensive operations and have been used in feature extraction, level and gain adjustments, color constancy detection, contrast enhancement, deconvolution, image compression, motion estimation, image encoding, image decoding, image segmentation, orientation preference maps, pattern learning/recognition, multi-target tracking, image stabilization, resolution enhancement, image deformations and mapping, image inpainting, optical flow, contouring, moving object detection, axis of symmetry detection, and image fusion.
Due to their processing capabilities and flexibility, CNN processors have been used or has been prototyped for novel field applications such as flame analysis for monitoring combustion at a waste incinerator, mine-detection using infrared imagery, calorimeter cluster peak for high energy physics, anomaly detection in potential field maps for geophysics, laser dot detection, metal inspection for detecting manufacturing defects, and seismic horizon picking. They have also been used to perform biometric functions such as fingerprint recognition, vein feature extraction, face tracking, and generating visual stimuli via emergent patterns to gauge perceptual resonances. CNN processors have been used for medical and biological research in performing automated nucleated cell counting for detecting hyperplasia, segment images into anatomically and pathologically meaningful regions, measuring and quantifying cardiac function, measure the timing of neurons, detecting brain abnormalities that would lead to seizers. One potential future application of CNN microprocessors is to combine them with the DNA microarrays to allow for a near-real time DNA analysis of hundreds of thousands of different DNA sequences. Currently, the major bottleneck of this DNA microarray analysis is the amount of time needed to process data in the form of images, and using a CNN microprocessor, researchers have reduced the amount of time needed to perform this calculation to 7ms.
CNN processors have also been used to generate and analyze patterns and textures. One motivation was to use CNN processors to understand pattern generation in natural systems. They were used to generate Turing patterns in order to understand the situations in which they form, the different types of patterns which can emerge, and the presence of defects or asymmetries. Also, CNN processors were used to approximate pattern generation systems that create stationary fronts, spatio-temporal patterns oscillating in time, hysteresis, memory, and hetergenity. Furthermore, pattern generation was used to aid high-performance image generation and compression via real-time generation of stochastic and coarse-grained biological patterns, texture boundary detection, and pattern and texture recognition and classification.
Control and Actuator Systems
There is an ongoing effort to incorporate, CNN processors into sensory-computing-actuating machines as part of the emerging field of Cellular Machines. The basic premise is to create an integrated system that uses CNN processors for the sensory signal processing and potentially the decision making and control. The reason is that CNN processors can provide a low power, small size, and eventually low cost computing and actuating system suited for that type of system []. These Cellular Machine will eventually create a Sensor-Actuator Network (SAN), a type of Mobile Ad Hoc Networks (MANET) which can be used for military intelligence gathering, surveillance of inhospitable environments, maintenance of large areas, planetary exploration, etc.
CNN processors have been proven versatile enough for some control functions. The have been used as associative memories, optimize function via genetic algorithm, measuring distances, optimal path finding in a complex, dynamic environment, and theoretically be used to learn and associate complex stimuli. They have also been used to create antonymous gaits and low-level motor for robotic nematodes, spiders, and lamprey gaits using a Central Pattern Generator (CPG). They were able to function using only feedback from the environment, allowing for a robust, flexible, biologically inspired robot motor system. CNN-based systems were able to operate in different environments and still function if some of the processing units were disabled.
The variety of dynamical behavior seen in CNN processors make them intriguing for communication systems. Chaotic communications using CNN processors is being researched due their potential low power consumption, robustness and spread spectrum features. The premise behind chaotic communication is to used a chaotic signal for the carrier way and to use chaotic phase synchronization to reconstruct the message. CNN processors can be used on both the transmitter and receiver end to encode and decode the message. They can also be used for data encryption and decryption, source authentication through watermarking, detecting of complex patterns in spectrogram images (sound processing), and transient spectral signals detection.
CNN processors are neuromorphic processors, meaning that they emulate certain aspects of biological neural networks. The original CNN processors were based on mammalian retinas, which consist of a layer of photodetectors connected to several layers of locally-coupled neurons. This makes CNN processors part of an interdisciplinary research area whose goal is to design systems that leverage knowledge and ideas from neuroscience and contribute back via real-world validation of theories. CNN processors have implemented a real-time system that replicates mammalian retinas, validating that the original CNN architecture modeled the correct aspects of biological neural networks used to perform. However, CNN processors are not only limited to verifying biological neural networks associated with vision processing; they have been used to simulate dynamic activity seen in mammalian neural networks found in the olfactory bulb and locust antennal lobe, responsible for pre-processing sensory information to detect differences in repeating patterns.
CNN processors are being used to understand systems that can be modeled using simple, coupled units, such as living cells, biological networks, physiological systems, and ecosystems. The CNN architecture captures some of the dynamics often seen in nature and is simple enough to analyze and conduct experiments. They are also being for stochastic simulation techniques, which allows scientists to explore spin problems, population dynamics modes, lattice gas models, percolation, etc. Other simulation includes heat transfer, mechanical vibrating systems, protein production, Josephson Transmission Line (JTL), seismic wave propagation, and geothermal structures.
The 3D (Three Dimensional) CNN have been used to prove as complex shapes are emergent phenomena establishing a link beetwen art, dynamical systems and VLSI technology.
CNN processors have been used to research a variety of mathematical concepts, such as researching non-equilibrium systems, constructing non-linear systems of arbitrary complexity using a collection of simple, well-understood dynamic systems, studying emergent chaotic dynamics, generating chaotic signals, and in general discovering new dynamic behavior. They are often used in researching systemics, a trandisiplinary, scientific field that researches natural systems. Their goal is to develop a conceptual and mathematical framework necessary to analyze, model, and understand systems, including, but are not limited to, atomic, mechanical, molecular, chemical, biological, ecological, social and economic systems. Topics explore are emergences, collective behavior, local activity and its impact on global behavior, and quantifying the complexity of an approximately spatially and topologically invariant system. Although another measure of complexity many not make some people enthusiastic (Seth Lloyd, a professor from Massachusetts Institute of Technology (MIT), has identified 32 different definitions of complexity), it can be potentially be mathematically analyze systems such as economic and social systems.
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
paradigm similar to neural networks
Neural Networks
Neural Networks is the official journal of the three oldest societies dedicated to research in neural networks: International Neural Network Society, European Neural Network Society and Japanese Neural Network Society, published by Elsevier...
, with the difference that communication is allowed between neighbouring units only. Typical applications include image processing, analyzing 3D surfaces, solving partial differential equations, reducing non-visual problems to geometric maps, modelling biological vision and other sensory-motor organs.
CNN architecture
Due to their number and variety of architectures, it is difficult to give a precise definition for a CNN processor. From an architecture standpoint, CNN processors are a system of a finite, fixed-number, fixed-location, fixed-topology, locally-interconnected, multiple-input, single-output, nonlinear processing units. The nonlinear processing units are often referred to as neurons or cells. Mathematically, each cell can be modeled as a dissipative, nonlinear dynamical systemDynamical system
A dynamical system is a concept in mathematics where a fixed rule describes the time dependence of a point in a geometrical space. Examples include the mathematical models that describe the swinging of a clock pendulum, the flow of water in a pipe, and the number of fish each springtime in a...
where information is encoded via its initial state, inputs, and variables used to define its behavior. Dynamics are usually continuous, Continuous-Time CNN (CT-CNN) processors, but can be discrete, Discrete-Time CNN (DT-CNN) processors. Each cell has one output, by which it communicates its state with both other cells and external devices. Output is typically real-valued, but can be complex or even quaternion, i.e. Multi-Valued CNN (MV-CNN). In most CNN processors, processing units are identical, but there are applications that require, Non-Uniform Processor CNN (NUP-CNN) processor, consisting of different types of cells. In the original Chua-Yang CNN (CY-CNN) processor, the state of the cell was a weighted sum of the inputs and the output was a piecewise linear function. However, like the original perceptron-based neural networks, the functions it could perform were limited: specifically, it was incapable of modeling non-linear functions, such as XOR. If this is a problem, more complex functions are achievable via Non-Linear CNN (NL-CNN) processors.
Cells are defined in a normed space, commonly a two-dimensional Euclidean geometry
Euclidean geometry
Euclidean geometry is a mathematical system attributed to the Alexandrian Greek mathematician Euclid, which he described in his textbook on geometry: the Elements. Euclid's method consists in assuming a small set of intuitively appealing axioms, and deducing many other propositions from these...
, like a grid. The cells are not limited to two-dimensional spaces however; they can be defined in arbitrary numbers of dimensions and can be square, triangle, hexagonal, or any other spatially-invariant arrangement. Topologically, cells can be arranged on an infinite plane or on a toroidal space. Cell interconnect is local, meaning that all connections between cells are within a specified radius, where distance is measured topologically. Connections can also be time-delayed to allow for processing in the temporal domain.
Most CNN architectures have cells with the same relative interconnect, but there are applications that require, Multiple-Neighborhood-Size CNN (MNS-CNN), consisting of spatially-variant topology. Also, Multiple-Layer CNN (ML-CNN), where all cells on the same layer are identical, can be used to extend the capability of CNN processors.
The definition of a system is a collection of independent, interacting entities forming an integrated whole, whose behavior is distinct and qualitatively greater than its entities. Although connections are local, information exchange can happen globally through diffusion. In this sense, CNN processors are systems because their dynamics is derived from the interaction between the processing units and not within processing units, and as a result, they exhibit emergent, collective behavior. Mathematically, the relationship between a cell and its neighbors, located within an area of influence, can be defined by a coupling law, and this is what primarily determines the behavior of the processor. When the coupling laws are modeled by fuzzy logic, it is fuzzy CNN
. When these laws are modeled by computational verb logic, it becomes computational verb CNN (verb CNN)
. Both fuzzy and verb CNNs are useful to modelling social networks when the local couplings are achieved by linguistic terms.
Literature review
The idea of CNN processors was introduced by Leon Chua and Lin Yang’s two-part, 1988 article, "Cellular Neural Networks: Theory" and "Cellular Neural Networks: Applications" in IEEE Transactions on Circuits and Systems. Leon Chua is the same professor who pioneered nonlinear-circuit theory and unified it with linear-circuit theory using Kirchhoff laws and element laws. He was also responsible for introducing nonlinear dynamics and chaos theory to Electrical Engineering in the form of the Chua circuit, a simple, canonical, realizable electrical circuit that exhibits chaoticChaotic
Chaotic is originally a Danish trading card game. It expanded to an online game in America which then became a television program based on the game. The program is seen on 4Kids TV , Jetix, The CW4Kids, Cartoon Network and Disney XD. It was brought over to the United States from Denmark by Bryan C...
behavior. In these articles, Leon Chua and Lin Yang outline the underlying mathematics behind CNN processors. They use this mathematical model to demonstrate, for a specific CNN implementation, that if the inputs are static, the processing units will converge, and can be used to perform useful calculations. They then suggest one of the first applications of CNN processors: image processing and pattern recognition, which is still the largest application to this date. Leon Chua is still active in CNN research and publishes many of his articles in the International Journal of Bifurcation and Chaos
International Journal of Bifurcation and Chaos
International Journal of Bifurcation and Chaos is a journal that has been published by World Scientific since its founding in 1991. It covers chaos and nonlinear science in a diverse range of fields in Applied Sciences, such as astronomy and zoology, as well as Engineering, such as in aerospace...
, of which he is an editor. Both IEEE Transactions on Circuits and Systems and the International Journal of Bifurcation also contain a variety of useful articles on CNN processors authored by other knowledgeable researchers. The former tends to focus on new CNN architectures and the latter more on the dynamical aspects of CNN processors.
Another key article is Tamas Roska and Leon Chua’s, 1993 article, "The CNN Universal Machine: An Analogic Array Computer", where the first algorithmically programmable, analog CNN processor was introduced to the engineering research community. The multi-national effort was funded by the Office of Naval Research, the National Science Foundation, and the Hungarian Academy of Sciences, and researched by the Hungarian Academy of Sciences and the University of California. This article proved that CNN processors were producible, and provided researchers a physical platform to test their CNN theories. After this article, companies started to invest into larger, more capable processors, based on the same basic architecture as the CNN Universal Processor. Tamas Roska is another key contributor to Cellular Neural Networks. His name is often associated with biologically inspired information processing platforms and algorithms, and he has published numerous key articles and has been involved with companies and research institutions developing CNN technology.
There are several overviews of CNN processors. One of the better references is a paper, "Cellular Neural Networks: A Review" written for the Neural Nets WIRN Vietri 1993, by Valerio Cimagalli and Marco Balsi. This paper is beneficial because it provides definitions, CNN types, dynamics, implementations, and applications in a relatively small, readable document. There is also a book, "Cellular Neural Networks and Visual Computing Foundations and Applications", written by Leon Chua and Tamas Roska. This reference is valuable because it provides examples and exercise to help illustrates points, which is uncommon in papers and journal articles. This book covers many different aspects of CNN processors and can serve as a textbook for a Masters or PhD course. These two references are invaluable since they manage to organize the vast amount of CNN literature into a coherent framework.
The best place for CNN literature is from the "International Workshop on Cellular Neural Networks and Their Applications" proceedings. The proceedings are available online, via IEEE Xplore, for conferences held in 1990, 1992, 1994, 1996, 1998, 2000, 2002, 2005, and 2006. There is also a workshop being held on July 14–16 in Santiago de Composetela, Spain. Topics include theory, design, applications, algorithms, physical implementations, and programming/training methods. For an understanding of the analog semiconductor based CNN technology, AnaLogic Computers has their product line, in addition to their published articles available on their homepage and their publication list. They also have information on other CNN technologies such as optical computing. Many of the commonly used functions have already been implemented using CNN processors. A good reference point for some of these can be found in image processing libraries for CNN based visual computers such as Analogic’s CNN based systems.
Related processing architectures
CNN processors could be thought hybrid between ANNArtificial neural network
An artificial neural network , usually called neural network , is a mathematical model or computational model that is inspired by the structure and/or functional aspects of biological neural networks. A neural network consists of an interconnected group of artificial neurons, and it processes...
and CA (Continuous Automata). The processing units off CNN and NN are similar. In both cases, the processor units are multi-input, dynamical systems, and the behavior of the overall systems is driven primarily through the weights of the processing unit’s linear interconnect. The main discriminator is that in CNN processors, connections are made locally, whereas in ANN, connections are global. For example neurons in one layer are fully connected to another layer in feed-forward NN and all the neurons are fully interconnected in Hopfield networks. In ANN, it the weights contain information on the processing system’s previous state or feedback, but in CNN processors, the weights are used to determine the dynamics of the system. Furthermore, due to the high interconnectivity of ANN, they tend not exploit locality in either the data set or the processing and as a result, they usually are highly redundant systems that allow for robust, fault-tolerant behavior without catastrophic errors. A cross between an ANN and a CNN processor is a Ratio Memory CNN (RMCNN). In RMCNN processors, the cell interconnect is local and topologically-invariant, but the weights are used to store previous states and not to control dynamics. The weights of the cells are modified during some learning state creating long-term memory.
The topology and dynamics of CNN processors closely resembles that of CA. Like most CNN processors, CA consists of a fixed-number of identical processors that are spatially-discrete and topologically-uniform. The difference is that most CNN processors are continuous-valued whereas CA has discrete-values. Furthermore the CNN processor cell’s behavior is defined via some non-linear function whereas CA processor cells are defined by some state machine. However, there are some exceptions. Continuous Valued Cellular Automata or Continuous Automata are CA with continuous resolution. Depending on how the Continuous Automata is specified, it can also be a CNN. There is also Continuous Spatial Automata, which consists of an infinite number of spatially-continuous, continuous-valued automata. There is considerable work being performed in this field since continuous spaces are easier to mathematically model than discrete spaces, thus allowing a more quantitative approach as opposed to an empirical approach taken by some researchers of cellular automata. Continuous Spatial Automata processors can be physically realized though an unconventional information processing platform such as chemical computers. Furthermore, it is conceivable that large CNN processors compared to the resolution of the input and output can be modeled as a Continuous Spatial Automata.
Model of computation
The dynamical behaviors of CNN processors can be expressed mathematically as a series of ordinary differential equations, where each equation represents the state of an individual processing unit. The behavior of the entire CNN processor is defined by its initial conditions, the inputs, the cell interconnect (topology and weights), and the cells themselves. One possible use of CNN processors is to generate and respond to signals of specific dynamical properties. For example, CNN processors have been used to generate multi-scroll chaos, synchronize with chaotic systems, and exhibit multi-level hysterisis. CNN processors are designed specifically to solve local, low-level, processor intensive problems expressed as a function of space and time. For example, CNN processors can be used to implement high-pass and low-pass filters and morphological operators. They can also be used to approximate a wide range of Partial Differential Equations (PDE) such as heat dissipation and wave propagation.CNN processors can be used as Reaction-Diffusion (RD) processors. RD processors are spatially-invariant, topologically-invariant, analog, parallel processors characterized by reactions, where two agents can combine to create a third agent, and diffusions, the spreading of agents. RD processors are typically implemented through chemicals in a Petri dish (processor), light (input), and a camera (output) however RD processors can also be implemented through a multilayer CNN processor. RD processors can be used to create Voronoi diagrams and perform skeletonisation. The main difference between the chemical implementation and the CNN implementation is that CNN implementations are considerably faster their chemical counterparts and chemical processors are spatially-continuous whereas the CNN processors are spatially-discrete. The most researched RD processor, Belousov-Zhabotinsky (BZ) processors, has already been simulated using a four-layer CNN processors and has been implemented in a semiconductor.
Like CA, computations can be performed through the generation and propagation of signals that either grow or change over time. Computations can occur within a signal or can occur through the interaction between signals. One type of processing, which uses signals and is gaining momentum is wave processing, which involves the generation, expanding, and eventual collision of waves. Wave processing can be used to measure distances and find optimal paths. Computations can also occur through particles, gliders, solitions, and filterons localized structures that maintain their shape and velocity. Given how these structures interact/collide with each other and with static signals, they can be used to store information as states and implement different Boolean functions. Computations can also occur between complex, potentially growing or evolving localized behavior through worms, ladders, and pixel-snakes. In addition to storing states and performing Boolean functions, these structures can interact, create, and destroy static structures.
Although CNN processors are primarily intended for analog calculations, certain types of CNN processors can implement any Boolean function, allowing simulating CA. Since some CA are Universal Turing machine
Universal Turing machine
In computer science, a universal Turing machine is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simulated as well as the input thereof from its own tape. Alan...
s (UTM), capable of simulating any algorithm can be performed on processors based on the von Neumann architecture, that makes this type of CNN processors, universal CNN, a UTM. One CNN architecture consists of an additional layer, similar to the ANN solution to the problem stated by Marvin Minsky years ago. CNN processors have resulted in the simplest realization of Conway’s Game of Life and Wolfram’s Rule 110, the simplest, known universal Turing Machine. This unique, dynamical representation of an old systems, allows researchers to apply techniques and hardware developed for CNN to better understand important CA. Furthermore, the continuous state space of CNN processors, with slight modifications that have no equivalent in Cellular Automata, creates emergent behavior never seen before.
Any information processing platform that allows the construction of arbitrary Boolean functions is called universal, and as result, this class CNN processors are commonly referred to as universal CNN processors. The original CNN processors can only perform linearly separable Boolean functions. This is essentially the same problem Marvin Minsky introduced with respect to the perceptions of the first neural networks In either case, by translating functions from digital logic or look-up table domains into the CNN domain, some functions can be considerably simplified. For example, the nine-bit, odd parity generation logic, which is typically implemented by eight nested exclusive-or gates, can also be represented by a sum function and four nested absolute value functions. Not only is there a reduction in the function complexity, but the CNN implementation parameters can be represented in the continuous, real-number domain.
There are two methods by which to select a CNN processor along with a template or weights. The first is by synthesis, which involves determine the coefficients offline. This can be done by leveraging off previous work, i.e. libraries, papers, and articles, or by mathematically deriving co that best suits the problem. The other is through training the processor. Researchers have used back-propagation and genetic algorithms to learn and perform functions. Back-propagation algorithms tend to be faster, but genetic algorithms are useful because they provide a mechanism to find a solution in a discontinuous, noisy search space.
Technology
An information processing platform remains nothing more than an intellectual exercise unless it can be implemented in hardware and integrated into a system. Although processors based on billiard balls can be interesting, unless their implementation provides advantages for a system, the only purpose they serve is as a teaching device. CNN processors have been implemented using current technology and there are plans to implement CNN processors into future technologies. They include the necessary interfaces for programming and interfacing, and have been implemented in a variety of systems. This section will provide a cursory examination of the different types CNN processors available today, their advantages and disadvantages, and the future roadmap for CNN processors.CNN processors have been implemented and are currently available as semiconductors, and there are plans to migrate CNN processors to emerging technologies in the future. Semiconductor-based CNN processors can be segmented into analog CNN processors, digital CNN processors, and CNN processors emulated using digital processors. Since analog CNN processors were the first to be developed, they will be discussed first. Analog computer
Analog computer
An analog computer is a form of computer that uses the continuously-changeable aspects of physical phenomena such as electrical, mechanical, or hydraulic quantities to model the problem being solved...
s were fairly common during the 1950 and 1960’s, but they gradually were replaced by digital computers the 1970s. Analog processors were considerably faster in certain applications such as optimizing differential equations and modeling nonlinearities, but the reason why analog computing lost favor was the lack of precision and the difficulty to configure an analog computer to solve a complex equation. Analog CNN processors share some of the same advantages as their predecessors, specifically speed. The first analog CNN processors were able to perform real-time ultra-high frame-rate (>10,000 frame/s) processing unachievable by digital processors. The analog implementation of CNN processors requires less area and consumes less power than their digital counterparts. Although the accuracy of analog CNN processors does not compare to their digital counterparts, for many applications, noise and process variances are small enough not to perceptually affect the image quality.
The first algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
ically programmable, analog CNN processor was created in 1993. It was named the CNN Universal Processor because its internal controller allowed multiple templates to be performed on the same data set, thus simulating multiple layers and allowing for universal computation. Included in the design was a single layer 8x8 CCN, interfaces, analog memory, switching logic, and software. The processor was developed in order to determine CNN processors producibility and utility. The CNN concept proved promising and by 2000, there were at least six organizations designing algorithmically programmable, analog CNN processors. This is when AnaFocus, a mixed-signal semiconductor company that was spun off the University of Seville, started with their ACE prototype CNN processor product line. Their first ACE processor contained 20x20 B/W processor units, their next ACE processor increase it to a 48x48 grayscale processor units, and their latest ACE processor contains 128x128 grayscale processor units. As time progressed, not only did the number of processing elements, their speed improved, the number of functions they can performed have increased, and a detector interface was seamlessly integrate into the silicon yielding a considerably improved interface. The ability to embed the detector interface into the CNN processor allows for real-time interaction between the sensing and processing. AnaFocus has a multilayer CASE prototype CNN processors line. The latest CASE processor is a three layer 32x32 CNN processor. Their work in CNN processors is currently culminating in their soon-to-be-released, commercially-available Eye-RIS product line that consists of all the processors, co-processors, software development kits, and support need to program and integrate an analog processor into a system.
AnaFocus is working with AnaLogic Computers, to include their CNN processors into visual systems. Founded in 2000, by many of the same researchers behind the first algorithmically programmable CNN Universal Processor, AnaLogic Computers mission is to commercialize high-speed, biologically inspired systems based on CNN processors. In 2003, AnaLogic Computers developed a PCI-X visual processor board that included the ACE 4K processor, with a Texas Instrument DSP module and a high-speed frame-grabber. This allowed CNN processing to be easily included in a desktop computer, considerably improving the usability and capability of CNN analog processors. In 2006, AnaLogic Computers developed their Bi-I Ultra High Speed Smart Camera product line, which includes the ACE 4K processor in their high-end models. The product that their developing team is now pursuing is the Bionic Eyeglass. The Bionic Eyeglass is a dual-camera, wearable platform, based on the Bi-I Ultra High Speed Smart Camera, designed to provide assistance to blind people. Some of the functions that the Bionic Eyeglass system will perform is route number recognition and color processing.
Some researchers are developed their own custom analog CNN processors. For example an analog CNN processor was developed from a research team from University degli Studi di Catania, in order to generate gaits for a hexapod robot. Researchers from National Chiao Tung University designed a RM-CNN processor to learn more about pattern learning and recognition and researcher from the National Lien-Ho Institute of Technology developed a Min Max CNN (MMCNN) processor to learn more about CNN dynamics. Given the diversity of CNN processors and the momentum that CNN research has gained, it is plausible that these unique analog CNN development efforts will be fairly common in the near future.
Despite their speed and low power consumption, there are some significant drawbacks to analog CNN processors. First, analog CNN processors can potentially create erroneous results due to environment and processes variation. In most applications, these errors are not noticeable, but there are situations where minor deviations can result in catastrophic system failures. For example, in chaotic communication, process various will change the trajectory of the system in phase space, resulting a lost of synchronicity or stability. Due to the severity of the problem, there is considerable research being performed in this field. Some researchers are optimizing templates to accommodate more variation. Other researchers are improving the semiconductor process to more closely match theoretical CNN performance. Other researchers are investigating different, potentially more robust CNN architectures. Last, there are researching developing methods to tune templates to target a specific chip and operating conditions. In other words, the templates are being optimized to match the information processing platform. Not only does process variation limit what can be done with current analog CNN processors, it is also a barrier for creating more complex processing units. Unless this process variation is resolved, ideas such as nested processing units, non-linear inputs, etc. can not be implemented in a real-time analog CNN processor. Also, the semiconductor real state for processing units limits the size of CNN processors. Currently the largest AnaVision CNN-based vision processor consists of a 4K detector, which is significantly less than the megapixel detectors found in affordable, consumer cameras. Unfortunately, feature size reductions, as depicted by Moore’s Law, will only result in minor improvements. For this reason, alternate technologies such as Resonant Tunneling Diodes and Neuron-Bipolar Junction Transistor are being explored. Also, the architecture of CNN processors is being reevaluated. For example, the Star-CNN processors, where one analog multiplier is time-shared between multiple processor units, has been proposed and is expected to result in processor unit reduction size of eighty percent.
Although not nearly as fast and energy efficient, digital CNN processors do not share the problems of process variation and feature size as their analog counterparts. This allows digital CNN processors to included nested processor units, non-linearities, etc. In addition, digital CNN are more flexible, cost less and are easier to integrate. The most common implementation of digital CNN processors uses an FPGA. Eutecus, founded in 2002 and operating in Berkley, provides intellectual property that can be synthesized into an Altera FPGA. Their digital 320x280, FPGA-based CNN processors run at 30 frame/s and there are plans to make a fast digital ASIC. Eustecus is a strategic partner of AnaLogic computers, and their FPGA designs can be found in several of AnaLogic’s products. Eutecus is also developing software libraries to perform tasks including but not limited to video analytics for the video security market, feature classification, multi-target tracking, signal and image processing and flow processing. Many of these routines are derived using CNN-like processing. For those wanting to perform CNN simulations for prototyping, low-speed applications, or research, there are several options. First, there are precise CNN emulation software packages like SCNN 2000. If the speed is prohibitive, there are mathematical techniques, such as Jacobi’s Iterative Method or Forward-Backward Recursions that can be used to derive the steady state solution of a CNN processor. These can be performed by any mathematics tool, such as Matlab. Last, digital CNN processors can be emulated on highly-parallel, application-specific processors, specifically graphics processors. Implementing neural networks using graphics processors is an understood by the research community and it would not be a stretch to implement a CNN processor.
Researchers are also perusing alternate technologies for CNN processors. Although current CNN processors circumvent some of the problems associated with their digital counterparts, they do share some of the same long-term problems common to all semiconductor-based processors. These include, but are not limited to, speed, reliability, power-consumption, etc. AnaLogic Computers, is developing optical CNN processors, which combine optics, lasers, and biological and holographic memories. What initially was technology exploration resulted in a 500x500 CNN processor able to perform 300 giga-operations per second. Another promising technology for CNN processors is nanotechnology. One nanotechnology concept being investigated is using single electron tunneling junctions, which can be made into single-electron or high-current transistors, to create McCulloch-Pitts, CNN processing units. In summary, CNN processors have been implemented and provide value to their users. They have been able to effectively leverage the advantages and address some of the disadvantages associated with their underling technology, semiconductors. Researchers are also transitioning CNN processors into emerging technologies. Therefore, if the CNN architecture is suited for a specific information processing system, there are processors available to purchase today and will be in the foreseeable future.
Applications
The philosophy, interests, and methodologies of CNN researchers are varied. Due to the potential of the CNN architecture, this platform has attracted people from a variety of backgrounds and disciplines. Some are exploring practical implementations of CNN processors, others are using CNN processors to model physical phenomena, and there are even researchers exploring theoretical mathematical, computational, and philosophical ideas through CNN processors. This chapter briefly explores what are CNN processors and what they are being used for. Some applications are engineering related, where some known, understood behavior of CNN processors is exploited to perform a specific task, and some are scientific, where CNN processors are used to explore new and different phenomenon. Hopefully this section will illuminate that CNN processors are versatile platforms that are being used for a variety of applications.CNN processors were designed to perform image processing; specifically, the original application of CNN processors was to perform real-time ultra-high frame-rate (>10,000 frame/s) processing unachievable by digital processors needed for applications like particle detection in jet engine fluids and spark-plug detection. Currently, CNN processors can achieve up to 50,000 frames per second, and for certain applications such as missile tracking, flash detection, and spark-plug diagnostics these microprocessors have outperformed a conventional supercomputer. CNN processors lend themselves to local, low-level, processor intensive operations and have been used in feature extraction, level and gain adjustments, color constancy detection, contrast enhancement, deconvolution, image compression, motion estimation, image encoding, image decoding, image segmentation, orientation preference maps, pattern learning/recognition, multi-target tracking, image stabilization, resolution enhancement, image deformations and mapping, image inpainting, optical flow, contouring, moving object detection, axis of symmetry detection, and image fusion.
Due to their processing capabilities and flexibility, CNN processors have been used or has been prototyped for novel field applications such as flame analysis for monitoring combustion at a waste incinerator, mine-detection using infrared imagery, calorimeter cluster peak for high energy physics, anomaly detection in potential field maps for geophysics, laser dot detection, metal inspection for detecting manufacturing defects, and seismic horizon picking. They have also been used to perform biometric functions such as fingerprint recognition, vein feature extraction, face tracking, and generating visual stimuli via emergent patterns to gauge perceptual resonances. CNN processors have been used for medical and biological research in performing automated nucleated cell counting for detecting hyperplasia, segment images into anatomically and pathologically meaningful regions, measuring and quantifying cardiac function, measure the timing of neurons, detecting brain abnormalities that would lead to seizers. One potential future application of CNN microprocessors is to combine them with the DNA microarrays to allow for a near-real time DNA analysis of hundreds of thousands of different DNA sequences. Currently, the major bottleneck of this DNA microarray analysis is the amount of time needed to process data in the form of images, and using a CNN microprocessor, researchers have reduced the amount of time needed to perform this calculation to 7ms.
CNN processors have also been used to generate and analyze patterns and textures. One motivation was to use CNN processors to understand pattern generation in natural systems. They were used to generate Turing patterns in order to understand the situations in which they form, the different types of patterns which can emerge, and the presence of defects or asymmetries. Also, CNN processors were used to approximate pattern generation systems that create stationary fronts, spatio-temporal patterns oscillating in time, hysteresis, memory, and hetergenity. Furthermore, pattern generation was used to aid high-performance image generation and compression via real-time generation of stochastic and coarse-grained biological patterns, texture boundary detection, and pattern and texture recognition and classification.
Control and Actuator Systems
There is an ongoing effort to incorporate, CNN processors into sensory-computing-actuating machines as part of the emerging field of Cellular Machines. The basic premise is to create an integrated system that uses CNN processors for the sensory signal processing and potentially the decision making and control. The reason is that CNN processors can provide a low power, small size, and eventually low cost computing and actuating system suited for that type of system []. These Cellular Machine will eventually create a Sensor-Actuator Network (SAN), a type of Mobile Ad Hoc Networks (MANET) which can be used for military intelligence gathering, surveillance of inhospitable environments, maintenance of large areas, planetary exploration, etc.
CNN processors have been proven versatile enough for some control functions. The have been used as associative memories, optimize function via genetic algorithm, measuring distances, optimal path finding in a complex, dynamic environment, and theoretically be used to learn and associate complex stimuli. They have also been used to create antonymous gaits and low-level motor for robotic nematodes, spiders, and lamprey gaits using a Central Pattern Generator (CPG). They were able to function using only feedback from the environment, allowing for a robust, flexible, biologically inspired robot motor system. CNN-based systems were able to operate in different environments and still function if some of the processing units were disabled.
The variety of dynamical behavior seen in CNN processors make them intriguing for communication systems. Chaotic communications using CNN processors is being researched due their potential low power consumption, robustness and spread spectrum features. The premise behind chaotic communication is to used a chaotic signal for the carrier way and to use chaotic phase synchronization to reconstruct the message. CNN processors can be used on both the transmitter and receiver end to encode and decode the message. They can also be used for data encryption and decryption, source authentication through watermarking, detecting of complex patterns in spectrogram images (sound processing), and transient spectral signals detection.
CNN processors are neuromorphic processors, meaning that they emulate certain aspects of biological neural networks. The original CNN processors were based on mammalian retinas, which consist of a layer of photodetectors connected to several layers of locally-coupled neurons. This makes CNN processors part of an interdisciplinary research area whose goal is to design systems that leverage knowledge and ideas from neuroscience and contribute back via real-world validation of theories. CNN processors have implemented a real-time system that replicates mammalian retinas, validating that the original CNN architecture modeled the correct aspects of biological neural networks used to perform. However, CNN processors are not only limited to verifying biological neural networks associated with vision processing; they have been used to simulate dynamic activity seen in mammalian neural networks found in the olfactory bulb and locust antennal lobe, responsible for pre-processing sensory information to detect differences in repeating patterns.
CNN processors are being used to understand systems that can be modeled using simple, coupled units, such as living cells, biological networks, physiological systems, and ecosystems. The CNN architecture captures some of the dynamics often seen in nature and is simple enough to analyze and conduct experiments. They are also being for stochastic simulation techniques, which allows scientists to explore spin problems, population dynamics modes, lattice gas models, percolation, etc. Other simulation includes heat transfer, mechanical vibrating systems, protein production, Josephson Transmission Line (JTL), seismic wave propagation, and geothermal structures.
The 3D (Three Dimensional) CNN have been used to prove as complex shapes are emergent phenomena establishing a link beetwen art, dynamical systems and VLSI technology.
CNN processors have been used to research a variety of mathematical concepts, such as researching non-equilibrium systems, constructing non-linear systems of arbitrary complexity using a collection of simple, well-understood dynamic systems, studying emergent chaotic dynamics, generating chaotic signals, and in general discovering new dynamic behavior. They are often used in researching systemics, a trandisiplinary, scientific field that researches natural systems. Their goal is to develop a conceptual and mathematical framework necessary to analyze, model, and understand systems, including, but are not limited to, atomic, mechanical, molecular, chemical, biological, ecological, social and economic systems. Topics explore are emergences, collective behavior, local activity and its impact on global behavior, and quantifying the complexity of an approximately spatially and topologically invariant system. Although another measure of complexity many not make some people enthusiastic (Seth Lloyd, a professor from Massachusetts Institute of Technology (MIT), has identified 32 different definitions of complexity), it can be potentially be mathematically analyze systems such as economic and social systems.