Ironically, I began reading Fuzzy Thinking by Bart Kosko on the
same day one of my students gave a presentation about digital logic. The
data line is either high or low, he explained. At five volts or more it
was high, at three or less low. And in between? "Indeterminate,"
was his response, as though this state of affairs was only a minor annoyance
to engineers. To my student, the indeterminate condition was something to
be hunted down and fixed. To Kosko, and to fuzzy theorists in general, this
state represents an integral part of a fuzzy condition that includes various
degrees of high and low.
Fuzzy Thinking is not a book on computers or engineering, but, rather,
one on a way of thinking. The fuzzy system of thought, which has much in
common with Eastern religions, is that all states of being exist to some
degree. Once you recognize this as the true and universal worldview, it's
possible to model complex, nonlinear systems without high-order mathematics,
and ultimately to raise the intelligence level of machines through the use
of adaptive fuzzy systems. Kosko debunks the myth of what he calls "bivalence"--that
a state is either A or not-A. While much of our work with computers assumes
a bivalence model, a moment's reflection reveals that it's clearly a poor
approximation of the world. Certainly the grass is green, at least as a
first approximation. As we obtain greater precision, however, we find that
some of the grass reflects light at a slightly different wavelength than
the rest. If we look closer still, sections of each individual blade of
grass reflect light differently, making the concept of green still more
fuzzy. His criticism here is well-taken; it's clear that fuzzy thinking
is a correct way of looking at the world.
Kosko also attempts to debunk the concepts of probability, a somewhat more
difficult proposition since probability is itself a slippery concept. Rather
than debunking it, he decides that it's merely a part of fuzzy theory. He
forms the fuzzy concept of "subsethood," the degree to which one
set is a subset of another set. Probability is the proportion to which one
set--the true outcome--contains the set of all possible outcomes.
However, Kosko has some logical problems in trying to do away with the probabilistic
worldview. First, it's easy to claim that probability and fuzzy logic are
the same thing, or at least produce the same results, as many probabilistic
theorists do. This problem is apparently confounded by a number of bright
scientists who either relegate fuzzy thinking to a semantic niche, or dismiss
it altogether. Even with the subsethood principle, he's uncomfortable with
any substantive discussion of probability.
Fuzzy Thinking is presented in three parts. The first part, "The
Fuzzy Past," presents the historical antecedents of both Aristotelian
and Eastern thought, and compares the two, largely to the benefit of the
Eastern approaches. Kosko lays down the philosophical and logical antecedents
of fuzzy thinking. The second part, "The Fuzzy Present," examines
the founding and application of fuzzy-set theory. Kosko is at his most convincing
here. He combines a layman's introduction to the fuzzy-application theorem
with a glimpse at the personalities and personal insights that give life
to the story. His examples are straightforward, yet still convey the expressive
power of fuzzy thought, primarily in control applications.
Of particular interest is his assertion that fuzzy logic enables engineers
to control nonlinear systems via fuzzy "rules" without the complexities
of nonlinear mathematics. This is where neural networks come in. But adaptive
fuzzy systems go beyond the neural network, which only creates a mathematical
model of the process. These produce rules from system behavior that can
be incorporated into fuzzy control devices designed to monitor and control
similar behavior.
As a roadmap to fuzzy rules, especially in human-behavioral systems, Kosko
introduces fuzzy cognitive maps (FCMs) which are simply diagrams of states,
actions, and outcomes, along with their relationships. The FCM in Figure
1, for example, describes the rules by which I plan (or would like to plan)
my day. While FCMs seem to be more suited to group rather than individual
actions, they still portray, reasonably accurately, influences on the decisions
individuals can make. Applying changes to one or more states in the diagram
results in different actions or conclusions. From FCMs, rules can be derived
to determine actions based on the strength of the influence.
In the third part of his book, "The Fuzzy Future," Kosko focuses
less on applications and more on how a fuzzy philosophy of life might change
our society. He points out that many philosophical issues--life and death,
ethics, and God (and presumably questions such as, "Is rap music really
music?")--are all really fuzzy concepts, and can be dealt with rationally
by society once their fuzzy nature is recognized and factored into the debate.
Kosko proposes that machines employing fuzzy thought will gradually increase
the wealth and happiness of society. All in all, this is the most fuzzy
part of the book. But does fuzzy thinking have implications for computer
science? According to Kosko, fuzzy thinking leads to machines with higher
IQs. He points out examples of current products (mostly from Japan and South
Korea) that incorporate fuzzy "rules" in control systems to provide
environmental controls, adjust fuel flow in engines, and fine-tune antilock
brakes, among other applications.
It's worth noting that traditional expert systems assume a bivalent, or,
at best, probabilistic, model of the world. This may be why many expert
systems are difficult and time consuming to build. Most experts express
their opinions not as absolutes or probabilities, but rather as signposts
or rules of thumb, which together tend to point to a conclusion. This process
seems much better modeled by fuzzy thinking.
Fuzzy thinking also leads to conclusions beyond Kosko's. Are computer programs
provably correct? Not insofar as the requirements are fuzzy. Many such fuzzy
goals we relate to software engineering may not be bivalent. Requirements
that are expressed bivalently may be artificially so.
Some of Kosko's comments bring fuzzy thinking to a more personal and useful
level. For example, he believes that one of Lotfi Zadeh's motivations in
developing fuzzy theory was a reaction against the tendency of engineers
to solve increasingly difficult real-life problems by "throwing more
math at them." This attitude may be analogous to the programmer who
solves increasingly complex problems by writing more code, rather than stepping
back and questioning the whole approach to the problem. For programmers,
different perspectives often lead to more elegant solutions.
At the end, I couldn't help but shrug my shoulders and say to myself, "Yet
another model of the world." Well argued? Yes, for the most part. The
Truth? I wouldn't go that far. The techniques would seem to be useful in
computing problems where the bivalent model either breaks down or becomes
too complex. However, as Kosko admits, fuzzy rules are not necessarily a
snap to derive and test.
Part of the problem is that, while data and circumstances are often (always,
according to Kosko) fuzzy, the decisions based on these circumstances are,
in fact, bivalent. While a control system may look at the degrees of warmth
in determining how to control the air conditioner, at some point that air
conditioner has to be either on or off. Kosko might argue that the on/off
bivalence is due to a lack of detail in the control system (and he's probably
right) but we may not need to control down to that level of detail.
Kosko's view of the world is valid to a point, and useful for those of us
who, in our daily work, simplify problems down to the bivalent "A or
not-A" paradigm. While he glorifies large chunks of Eastern thought
as inherently fuzzy, Kosko fails to consider Western culture's ability to
hold two contradictory beliefs as an indication of mental dexterity.
I've usually viewed fuzzy logic as no more than an extension of set theory
that allows for partial membership in sets, as a way of modeling certain
aspects of the world. Kosko claims that it is the true and proper way to
view the world. I'm perhaps too comfortable with my familiar paradigms,
but I don't feel I have to give up Western bivalence to see some value in
fuzzy thinking. Still, I'm willing to learn, and have turned to Byte Dynamics'
Fuzzy Logic Designer, a Windows-based development tool and code generator,
to explore fuzzy thinking in more hands-on terms. (Look for my report in
an upcoming issue of DDJ.)
What is significant is that the computational sciences are starting to make
serious efforts to deal with nonlinear systems, which are much more common
in nature than linear systems. Kosko admits that the math of most nonlinear
systems is beyond us right now, and proposes fuzzy thinking as a suitable
alternative. Fuzzy thinking is a systematic approach to this end, and may
serve as a stepping stone into a better understanding and modeling of nonlinear
systems. Then again, to be appropriately fuzzy, maybe not.