Fuzzy expert system learning network
This application is a continuation in part of U.S. patent application Ser. No. 08/138,847, filed on Oct. 19, 1993, now abandoned. 
    
    
     1. REFERENCES 
     2. BACKGROUND OF THE INVENTION 
     Prior art includes two broad technologies for implementing and manipulating knowledge based systems on machines: expert systems and artificial neural networks. The basic concept underlying an expert system is that a collection of domain specific IF-THEN rules are used to manipulate input data to derive a solution. In general, one or more human experts are consulted about how to solve problems in the target domain, e.g., chemical process control [Chester, Lamb, and Dhurjati, &#34;Rule-Based Computer Alarm Analysis in Chemical Process Plants,&#34; Proceedings of the Seventh Annual Conference on Computer Technology, March, 1984, pp. 158-163] or diagnosis of cardiovascular disease [Kaihara, Koyama, Minamikawa, and Yasaka, &#34;A Rule-Based Physicians&#39; Consultation System for Cardiovascular Disease,&#34; Proceedings of the International Conference on Cybernetics and Society, November, 1978, pp. 85-88]. Through these consultations, general rules about how the data associated with a particular problem should be manipulated are developed. These rules are eventually programmed into the machine so that, given a set of input data, the formulated rules can be applied to the data to yield a solution. As this discussion indicates, expert systems are generally associated with top-down knowledge engineering or deductive reasoning. In other words, to implement an expert system one must first have some previous information indicating how a problem should be solved or a model describing the problem&#39;s underlying process in terms of a set of rules. 
     In contrast to expert systems, artificial neural networks are generally associated with bottom-up or inductive learning. To construct a artificial neural network, one first constructs a network of &#34;neurons&#34; (processing elements or nodes) that receive input and produce an output in response to the input. In most artificial neural networks, the neurons assign differing weights to each input, combining the weighted inputs to produce an output. Once the basic artificial neural network is constructed, it is trained by providing it data representative of known problems and their known solutions. During this initial presentation process, the network repeatedly adjusts its weight values in accordance with predetermined feedback rules so that eventually it can produce an acceptable output for each set of known inputs. In this sense, the artificial neural network &#34;learns&#34; from the set of known problems and solutions. 
     2.1 Expert Systems 
     As used in this specification, an &#34;expert system&#34; is defined as comprising three functional and interacting components: a rule-base, an inference engine, and a cache. See FIG. 1. The rule-base 105 is a collection of rules which direct the expert system&#39;s manipulation of input data. The cache 110 provides a dynamic working memory for the expert system and the inference engine 115 applies incoming data to the rules within the rule-base and updates the state of the cache. Each of these components is discussed further below. 
     At present, there are two principal types of expert systems known in the prior art. The first, and more traditional, is the crisp expert system and the second is the fuzzy expert system. The terms &#34;crisp&#34; and &#34;fuzzy&#34; refer to the types of rules contained in the expert system&#39;s rule-base (the collection of rules used by the expert system). 
     A crisp rule has the form: 
     If a then b (cf), 
     where a is the antecedent, b the consequent, and cf the certainty factor. For example, a human expert in the area of auto repair may posit a rule that 75% of the time if a car&#39;s wheels squeak then the brake pads need replacement. Thus, a crisp rule may be established indicating that if the brakes squeak (a) then the brake pads need replacing (b) with a certainty factor of 0.75 (cf). Certainty factors relate the quality, or certainty, of the assertion and, for the purposes of this discussion, are assumed to be restricted to the range [-1,1]--although the present invention may be practiced with other certainty factors. 
     Fuzzy rules and their associated fuzzy expert systems constitute an important aspect of the invention and are discussed in more detail below. 
     2.1(a) Fuzzy Rule Base 
     In contrast to a crisp rule with its implied absolute membership of the antecedent (the brakes either squeak, in which case the rule above would declare the brake pads need replacement with a certainty of 0.75 or they don&#39;t, in which case the rule would not activate), fuzzy rules employ linguistic variables to describe the relative membership of their antecedent. A linguistic variable has, as its value, words rather than numbers. Thus, the linguistic variable &#34;pressure&#34; might have the values of very --  low, low, medium, and high. These four states are elements of the fuzzy set that describes the linguistic variable pressure. 
     Curves that relate each value of a linguistic variable to a measure (e.g., very --  low, low, medium, and high to physical values of pressure) are known as &#34;membership functions.&#34; Membership functions represent a generalization in the concept of set membership; larger values denote higher degrees of set membership. FIG. 2 shows one possible set of membership functions for the linguistic variable &#34;pressure.&#34; Here, a measured pressure of p 1  has a membership of m vl  in the value very --  low and a membership of m l  in the value low. Hence, the membership value of the antecedent variable (e.g., pressure) is no longer binary (YES/NO or 1/0) as it is in a crisp rule, it can now assume a spectrum of values defined by its &#34;membership function.&#34; 
     Throughout this specification, membership functions are assumed to be symmetric triangular functions and normalized to the range [0,1]. The present invention may be practiced however with other values. For instance, membership functions could be trapezoidal or range between [-2,2]. Having noted this, it is important to realize that membership grades are not probabilities. One immediate difference is that the summation of probabilities on a finite universal set must equal one. There is no such requirement for membership grades. 
     A fuzzy rule, as used in this specification, is an IF-THEN rule in which the antecedent components are linguistic variables. (The term fuzzy relates to the use of linguistic variables). The form of such a rule, say rule-i, is: 
     
         If x.sub.1 is A.sub.i1 and . . . and x.sub.m is A.sub.im then y is c.sub.i. 
    
     Here x 1  . . . x m  represent real valued measures of `m` linguistic variables (e.g., pressure, temperature, etc. ), A i1  . . . A im  represent the antecedent membership functions for rule-i (e.g., symmetric triangular functions as shown in FIG. 2), y represents a real valued output variable, and c i  represents the value assigned to y as a result of the rule. Output values are assumed to be restricted to the range [0,1] although other ranges may be used without departing from the inventive scope of the present invention. 
     A collection of fuzzy rules for use by an expert system, constitutes a fuzzy rule-base. In nearly all expert systems, rules are constructed to operate in a feed-forward manner in which no cycles occur among the expert system rules. That is, while the output of a rule in one layer may serve as an antecedent for a rule in a subsequent layer, the outputs for a rule in a subsequent layer do not serve as antecedents for rules in preceding layers. 
     2.1(b) Cache 
     The second element in many expert systems is known as the cache or working memory. Such a cache is figuratively illustrated as element 110 in FIG. 1. A cache functions as the dynamic working memory of the expert system. The current state of any active rule is stored in the cache along with information about the validity of the rule&#39;s antecedents (e.g., measured values of pressure or temperature). 
     2.1(c) Inference Engine 
     The inference engine is that part of the expert system that draws conclusions by manipulating rules from the rule-base and facts from the cache and updates the current values in the cache during processing. Even though it is usually superimposed on a clocked computer, this cache updating is naturally an event-driven computation. 
     In a fuzzy expert system the inference engine manipulates collections of fuzzy rules (also referred to as inference rules) according to a &#34;compositional rule of inference.&#34; A compositional rule of inference is a procedure which describes how to combine (composite) different linguistic variables. 
     Because the combination of a number of linguistic variables is itself a linguistic variable, application of the compositional rule of inference needs to be followed by a technique to &#34;defuzzify&#34; its result--to generate a single output value which can, for example, be used to control a mechanical device. This latter procedure is known as defuzzification. The elementary operations employed in most compositional rules of inference, and defuzzification, are the arithmetic MAXIMUM and MINIMUM. 
     In FIG. 3, two hypothetical inference rules involving three variables are used to illustrate the compositional rule of inference and defuzzification methods used by a typical fuzzy expert system&#39;s inference engine. In this example the linguistic input variables are x 1  and x 2 , the linguistic output variable is y, and the `crisp` output value is denoted by c. (Example membership functions for the linguistic variables zero, small, medium and medium --  large are shown in FIG. 3.) The fuzzy inference rules in this example are: 
     Rule 1: If x 1  is small and x 2  is small then y is medium --  large 
     Rule 2: If x 1  is zero and x 2  is small then y is medium 
     Application of x 1  and x 2  to rule 1 results in the shaded portion of the rule&#39;s consequent membership function, medium --  large 305, becoming activated: 1) input variable x 1  has a membership value α in the linguistic variable small 300; 2) this value maps to a value of α in rule 1&#39;s output linguistic variable medium --  large 305; 3) input variable x 2  has a membership value β in the linguistic variable small 300; 4) this value maps to a value of β in rule 1&#39;s output linguistic variable medium --  large 305; 5) the minimum of the rule&#39;s two antecedent values is used as the rule&#39;s output (vertically striped region of rule 1&#39;s consequent membership function 305). 
     In a similar manner, application of x 1  and x 2  to rule 2 results in the shaded portion of rule 2&#39;s consequent membership function, medium 315, becoming activated--horizontally striped region of rule 2&#39;s consequent membership function 315. Combining the output from rules 1 and 2 results in a temporary linguistic variable, fuzzy --  result 320. (Temporary because it is only an intermediate step in the calculation and need not be stored in the cache for later use.) 
     This result is now defuzzified to generate a final, unambiguous, output c. One common defuzzification technique is the &#34;centroid method.&#34; In this method the abscissa value corresponding to the center of gravity of the overlap region (the region common to both rule 1 and rule 2 output) is taken as the final output, c. 
     Of course the above example is an extremely simple one. In most fuzzy expert systems the number of antecedents will be much greater than two and the output state of one rule may serve as the input antecedent for another. In such systems, the modification of one antecedent almost always involves a recalculation of several other antecedents, an updating of these antecedent states in the cache, and a reapplication of the rules in the rule base to the updated antecedents. 
     2.2 Artificial Neural Networks 
     In contrast to the rule-based expert systems described above, most artificial neural networks consist of a number of artificial neural objects, sometimes referred to as nodes, processing units, or neurons, which receive input data, process that data, and generate an output signal. In such systems, the key to solving a problem lies not in a rule proclaimed by an expert but in the aggregate processing function of the many neurons which comprise the network. 
     As used herein, a network is a directed graph with weighted edges as shown in FIG. 4. In this example, input signals are applied to three nodes which, after processing, relay their results to other nodes. These nodes, in turn, process their input signals and pass along their results to still other nodes. The final output signal, in this example, is a combination of output from two nodes. A weighted link such as w 400 →410, connecting a source node 400 and a destination node 410, modifies the source node&#39;s 400 output signal before it is processed by the destination node 410. 
     In object-oriented programming, an object is characterized by a set of attributes describing its current state and a set of operations which can be applied to that object. In a similar fashion, an &#34;artificial neural object&#34; (ANO) may be defined as an artificial neuron--nodes 400 through 425 in FIG. 4--with its attendant states (e.g., idle or processing), input-output (I/O) facilities, and processes: incoming connections and connection strengths, combining function, output function, outgoing connections, and possibly a learning function, together with a communications facility to signal changes in processing state to adjacent nodes in the network. Precise specification of a communication facility for an ANO is dependent on the learning method imposed on the network and possibly other application-specific considerations. The exact nature of the combining and output functions is likewise variable. 
     A general, high-level description of an ANO&#39;s operational behavior is as follows. First, input signals are applied to the node and, possibly, modified by the weight of the connections over which they arrive. Next, the node&#39;s combining function combines the incoming signals to generate a value which becomes the node&#39;s new internal state value. Thirdly, the node&#39;s output function transforms the new internal state value to a possibly new output value which, through the node&#39;s communication facilities, it sends to other nodes for which it is the source of input. Based on other features of the network, a learning function may be employed to modify the node&#39;s input signal weights. 
     There is one specific type of ANO that is widely used in prior art artificial neural networks. The combining function for this ANO is the taking of a weighted sum of the inputs; the output function for this ANO is a sigmoidal (logistic) squashing function applied to the value of the weighted sums of the inputs. For the purposes of this specification, an ANO having a weighted sum combining function and a sigmoidal squashing output function, is referred to as an &#34;analog perceptron.&#34; 
     In addition to the characteristics of an artificial neural network already cited, the invention makes use of an event-driven architecture as described by Lacher et al. [Lacher, Hruska, and Kuncicky, &#34;Backpropagation Learning in Expert Networks,&#34; FSUCS Tech. Report, 91-015]. In general, the event-driven nature of an artificial neural network is similar in concept to that of data flow computing. In data flow computing, computational operations are ordered by the interdependencies of the data and the availability of resources rather than being specified entirely by the programmer. In other words, a computation proceeds form beginning to end based on the availability of needed data and the necessary computational resources such as a processing unit or memory. 
     2.2(a) Learning 
     As mentioned above, one important step to enabling an artificial neural network to solve a given problem is to teach the neural network by supplying it with known input with known output. During the training process, the artificial neural network learns to generate the correct output (known output) for the stimulus (known) input. 
     After enumerating the nodes in an artificial neural network, each node is assigned a &#34;weight vector&#34; whose components are the weights of its incoming edges. Each weight vector (one for each node) is a row in the network&#39;s &#34;weight matrix.&#34; The value of the weight matrix--the value of each of its elements--at any given time is called the &#34;knowledge state&#34; of the network. The &#34;weight space&#34; of a node consists of all possible weight vectors. &#34;Learning&#34; is defined as a change in the network&#39;s knowledge state. 
     As set forth above, learning implies a change in knowledge. Generally speaking, artificial neural networks are said to represent knowledge in their connections. There are two levels on which to interpret such a statement. First, given a set of connections (a network topology), knowledge is stored in the synaptic functions. This is the more usual interpretation and is usually referred to as &#34;fine&#34;  knowledge. In other words, fine knowledge is represented in an artificial neural network by the weights of the connections between the ANOs. Alternatively, the specification of just which connections exist could also fit this concept of knowledge in artificial neural networks. This is referred to as &#34;coarse&#34; knowledge. 
     Thus, coarse knowledge is captured in a network&#39;s topology, whereas fine knowledge is captured by the network&#39;s weight matrix--not merely the fact of connections but the strength of connections between different ANOs. Learning of coarse knowledge is associated with changes to the network topology while learning of fine knowledge (or knowledge refinement) involves changes to the synaptic functionalities. In either case, learning is represented by a change in the artificial neural network&#39;s configuration. 
     Fuzzy Rule 1 (If x 1  is small and x 2  is small then y is medium --  large), introduced in Section 2.1(c), may be used to illustrate the difference between coarse and fine learning. Assume that an artificial neural network is established and that numerous known-correct cases have been applied where it has been proper to assert that output variable y is medium --  large. After learning, the artificial neural network should establish a link between (1) the neurons responsible for indicating that input variables x 1  and x 2  are small and (2) the neuron responsible for indicating that output variable y is medium --  large. Establishment of this link may be referred to as &#34;coarse learning.&#34; Once coarse learning has been accomplished, the neural network must next determine what weight factors to assign to the output connecting these nodes. The determination of the exact weight factor to be applied to given inputs is referred to as &#34;fine learning.&#34; 
     Learning of coarse knowledge could be loosely interpreted as rule extraction; a considerable body of research on this topic exists independent of neural networks. Some connectionist methods have also been introduced in recent years that build or modify network topology. While these methods are mostly not directed at high-level networks, where a single connection may be assigned meaning, some of them have potential in the realm of expert networks. 
     2.2(b) Backpropagation of Error 
     As previously cited, an artificial neural network must go through a learning process before it can accurately be used to solve problems. Although several procedures are available for training artificial neural networks, one of the most widely used is the backpropagation of error or simply, the backpropagation (BP) technique. 
     Backpropagation learning, more precisely described as gradient-descent supervised learning using backpropagation of error, has had a significant impact on the field of neural networks. BP involves comparing the actual output of an ANO with a known correct value to determine the error between the two values. That error is then sent back, or backpropagated, to the neurons that provided input to the neuron for which the error was calculated. In a similar manner, errors for each of those neurons is calculated and backpropagated to their input ANOs. This is repeated until each node in a network has received its backpropagated error. 
     Once each neuron receives its backpropagation error, it has an indication of both what its output value actually is and what that output value should be. Because the error for a given neuron is essentially a vector representing the erroneous weights given to its various input values, each node can be designed to (1) determine the gradient of the error vector and (2) determine in which direction it must change its weight vector to minimize the magnitude of the error vector. In other words, each neuron can be designed to determine the change in its weight vector that would tend to minimize the magnitude of the error vector the fastest, and then to change its weight vector in that direction. By periodically receiving error vectors, calculating the fastest way to minimize the magnitude of the error vector (i.e., calculating the error vector&#39;s gradient), and altering its weight vector, the ANOs of an artificial neural network can learn how to solve various problems. 
     Because of the need to backpropagate errors, many prior art BP learning methods typically depend on a layered feed-forward architecture that implicitly defines the role of time during both operational and learning phases. In other words, most artificial neural networks using BP divide the ANOs into separate layers and backpropagate the error from each layer to its predecessor through the use of a global clock. 
     One example of a layered network is shown in FIG. 5. As illustrated, the neural network is divided into four layers: I, II, III, and IV. A known input signal is applied to layer I and the network generates an output at layer IV: (1) an input signal activates layer I which results in output from layer I; (2) output from layer I activates layer II which results in output from layer II; (3) output from layer II activates layer III which results in output from layer III; (4) output from layer III activates layer IV which results in output from layer IV. The error for each ANO in layer IV is then calculated using the known and desired output and backpropagated to layer III. This process is repeated from layer III to II and layer II to I. By implementing backpropagation in this manner these layers impose what amounts to a global clock on the entire network. 
     Another feature typical of most prior art neural networks using BP learning is that the ANOs are almost always simple analog perceptrons. Although analog perceptrons are useful for solving many problems, they are often inadequate when more complicated types of neural networks are attempted to be implemented. A recent extension of the BP technique has allowed the use of backpropagation of error learning to be applied to artificial neural networks derived from traditional (e.g., non-fuzzy) expert system rule-bases using non-analog perceptron ANOs [Lacher, Hruska, and Kuncicky, &#34;Backpropagation Learning in Expert Networks,&#34; FSUCS Tech. Report, 91-015]. 
     In summary, although BP has been widely used in the prior art as a supervised learning paradigm, it has been applied almost exclusively to (1) layered, feed-forward networks of analog perceptrons and, most recently, (2) noncyclic, event-driven, artificial neural networks derived from conventional (e.g., non-fuzzy) expert system rule-bases. 
     3. SUMMARY OF THE INVENTION 
     In the present invention, the prior an techniques discussed above are extended to allow application of the BP learning technique to artificial neural networks derived from fuzzy expert system rule-bases, including an important and nonobvious extension necessitating the definition of new operational characteristics for ANOs. A method in accordance with the invention, referred to herein as a Fuzzy Expert Network (FEN), is implemented in a programmed machine such as a computer to provide automated learning of both &#34;fine&#34; and &#34;coarse&#34; knowledge in a network of artificial neural objects (ANOs) implementing fuzzy modeling rules. 
     Through application of the FEN method, an event-driven fuzzy expert network comprising acyclically connected ANOs derived from fuzzy modelling rules may be implemented. Neural objects implement one or more fuzzy combining and defuzzification rules and use backpropagation of error techniques to implement learning. As in prior art, the FEN allows each ANO to adjust its input weight parameters--&#34;fine&#34; knowledge learning. Unlike prior art, the FEN allows each ANO to modify its internal parameters--&#34;coarse&#34; knowledge learning. This latter action means that individual ANOs have the capability to modify the parameters of the fuzzy rule upon which they are based, thus altering the shape or meaning of the fuzzy rule which the ANO implements. In this way the FEN is able to change the structure of its encoded knowledge over time, making it a more adaptable architecture for autonomous and/or adaptable control systems. 
    
    
     4. BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block-diagram representation of a typical expert system. 
     FIG. 2 is an illustrative example of a typical fuzzy rule&#39;s membership function. 
     FIG. 3 is an illustrative example of a typical fuzzy expert system&#39;s compositional rule of inference. 
     FIG. 4 is a block-diagram representation of an example artificial neural network. 
     FIG. 5 is a block-diagram representation of a typical `layered` artificial neural network. 
     FIGS. 6A, 6B, 6C and 6D show a symmetric triangular membership function of a fuzzy rule&#39;s antecedent part. 
     FIG. 7 is a block diagram representation of the invention&#39;s network structure for a fuzzy rule&#39;s antecedent part. 
     FIG. 8 is block diagram representation of the invention&#39;s &#34;defuzzification&#34; process. 
     FIG. 9 show the structure of an example two input, four rule fuzzy rule-base. 
     FIG. 10 is a block diagram representation of the inventions network structure for the fuzzy rule-base of FIG. 9. 
     FIG. 11 is a graph of the FEN&#39;s mean-square-error output, for various values of the network&#39;s learning parameters, as a function of the number of training iterations. 
     FIG. 12 is a graph of the FEN&#39;s adaptability for various values of the network&#39;s learning parameters. 
     FIG. 13 shows how an example fuzzy rule&#39;s membership function changes as a result of training (learning). 
    
    
     5. DETAILED DESCRIPTION OF SPECIFIC EMBODIMENT 
     One illustrative embodiment of the invention is described below as it might be implemented on a general purpose computer using a suitable high-level language such as C, Pascal, or Fortran. It will of course be appreciated that in the development of any such actual implementation (as in any software development project), numerous implementation-specific decisions must be made to achieve the developers&#39; specific goals, such as compliance with system- and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of software engineering for those of ordinary skill having the benefit of this disclosure. 
     Microfiche Appendix A sets out source code for one illustrative example of the invention. Microfiche Appendix A is contained on one sheet of microfilm and contains a total of 35 frames. 
     An artificial neural network in accordance with the present invention, referred to herein as a Fuzzy Expert Network (FEN), utilizes the concept of an artificial neural object (ANO) to construct a network whose structure (topology) is determined by the knowledge and logical relationships expressed in a fuzzy expert system&#39;s (fuzzy) rule-base. Unique features of the FEN include: 
     1. Definition of a set of ANOs that are both necessary and sufficient to capture the knowledge and logical relationships described in a fuzzy rule. 
     2. A method of translating a fuzzy rule to an artificial neural network composed of the invention&#39;s defined ANOs. 
     3. An ability to apply the Backpropagation (BP) learning technique to the FEN. Using BP, nodes within a FEN have the facility to modify both their output weighting factors (as done in prior art artificial neural networks) and a node&#39;s operational parameters (novel to the FEN method). This latter feature allows a FEN node to modify the semantic, or functional characteristics, of a node&#39;s combining and output functions. This latter feature enables a FEN node to adaptively (in response to supplied input/output signals) alter the way in which it processes incoming signals. This is in contrast to prior art artificial neural networks, that only modify the relative weighting factors of a node&#39;s output signals. 
     5.1 Fuzzy Modeling 
     As introduced in Section 2.1(a), the generic form of a fuzzy rule, say rule number `i` is: 
     
         Rule-i: If x.sub.1 is A.sub.i1 and . . . and x.sub.m is A.sub.im then y is c.sub.i, 
    
     where x 1  . . . x m  represent m input variables, A i1  represents rule i&#39;s antecedent membership function for input variable x 1 , A im  represents rule i&#39;s antecedent membership function for input variable x m , and c i  represents the output value assigned to output variable y as a result of rule-i. 
     The invention utilizes a widely known simplified fuzzy inference model whose fuzzy rule consequences are described with singletons (unitary real values) and whose fuzzy rule antecedent membership functions have a symmetric triangular shape as shown in FIG. 6A. In this example, membership function A ij  has an antecedent whose shape is symmetric and triangular and can, therefore, be described as the product of two linear threshold functions, A1 ij  and A2 ij . For example, if 
     
         A1.sub.ij (x.sub.j)=(((a.sub.ij (x.sub.j -b.sub.ij)+1)V0) 1), 
    
     and 
     
         A2.sub.ij (x.sub.j)=(((-a.sub.ij (x.sub.j -b.sub.ij)+1)V0) 1), 
    
     then 
     
         A.sub.ij (x.sub.j)=A1.sub.ij (x.sub.j)A2.sub.ij (x.sub.j). 
    
     Here, A1 ij  (x j ) represents one linear threshold function for rule-i&#39;s j th  input variable x j  (FIG. 6B), A2 ij  (x j ) represents a second linear threshold function for rule-i&#39;s j th  input variable x j  (FIG. 6C), a ij  is the positive gradient (slope) of rule-i&#39;s j th  input variable&#39;s (x j ) antecedent membership function, b ij  is the center value of rule-i&#39;s j th  input variable&#39;s (x j ) antecedent membership function, A ij  (x j ) is rule-i&#39;s complete antecedent membership function for input variable x j  (FIG. 6D). V represents the logical 0R operator and   represents the logical AND function. 
     5.2 Node Definitions 
     In an event-driven artificial neural network, an n-input &#34;node&#34; is defined to be a processing element consisting of the following attributes: 
     1. `N` real-valued connection strengths, one for each input signal, w 1 , . . . , w n  represented in vector notation as w=(w 1 , . . . ,w n ). 
     2. `N` real-valued input signals x 1 , . . . , x n  represented in vector notation as x=(x 1 , . . . , x n )=(z 1  w 1 , . . . , z k  w k , . . . , z n  w n ), where z k  is node k&#39;s output value. 
     3. A combining function Γ(x) that determines the node&#39;s internal state y=Γ(x), based on the its input signal and connection strength parameters. 
     4. An output function φ(y) that determines a single output value z=φ(y) from the node&#39;s internal state y. 
     If the combining function Γ(x) is the summation function and the output function φ(y) is the sigmoidal squashing function, the node is referred to as an analog perceptron. 
     With this background, a sufficient and necessary set of node (artificial neural objects) types for implementing an artificial neural network derived from a fuzzy expert system whose rule-base contains `n` rules (a fuzzy expert network) can be defined. 
     5.2(a) SUM Node 
     The SUM node&#39;s combining and output functions are defined by Γ sum  (x) and φ sum  (y) respectively where, 
     
         Γ.sub.sum (x)=y=Σ.sub.i=1→n x.sub.i φ.sub.sum (y). 
    
     For notational convenience let SUM(x)=φ sum  (Γ sum  (x)). 
     5.2(b) LINEAR THRESHOLD Node 
     The LINEAR THRESHOLD node&#39;s combining and output functions are defined by Γ lin  (x) and φ lin  (y) respectively where, ##EQU1## For notational convenience let LIN(x)=φ lin  (Γ lin  (x)). 
     5.2(c) PRODUCT Node 
     The PRODUCT node&#39;s combining and output functions are defined by Γ prod  (x) and φ prod  (y) respectively where, 
     
         Γ.sub.prod (x)=y= .sub.i=1→n x.sub.i, φ.sub.prod (y)=y. 
    
     For notational convenience let PROD(x)=φ prod  (Γ prod  (x)). 
     5.2(d) WEIGHTED-SUM-GRAVITY Node 
     The WEIGHTED-SUM-GRAVITY node is used to defuzzify the output resulting from fuzzy rule activation (refer to Section 2.1). This node&#39;s combining and output functions are defined by Γ grav  (u) and φ grav  (y) respectively where, 
     
         Γ.sub.grav (u)=y=Σ.sub.i=1→n (u.sub.i ×c.sub.i)÷Σ.sub.i=1→n u.sub.i, φ.sub.grav (y)=y, 
    
     where u represents a vector of fuzzy rule outputs (one element--u i  --for each fuzzy rule involved in the output y) and c i  represents the weight factor of rule-i&#39;s output in the final &#34;defuzzified&#34; output, φ grav  (y)=y. For notational convenience let GRAV(u)=φ grav  (Γ grav  (u)). 
     5.2(e) INPUT Node 
     The INPUT node is used as a notational convenience to represent an externally supplied input signal to the FEN. This node has no combining function and its output function φ in  (x i ) is the unitary multiplier, 
     
         φ.sub.in (x.sub.i)=x.sub.i.. 
    
     For notational convenience let INP(x i )=φ in  (x i )=x i .. 
     5.3 Building a Fuzzy Expert Network 
     Through the practice of the present invention, an artificial neural network can be constructed from any fuzzy rule-based expert system. While the details of the construction may vary somewhat from application to application, the general principle is to interconnect ANOs of the types defined in Section 5.2 to represent each rule in the fuzzy rule-base. Thus, the FEN&#39;s topology is determined by the knowledge contained in the fuzzy expert system. 
     The conversion of a fuzzy expert system rule-base to a fuzzy expert network is accomplished via a two step process. First, each fuzzy rule is decomposed into the product of two linear threshold functions as described in Section 5.1. Secondly, the appropriate fuzzy rule outputs are combined and defuzzified for each output variable defined in the original fuzzy expert system. 
     It is assumed in the following discussion that the given fuzzy expert system uses fuzzy rules whose antecedent&#39;s membership functions are 1) symmetric and triangular and 2) normalized to the range [0, 1]. Values in square brackets, e.g., [a ij  ], represent values that are eligible for modification through application of a learning method, see Section 5.4. Input variables are assumed to be restricted to the range [-1, 1]. Other values and types of antecedent membership function may be used without departing from the inventive concept of the invention. 
     5.3(a) Membership Function of the Antecedent Part 
     Using the ANO definitions introduced in Section 5.2, the two linear threshold functions that together make up a triangular membership function can be expressed in the following manner (refer to Section 5.1 and FIG. 6): ##EQU2## where the notation SUM(a, b) implies SUM(a)+SUM(b); if either `a` (or `b`) is a scalar value then SUM(a)≡a (SUM(b)≡b). 
     Making the same set of substitutions for A2 in  (x j ) yields, 
     
         A2.sub.in (x.sub.j)=LIN(SUM(SUM(INP(x.sub.j), INP(-1)[b.sub.ij ])[a.sub.ij ])(-1)). 
    
     The product of A1 in  (x j ) and A2 in  (x j ) is a formula for fuzzy rule-i&#39;s antecedent membership function for input variable x j  : 
     
         A.sub.in (x.sub.j)=PROD(A1.sub.in (x.sub.j), A2.sub.in (x.sub.j)), 
    
     where the notation PROD(a, b) implies (a×b). 
     FIG. 7 is a schematic of the fuzzy modeling function A in  (x j ) used in the FEN. In FIG. 7, and all subsequent figures: a square symbol denotes an input, INP(), node as described in Section 5.2(e); a circle symbol denotes a sum, SUM(), node as described in Section 5.2(a); a circumscribed-square symbol denotes a linear threshold, LIN(), node as described in Section 5.2(b); and a double-circle symbol denotes a product, PROD(), node as described in Section 5.2(c). As introduced earlier (see FIG. 6 and Section 5.1), a ij  is the positive gradient (slope) of rule-i&#39;s j th  input variable&#39;s (x j ) antecedent membership function and b ij  is the center value of rule-i&#39;s j th  input variable&#39;s (x j ). 
     5.3(b) Defuzzification of Rule Output 
     Defuzzification is a process which translates the combination of a rule&#39;s antecedent parts to a single, real value. As introduced earlier, a rule may have a number of antecedent parts. If u i  represents the output of rule-i, having `m` antecedent parts, then 
     
         i u.sub.i =A.sub.i1 (x.sub.1)×A.sub.i2 (x.sub.2)× . . . ×A.sub.im (x.sub.m), 
    
     or alternatively, 
     
         u.sub.i =PROD(A.sub.i1 (x.sub.1), A.sub.i2 (x.sub.2), . . . , A.sub.im (x.sub.m)). 
    
     If the combination of `n` rules generate an output z, then defuzzification in the FEN uses the WEIGHTED-SUM-GRAVITY function to combine these `n` fuzzy rule outputs to produce a single, `crisp`, output. Letting the vector v represent the n-tuple product (u 1  ×c 1 , u 2  ×c 2 , . . . , u n  ×c n ), then 
     
         z=GRAV(v). 
    
     FIG. 8 is a schematic of the defuzzification process captured in the above equation; a double-square symbol represent the GRAV() function. In the FEN, there is one defuzzification element for each output variable in the modeled system. For instance, if a specific FEN implementation is designed to control a single motor that requires three inputs, then the FEN will have three GRAV() elements. 
     5.3(c) Example FEN 
     As an illustrative example of how to convert a fuzzy rule-base into an artificial neural network structure--a FEN--consider a fuzzy expert system with two input variables, x 1  and x 2  and two membership functions (symmetric and triangular) of the antecedent parts for each input. The four rules that comprise this sample fuzzy expert system rule-base are shown in Table 1. 
     Assume that the example FEN generates a single output signal that is a weighted combination of the four rules given in Table 1. FIG. 9 shows a graphical representation of the four rules&#39; antecedent parts. 
     
                       TABLE 1                                                     
______________________________________                                    
Sample Fuzzy Expert System Rule-Base                                      
Rule          Expression                                                  
______________________________________                                    
1             if x.sub.1  is A.sub.11  and x.sub.2  is A.sub.12  then     
              c.sub.1                                                     
2             if x.sub.1  is A.sub.11  and x.sub.2  is A.sub.22  then     
              c.sub.2                                                     
3             if x.sub.1  is A.sub.21  and x.sub.2  is A.sub.12  then     
              c.sub.3                                                     
4             if x.sub.1  is A.sub.21  and x.sub.2  is A.sub.22  then     
              c.sub.4                                                     
______________________________________                                    
 
    
     The artificial neural network for each rule is identical in structure to that shown in FIG. 7 and described in Section 5.3(a). Output for each rule formed by multiplying the outputs from each of the rules antecedent parts. For instance, 
     u 1  =PROD(A 11  (x 1 ), A 12  (x 2 )), 
     u 2  =PROD(A 11  (x 1 ), A 22  (x 2 )), 
     u 3  =PROD(A 21  (x 1 ), A 12  (x 2 )), and 
     u 4  =PROD(A 21  (x 1 ), A 22  (x 2 )). 
     Finally, the output z is generated by taking the weighted product of each rule, that is: 
     
         z=GRAV(u.sub.1 ×c.sub.1, u.sub.2 ×c.sub.2, u.sub.3 ×c.sub.3, u.sub.4 ×c.sub.4). 
    
     The network representation of the four rules listed in Table 1--using the ANO definitions described earlier--and z calculated above is shown in FIG. 10. (In FIG. 10, connections not labeled have a weight value of 1). In Section 5.5 a numerical example will be introduced to show how backpropagation learning is applied to a FEN to allow modification of the network weight values, a ij , b ij , and c i  --learning. 
     5.4 Backpropagation Learning in the FEN 
     Well known in the field of artificial neural networks is the application of backpropagation learning (BP) to layered networks of feed forward analog neurons [Rumelhart and McClelland, &#34;Parallel Distributed Processing,&#34; Cambridge, Mass., MIT Press, 1986, pp. 444-459]. More recently, application of BP to artificial neural networks derived from non-fuzzy expert system rule-base&#39;s has been shown [Lacher, Hruska, Kuncicky, &#34;Back-Propagation Learning in Expert Networks,&#34; IEEE Transactions on Neural Networks, vol. 3, no. 1, 1992], [Lacher, &#34;Node error assignment in expert networks&#34; in Intelligent Hybrid Systems, A. Kandel and G. Langholz, Eds. Boca Ratan, Fla., CRC Press]. 
     During learning in a FEN, an ideal output I is assumed for each output ANO and defined for each non-output ANO. Thus, for an output ANO j, the error e j  may be defined as the difference between the ideal output and the actual output for that ANO: 
     
         e.sub.j =I.sub.j -z.sub.j, 
    
     where z j  is the calculated output from node j as previously described. 
     Using the concept of an &#34;influence factor,&#34; denoted by ε (originally introduced by Lacher et al.), the error at a non-output ANO e j  (e.g., an ANO which does not have a defined ideal output value) can be described as: 
     
         e.sub.j =Σ.sub.k=1→n ε.sub.kj ×e.sub.k. 
    
     Here, ANO k is the successor node to ANO j, ε kj  is a weight distribution factor called the &#34;influence factor,&#34; and the index k runs from 1 to n where n is the number of nodes that ANO j sends its output to. Lacher et al. further defines the influence factor ε kj  to be: 
     
         ε.sub.kj =φ&#39;(y.sub.k)[∂Γ(x.sub.k1, . . . , x.sub.kn)/∂x.sub.kj ]w.sub.kj, 
    
     where ε kj  represents the influence factor between node j and the ANOs&#39; that node j sends its output to, x kj  represents the signal from ANO j to ANO k, w kj  represents the weight of the connection between ANO j and ANO k, φ&#39;(y k ) represents the derivative of ANO k&#39;s output function--at its current input value, and ∂Γ()/∂x kj  represents the partial derivative of ANO k&#39;s combining function with respect to the connection between node j and node k. Values for φ&#39;(y k ) and ∂Γ()/∂x kj  are given by the following equations. 
     1. For the SUM node: 
     
         φ&#39;(y.sub.k)=1 
    
     and 
     
         ∂Γ/∂x.sub.kj =1. 
    
     2. For the LINEAR THRESHOLD node: ##EQU3## and 
     
         ∂Γ/∂x.sub.kj =1. 
    
     3. For the PRODUCT node: 
     
         φ&#39;(y.sub.k)=1 
    
     and 
     
         ∂Γ/∂x.sub.kj = .sub.i=1→n x.sub.ki where i≠j. 
    
     4. For the WEIGHTED-SUM-GRAVITY node: 
     
         φ&#39;(y.sub.k)=1 
    
     and 
     
         ∂Γ/∂x.sub.kj =(Σ.sub.i=1→n x.sub.ki /w.sub.ki).sup.-1 -(1/w.sub.kj)×(Σ.sub.i=1→n x.sub.ki)×(Σ.sub.k=1→n x.sub.ki /w.sub.ki).sup.-2. 
    
     The total sum squared error, E, of ANO j is given by 
     
         E=Σ.sub.j=1→n (e.sub.j).sup.2. 
    
     5.4(a) Gradient Descent in the FEN 
     Key to the use of BP is the computation of an ANO&#39;s error gradient; it is used to determine how to change or modify the node&#39;s parameters. As discussed earlier, it is the change in nodal parameters that constitutes learning. Unique to the FEN is its ability to modify the membership functions of the network&#39;s nodes. To accomplish this, standard BP techniques have been extended in a novel and nonobvious manner. 
     Suppose that ANO j has been designated for training. Denote the vector of weights of incoming connections to ANO j by w j  =(w j1 , . . . , w jn ). The gradient of the sum squared error, ∇E, with respect to w j  is the vector of partials 
     
         ∇E=∂E/∂w.sub.ji =2e.sub.j ×(∂e.sub.j /∂z.sub.j)×(∂z.sub.j /∂y.sub.j)×(∂y.sub.j /∂x.sub.ji)×(∂x.sub.ji /∂w.sub.ji)=-2e.sub.j ×φ.sub.j &#39;(y.sub.j)×∂Γ.sub.j (x.sub.j1, . . . , x.sub.jn)/∂x.sub.ji ×z.sub.i. 
    
     Thus, changing a weight w ji  in the direction of ∇E will reduce ANO j&#39;s total sum squared error. In this case, it should be remembered that w ji  in the above equation represents any one of the FEN parameters a ij , b ij , and c i . 
     The amount by which w ji  is changed during a single step of training is given by a Δw ji  : 
     
         Δw.sub.ji =η×e.sub.j ×φ.sub.j &#39;(y.sub.j)×(∂Γ.sub.j (x.sub.j1, . . . , x.sub.jn)/∂x.sub.ji)×z.sub.i +μ×Δw.sub.ji.sup.old. 
    
     Here, η (learning rate) and μ (momentum) are learning control parameters introduced to control the size and rate of weight (parameter) modification. This is a standard, albeit ad hoc, technique to control learning in BP networks. The parameter Δw ji   old  represents the value assigned to Δw ji  during the most recent previous training step. 
     5.5 Simulation Example 
     To illustrate the operational and numerical behavior of a FEN consider a nonlinear two-input specified in the following manner: 
     
         f.sub.q (x.sub.1q, x.sub.2q)=(0.5x.sub.1q +x.sub.2q.sup.2 +α).sup.2. 
    
     1. x 1  and x 2  represent system input variables and are randomly, uniformly, distributed on the closed interval [-1, 1]. 
     2. Δ a represents an arbitrary free variable and is assigned a fixed value of 2.0 unless otherwise noted. 
     3. The FEN&#39;s training set consists of 20 pairs of input data points (x 1q  and x 2q ) and the corresponding 20 output values; subscript `q` designates a particular training data input--0≦q≦20. 
     4. F q  (x 1q , x 2q ) represents the normalized output of f q  (x 1q , x 2q ), i.e. lies in the closed interval [0, 1], and is defined by: 
     
         F.sub.q (x.sub.1q, x.sub.2q)=(f.sub.q (x.sub.1q, x.sub.2q)-MIN[f.sub.q (x.sub.1q, x.sub.2q)]÷MAX[f.sub.q (x.sub.1q, x.sub.2q)], 
    
     where MIN[ ] and MAX[ ] represent the mathematical minimum and maximum functions respectively. 
     5. A fuzzy rule-base comprised of 16 fuzzy inference rules--four membership functions for each of a rule&#39;s two antecedent parts (refer to Section 5.3)-- A 11  (x 1 ), A 12  (x 2 ), A 21  (x 1 ), A 22  (x 2 ), A 31  (x 1 ), A 32  (x 2 ), A 41  (x 1 ) and A 42  (x 2 )--and the corresponding 16 outputs singletons c 1  through c 16  : ##EQU4## 6. Initial values for the parameters a ij , b ij , and c i  are: 
     
         a.sub.11 =a.sub.12 =a.sub.21 =a.sub.22 =a.sub.31 =a.sub.32 =a.sub.41 =a.sub.42 =2.0; b.sub.11 =b.sub.12 =-0.75; b.sub.21 =b.sub.22 =-0.25; b.sub.31 =b.sub.32 =0.25; b.sub.41 =b.sub.42 =0.75; 
    
     and 
     
         c.sub.1 through c.sub.16 =0.5. 
    
     7. The effect of learning--modification of connection weight parameters a ij , b ij  and c ij  --will be shown graphically below. 
     8. An average squared error, E, over the training set of: 
     
         E=(1/20)Σ.sub.q=1→20 (f.sub.q (x.sub.1q, x.sub.2q)-F.sub.q (x.sub.1q, x.sub.2q)).sup.2. 
    
     9. Connection weights of 1 and -1 are not subject to modification. 
     5.5(a) FEN Learning 
     As a process, training is implemented as an iteration of the following steps: 
     1. Presentation of a known input data pair (x 1q , x 2q ), where 0≦q&lt;20. 
     2. Generation of FEN output, F q  (x 1q , x 2q , based on the input of step 1. 
     3. Calculation of the output&#39;s square-error, E q , for the single input of step 1: 
     
         E.sub.q =(f.sub.q (x.sub.1q, x.sub.2q)-F.sub.q (x.sub.1q, x.sub.2q)).sup.2. 
    
     4. Changing the values of a ij , b ij , and c ij  as specified by the equation for Δw ji  : given in Section 5.4(a)--Δw ji  represents a ij , b ij , and c ij  depending upon which connection weight is being modified (trained). 
     5. After presemation of all 20 input data points the iteration&#39;s total mean square-error, E n , is calculated: 
     
         E.sub.n =(1/20)Σ.sub.q=1→20 E.sub.q. 
    
     6. Repeat steps 1 through 5 (e.g., go through another iteration) until the total mean-square-error is less than, or equal to, some specified value. 
     5.5(b) FEN Learning--Rate 
     Following the procedure outlined above (α=2.0), the FEN&#39;s output mean-square-error decreases as a function of the number of iterations through the training set as shown in FIG. 11. Also shown in this figure is the effect different learning rates for the antecedent and consequent parts have on the error reduction rate. 
     5.5(c) FEN Learning--Adaptability 
     FEN adaptability is tested in the following manner: 
     1. Let α=0. 
     2. Perform steps 1 through 5 of Section 5.5(b) until E n  ≦0.000225 (the mean-square-error of an iteration). 
     3. Let α=α+0.1. 
     4. Repeat steps 2 and 3 of this process until α=15 (an arbitrary cutoff point). 
     FIG. 12 shows the number of iterations required to meet the error threshold of 0.000225 as a function of the parameter α. Also shown in this figure is the effect different learning rates for the antecedent and consequent parts have on FEN&#39;s adaptability. 
     5.5(d) FEN Learning--Membership Function 
     The effect training (learning) has on a fuzzy rule&#39;s membership function is shown in FIG. 13. 
     It will be appreciated by those of ordinary skill having the benefit of this disclosure that numerous variations from the foregoing illustration will be possible without departing from the inventive concept described herein, i.e., fuzzy rule base functions having non-symmetric membership functions of the antecedent. Non-fuzzy rule base functions can also be implemented using the neural structures disclosed herein (SUM, LINEAR-THRESHOLD, PRODUCT, and WEIGHTED-SUM-GRAVITY). For example, if x 1 , x 2 , x 3 , and x 4  are input variables and variables a 1 , a 2 , a 3 , a 4 , and b are adjustable (e.g., &#34;weights in a fuzzy expert network), then the function ##EQU5## be represented using the SUM, LINEAR-THRESHOLD, PRODUCT, and WEIGHTED-SUM-GRAVITY objects. Accordingly, it is the claims set forth below, and not merely the foregoing illustration, which are intended to define the exclusive rights claimed in this application.