However, as an initial step away from fuzzy-rule-based systems, I shall discuss a fuzzy structure that strongly resembles a neural network, the fuzzy cognitive map (FCM). FCMs are powerful and, as yet, underused tools for creating models of complex systems.
Like the fuzzy rule base, the FCM is a technology in which the application of Zadehan logic enhances an existing method. Political scientist Robert Axelrod introduced the cognitive map in 1976, using it to represent knowledge as an interconnected, directed, bilevel-logic graph. Nine years later, University of Southern CaliforniaLos Angeles professor Bart Kosko expanded Axelrod's maps to FCMs.
An FCM is a graph, structured as a collection of nodes and arcs (Figure 1). Nodes, called concepts, are system variables; their values change over time. Connections among concepts, the arcs or edges of the graph, represent causality. That is, a directed edge that connects concept C0 to C1, pointing from C0 to C1, measures how much C0 causes C1. An edge may connect any concept to any other concept. An edge may also connect a concept to itself, indicating that the future value of the concepts depends on the concept's current value.
Each concept, or node, has a strength value traditionally ranging from 0 (no strength) to 1 (full strength). The 0-to-1 range is arbitrary, and some users prefer bipolar values ranging from -1, for maximum negative representation, through 0, for ambivalence, to +1, for maximum positive representation. For example, a concept representing "appreciation of classical music," which uses the unipolar representation, would use a 1 to indicate strongest appreciation, 0.5 to indicate ambivalence, and 0 to indicate maximum dislike. In the bipolar representation, a +1 again represents the strongest appreciation, but, now, 0 represents ambivalence, and -1 represents maximum dislike. I prefer the bipolar representation; I have an easier time equating "zero" with ambivalence. Those who ponder half-full and half-empty glasses of water likely prefer 0 to 1.
The bipolar "degree-of-causality" values of the connecting edges (arcs) indicate how much one concept causes another. Values range from -1, indicating a strong negative impact, through 0, or no impact, to +1, a strong positive impact.
The runtime operation of an FCM consists of calculating the next value of each concept in the FCM from the current concept and edge values. An FCM is a sampled-data system, in which the collection of current concept values represents the current overall system-concept status. As with any sampled-data system, the sampling interval must satisfy the Nyquist criterion to avoid aliasing higher frequency components.
To obtain a feel for how an FCM works without getting into the details, consider again Figure 1. At each time increment, the next value of each dependent system concept is calculated from the current concept and edge values.
The current values of all three concepts define the next value of concept C2:
a. by C1, positively and strongly via the edge, E12;
b. by itself (C2), negatively and somewhat weakly via edge E22; and
c. by C3, positively and fairly strongly via E32.
Similarly, the next value of concept C3 is defined by both C1; positively and somewhat strongly via E13; and C2, negatively and moderately strongly via E23.
The other two concepts do not affect C1, but C1 would typically act as an input node. It may be an output variable of another system, data from a time series being analyzed, or even an output concept from separate FCM.
For this simple system, a linear relationship exists between the final values after transient settling of all three concepts (Figure 2). As the value of C1 varies from -1.0 to +1.0, C2 also varies from a negative to a positive number, although less strongly than does C1. The value of C3 varies inversely with the value of C1; as C1 increases, C3 decreases.
These are "final values": They are the values to which the concepts settle for each step change in the value of C1. Depending on the number of concepts and the number and complexity of connections, the system typically requires several steps to reach equilibrium, if, in fact, the system reaches equilibrium. Because of feedback paths, an FCM can also be oscillatory (either predictably or chaotically) or unstable. Figure 3 shows the "step responses" of concepts C2 and C3 to a -1 to +1 step in C1.
Several techniques are available for calculating concept values of a system. The most common one is a normalized sum of products. The first step is to take the product of each source concept value and connecting edge value (Figure 4). You then sum these products and normalize, or "squash," the result into the range of allowable concept values.
A wide selection of normalizing functions is available. The purpose of these functions is to cause sums greater than onethis can occur when several products are summedto be monotonically mapped into the 1 (or 0 to 1) range. Appropriate normalizing functions are those based on: the sigmoid function that is popular in neural networks, linear functions of varying slopes, and a number of probability-density functions. Figure 4 uses a linear function to calculate C4 as a weighted average, with gain based on the weights of edges.
Without squinting too hard, you can see the similarities between FCMs and neural nets. FCMs relinquish the regular, layered structure of a neural net, but, by doing so, they assume a structure more consistent with the process they model. Because of this, they have been called "object-oriented neural nets."
Conceptually, FCMs fit nicely between neural nets and rule-based systems. As with rule-based systems, one or more experts define an FCM's initial structure. (Kosko has demonstrated a method of combining FCMs defined by experts with opposing opinions.) Like neural networks, FCMs can be trained.
In the next column, I shall present a slightly more complex example of an FCM model, along with references and a pair of commercially available FCM-generation tools.
As always, I invite and appreciate your comments.