Artificial intelligence tools can aid sensor systems
3. Fuzzy logic
A disadvantage of ordinary rule-based expert systems is that they cannot handle new situations not covered explicitly in their knowledge bases (that is, situations not fitting exactly those described in the “IF” parts of the rules). These rule-based systems are unable to produce conclusions when such situations are encountered. They are therefore regarded as shallow systems which fail in a “brittle” manner, rather than exhibit a gradual reduction in performance when faced with increasingly unfamiliar problems, as human experts would. 
The use of fuzzy logic,  which reflects the qualitative and inexact nature of human reasoning, can enable expert systems to be more resilient. With fuzzy logic, the precise value of a variable is replaced by a linguistic description, the meaning of which is represented by a fuzzy set, and inferencing is carried out based on this representation. For example, an input from a sensor system of 20 can be replaced by “normal” as the linguistic description of the variable “sensor input.” A fuzzy set defining the term “normal sensor input” might be:
normal sensor input = 0.0/below 10 widgets per minute +0.5/10−15 widgets per minute +1.0/15−25 widgets per minute +0.5/25−30 widgets per minute +0.0/above 30 widgets per minute.
The values 0.0, 0.5, and 1.0 are the degrees or grades of membership of the sensor ranges below 10 (above 30), 10−15 (25−30), and 15−25 to the given fuzzy set. A grade of membership equal to 1 indicates full membership, and a null grade of membership corresponds to total non-membership.
Knowledge in an expert system employing fuzzy logic can be expressed as qualitative statements (or fuzzy rules), such as, “If the input from the room temperature sensor is normal, then set the heat input to normal.” A reasoning procedure known as the compositional rule of inference, which is the equivalent of the modus-ponens rule in rule-based expert systems, enables conclusions to be drawn by generalization (extrapolation or interpolation) from the qualitative information stored in the knowledge base.  For instance, when a sensor input is detected to be “slightly below normal,” a controlling fuzzy expert system might deduce that the sensor inputs should be set to “slightly above normal.” Note that this conclusion might not have been contained in any of the fuzzy rules stored in the system.
Fuzzy expert systems (FES) use fuzzy logic to handle the uncertainties generated by incomplete or partially corrupt data. The technique uses the mathematical theory of fuzzy sets to simulate human reasoning. Humans can easily deal with ambiguity (areas of grey) in terms of decision making, yet machines find it difficult. 
Figure 2 shows an architecture for a fuzzy logic-based controller.
Fuzzy logic has many applications in sensor systems where the domain knowledge can be imprecise. Fuzzy logic is well suited where imprecision is inherent due to imprecise limits between structures or objects, limited resolution, numerical reconstruction methods, and image filtering. For example, applications in structural object recognition and scene interpretation have been developed using fuzzy sets within expert systems. Fuzzy expert systems are suitable for applications that require an ability to handle uncertain and imprecise situations. They do not have the ability to learn as the values within the system are preset and cannot be changed. [Further information on fuzzy logic and fuzzy sets can be found in Refs. 52, 53, 54.]
Notable successes have been achieved in the areas of:
- Cooperative robots 
- Mobile robots 
- Prediction of sensory properties 
- Supply chain management 
- Welding. [28, 55]
[Further information on fuzzy logic and fuzzy sets can be found in Ref. 60.]
4. Automatic knowledge acquisition
Getting domain knowledge to build into a knowledge base can be complicated and time consuming. It can be a bottleneck in constructing an expert system.  Automatic knowledge acquisition techniques were developed to address this, for example, in the form of IF–THEN rules (or an equivalent decision tree). This sort of learning program usually requires a set of examples as a learning input. Each example is characterized by the values of a number of attributes and the class to which they belong.
One approach for example is through a process of “dividing-and-conquering,” where attributes are selected according to some strategy (for example, to maximize the information gain) to divide the original example set into subsets, and the inductive learning program builds a decision tree that correctly classifies the given example set. The tree represents the knowledge generalized from the specific examples in the set. This can subsequently be used to handle situations not explicitly covered by the example set.
In another approach known as the “covering approach,” the inductive learning program attempts to find groups of attributes uniquely shared by examples in given classes and forms rules with the IF part as conjunctions of those attributes and the THEN part as the classes. The program removes correctly classified examples from consideration and stops when rules have been formed to classify all examples in the given set. 
Another approach is to use logic programming instead of propositional logic to describe examples and represent new concepts. That approach employs the more powerful predicate logic to represent training examples and background knowledge and to express new concepts. Predicate logic permits the use of different forms of training examples and background knowledge. It enables the results of the induction process (the induced concepts) to be described as general first-order clauses with variables and not just as zero-order propositional clauses made up of attribute-value pairs. There are two main types of these systems, the first based on the top-down generalization/specialization method, and the second on the principle of inverse resolution. 
A number of learning programs have been developed, for example ID3,  which is a divide-and-conquer program; the AQ program,  which follows the covering approach; the FOIL program,  which is an ILP system adopting the generalization/specialization method; and the GOLEM program,  which is an ILP system based on inverse resolution. Although most programs only generate crisp decision rules, algorithms have also been developed to produce fuzzy rules. 
The requirement for a set of examples in a rigid format (with known attributes and of known classes) has been easily satisfied by requirements in sensor systems and networks so that automatic learning has been widely used in sensor systems. This sort of learning is most suitable for problems where attributes have discrete or symbolic values rather than those with continuous-valued attributes as in many sensor systems problems. [More information is in 63, 64, 65.]
Some examples of applications of inductive learning are:
- Laser cutting 
- Mine detection 
- Robotics. 
5. Neural networks
Neural networks can also capture domain knowledge from examples. However, they do not archive the acquired knowledge in an explicit form such as rules or decision trees, and they can readily handle both continuous and discrete data.  They also have a good generalization capability as with fuzzy expert systems.
A neural network is a computational model of the brain. Neural network models usually assume that computation is distributed over several simple units called neurons, which are interconnected and operate in parallel. (Hence, neural networks are also called parallel-distributed-processing systems or connectionist systems.)
The most popular neural network is the multi-layer perceptron, which is a feedforward network: all signals flow in one direction from the input to the output of the network. Feedforward networks can perform static mapping between an input space and an output space: the output at a given instant is a function only of the input at that instant. Recurrent networks, where the outputs of some neurons are fed back to the same neurons or to neurons in layers before them, are said to have a dynamic memory: the output of such networks at a given instant reflects the current input as well as previous inputs and outputs.
Implicit “knowledge” is built into a neural network by training it. Some neural networks can be trained by being presented with typical input patterns and the corresponding expected output patterns. The error between the actual and expected outputs is used to modify the strengths, or weights, of the connections between the neurons. This method of training is known as supervised training. In a multi-layer perceptron, the back-propagation algorithm for supervised training is often adopted to propagate the error from the output neurons and compute the weight modifications for the neurons in the hidden layers.
Some neural networks are trained in an unsupervised mode, where only the input patterns are provided during training and the networks learn automatically to cluster them in groups with similar features. [For more information on neural networks, see Refs. 69, 70, 71.]
Artificial neural networks (ANNs) typically have inputs and outputs, with processing within hidden layers in between. Inputs are independent variables and outputs are dependent. ANNs are flexible mathematical functions with configurable internal parameters. To accurately represent complicated relationships, these parameters are adjusted through a learning algorithm. In “supervised” learning, examples of inputs and corresponding desired outputs are simultaneously presented to networks, which iteratively self-adjust to accurately represent as many examples as possible.
Once trained, ANNs can accept new inputs and attempt to predict accurate outputs. To produce an output, the network simply performs function evaluation. The only assumption is that there exists some continuous functional relationship between input and output data. Neural networks can be employed as mapping devices, pattern classifiers, or pattern completers (auto-associative content addressable memories and pattern associators). Like expert systems, they have found a wide spectrum of applications in almost all areas of sensor systems, addressing problems ranging from modeling, prediction, control, classification, and pattern recognition, to data association, clustering, signal processing, and optimization. Some recent application examples are:
- Feature recognition 
- Heat exchangers 
- Inspection of soldering joints 
- Optimizing spot welding parameters 
- Power 
- Tactile displays 
- Vehicle sensor systems. 
6. Genetic algorithms
A genetic algorithm is a stochastic optimization procedure inspired by natural evolution.  A genetic algorithm can yield the global optimum solution in a complex multi-modal search space without requiring specific knowledge about the problem to be solved. However, for a genetic algorithm to be applicable, potential solutions to a given problem must be representable as strings of numbers (usually binary) known as chromosomes, and there must be a means of determining the goodness, or fitness, of each chromosome. A genetic algorithm operates on a group or population of chromosomes at a time, iteratively applying genetically based operators such as cross-over and mutation to produce fitter populations containing better solution chromosomes.
The algorithm normally starts by creating an initial population of chromosomes using a random number generator. It then evaluates each chromosome. The fitness values of the chromosomes are used in the selection of chromosomes for subsequent operations. After the cross-over and mutation operations, a new population is obtained and the cycle is repeated with the evaluation of that population. [For further information on genetic algorithms, see Refs. 79, 80, 81.]
Genetic algorithms have found applications in sensor systems problems involving complex combinatorial or multi-parameter optimization. Some recent examples of those applications are:
- Assembly 
- Assembly line balancing 
- Fault diagnosis 
- Health monitoring 
- Power steering.