Argomenti trattati: fuzzy logic, reti neurali
"PUTTING FUZZY LOGIC INTO FOCUS"
When dealing with ambiguous data, desktop fuzzy-logic applications deliver precise results
di JANET J. BARRON
Tratto dalla rivista "Byte", ottobre, 1993, U.S.A.
Fuzzy logic has long excelled at delivering exact results from imprecise or ambiguous information, and its primary use has been in embedded controllers. Now fuzzy logic is entering the mainstream with a wide range of desktop applications.
Aptronix's (San Jose, CA) FIDE (Fuzzy Inference Development Environment) lets you develop fuzzy-logic-based applications. It runs under Windows on 386/486 machines and costs $1495. FIDE includes a fuzzy inference language, a fuzzy-system standard environment, a graphics editor (with which to draw graphs of membership functions), debugging tools, and a real-time code generator.
Another company, FuziWare (Knoxville, TN), makes several products, including FuziCalc for Windows, FuziQuote, FuziCell, FuziChoice, and FuziCost. These products are used as management decision-support systems for custom, turnkey, and off-the-shelf applications, as well as software techniques to implement both fuzzy logic and fuzzy math.
FuziWare's forecasting, estimating, and modeling software--FuziCalc for Windows--sells for $995. Using it, you can make decisions based on complicated combinations of hard (wellunderstood) and soft (fuzzy) factors. It produces answers that are mathematically verifiable and easy for people new to the field to model and interpret. FuziWare claims that if you have an appropriate application, you can improve your productivity some 30-fold.
Other vendors of fuzzy-logic products include the following: Motorola (Austin, TX), Omron (Kyoto, Japan), Togai Infralogic (Irvine, CA), National Semiconductor (Santa Clara, CA), HyperLogic (Escondido, CA), and NeuraLogix (Sanford, FL).
Even though fuzzy logic is used worldwide, it is most popular in Japan (see the text box "Japanese Leaders in Fuzzy Logic" on page 116). Its acceptance outside Japan has been slow--some people blame the name itself, which Lotfi A. Zadeh (developer of the field and currently professor emeritus of electrical engineering at the University of California, Berkeley) chose to call the technique.
Using Fuzzy Logic
Fuzzy logic is a multivalued logic that allows for degrees (e.g., normal versus slow or fast) of set membership--a more practical way to deal with the issues you face in the real world. Unlike binary (yes or no) information, fuzzy logic emulates your ability to reason and make use of approximate data to find precise solutions.
Among fuzzy logic's benefits are fault tolerance and the ability to provide accurate responses to ambiguous data. According to David Brubaker, president of the fuzzy-logic and embedded-systems consulting firm Huntington Group (Menlo Park, CA), products designed with fuzzy logic have simpler controls, are easier to build and test, and provide smoother control than those using conventional systems.
The largest commercial uses for fuzzy logic are as controllers for tasks such as managing temperatures and energy efficiency in heating and cooling devices and regulating timing and fuel flow in automobile engines. Controllers also are used to make constant operating adjustments to subway trains, home appliances, cameras, and elevators.
In the next few years, fuzzy logic will enter domains such as computer chips computer graphics, software development, financial planning, information processing, sales analysis, speech recognition, machine vision, and character recognition (see the text box "Fuzzy-Logic Applications" on page 114). It will improve speed, maintenance, extendability, and efficiency. According to Earl Cox, CEO of the Metus Systems Group (Chappaqua, NY), a fuzzy-logic and fuzzy-neural network consulting organization, the use of fuzzy logic can dramatically reduce product development times for a range of embedded control applications from the idea to the prototype stage.
Cox cites an example of fuzzy-logic application that he developed for a bank. The application runs on PCs with Windows 3.1 and Excel, and it analyzes and rates the complexity of a software development project. This program takes into consideration function point, code density, and the total operational interface.
The application calculates complexity indicators in software, such as the number of IF. . . THEN. . . ELSE statements, nested IF. . . THEN. . . ELSE statements, GO TOs, and comments. You use these rough figures to calculate ratios and statistical measures and feed them into a fuzzy-evaluation model.
Previous attempts to measure complexity relied on sharp boundaries between what is and what is not complex. The fuzzy approach more closely models the way that managers think in degrees such as somewhat, moderately, and highly complex.
Crisp vs. Fuzzy
The concept of crisp sets comes from traditional, or classical Iogic (see the glossary on page 112). Crisp sets have rigid membership requirements where every object is either completely included or excluded from a set. In contrast to this true or false scenario, fuzzy sets allow for continuous-set membership values ranging from 0 to 1.
Bart Kosko, professor of electrical engineering at the University of Southern California, says, in his book Neural Networks and Fuzzy Systems: A Dynamical Systems Approach to Machine Intelligence (Prentice Hall, 1991), this type of multivalued logic was first explored some 60 years ago by Jan Lukasiewicz, a Polish logician who also defined reverse Polish notation. Max Black, a quantum philosopher, furthered Lukasiewicz's work and created the beginning of what people now think of as fuzzy-set membership functions.
In the early 1 960s, Zadeh enhanced the original research. He subsequently developed what people know as fuzzy-set theory, introducing the termfuzzy into our language to deal with what Black had referred to as vagueness. In 1965, Zadeh published a seminal paper on the subject, entitled Fuzzy Sets.
A Fuzzy-Logic Model
The fuzzy-logic procedure consists of analyzing and defining your problem, creating your sets and logical relationships, converting your information to what are called fuzzy sets, and interpreting your model (see listing 1). You can use a number of criteria to determine whether a fuzzy-logic approach would lend itself to solving your specific problem. These prerequisites include the level of ambiguity of the data (determined mathematically) and the required accuracy of the output.
To use a fuzzy-logic model, you would
* analyze your problem, making sure you understand it fully;
* define your problem by identifying your membership functions (i.e., the degree of inclusion in your prescribed sets);
* convert the language of the problem into a rule
* set up an appropriate procedure for fuzzifying and processing the problem;
* Iearn to interpret the model and evaluate your results; and
* fine-tune the results if they are inappropriate or unsuitable.
Before you perform your calculations and build your model, you should make sure that a fuzzy model is an appropriate way to deal with your problem. If another model would be more suitable, you will find that you can't understand or evaluate your results.
Why Fuzzy Logic?
You can set up a fuzzy system for the same purpose you set up any other computing system--to map inputs to outputs. Basically, it consists of three stages: fuzzification, rule evaluation, and defuzzification.
Fuzzification is a process that combines actual values (e.g., barometric pressure) with stored membership-function data to produce fuzzy input values. Rule evaluation, or fuzzy inferencing, is a way of producing numeric responses from linguistic rules based on system input values. In the last stage--defuzzification--a fuzzy system combines all its outputs and obtains a representative number.
To see if this number solves the original problem and gives you an accurate answer in all cases, Fred Watkins, president of HyperLogic, a firm that produces fuzzy-logic development tools, says it's necessary to come up with a performance measure (theoretically, an ideal correct response). You can then run the engine in a variety of contexts. If the number doesn't turn out to be a good solution, you tune the system parameters until you reach a satisfactory conclusion. Even as the rules of a fuzzy engine become more complex, says Watkins, the general concepts remain the same.
According to Emdad Khan, manager of fuzzy and neural networks for the Embedded Systems Division of National Semiconductor, you can construct a PC-based fuzzy-logic system (e.g., to use m a simple management project) using software alone. However, general-purpose or dedicated microprocessors are available for more complicated applications (see ure).
Fuzzy logic, neural networks, expert systems, genetic algorithu and OOP (object-oriented programming) are some of the ways efficiently handling problems that are rife with ambiguity, though each method handles uncertainty differently. If you us blend of these technologies, the results are sometimes more th the sum of their parts.
According to Khan, combining both fuzzy logic and neural networks results in a synergy that improves speed, fault tolerance, and adaptiveness. A neural network can convert knowledge into fuzzy rules and membership functions, and fuzzy logic can optimize the number of rules that the neural network learns.$
NeuraLogix's senior software engineer David Ratti says, "In tandem, you gain fuzzy logic's ability to deal with inexact measurements and input data, and a neural network's ability to learn." The fuzzy approach assumes a priori knowledge and leverages it without the significant training times of neural networks. In and of themselves, fuzzy systems aren't adaptive, he says, but neural networks are. By observing what the fuzzy system does, the neural network can adjust the parameters of a fuzzy system and can tune it.
You might want to build a fuzzy system using an expert system if you need a simple method for encoding nonlinear data, such as market forecasts or the financial stability of an organization. Fuzzy expert systems can handle both incoming and already computed information in either a crisp or fuzzy format. They perform well at relatively high speeds on conventional computers and specialized hardware. This type of combination system produces results similar to the way humans intuitively handle most kinds of real-world problems.
Huntington Group's Brubaker says that most fuzzy systems are rule-based, but the rules in a fuzzy expert system execute to different degrees. "Rather than an all-or-nothing response," he says, "the fuzzy rules produce 'shades of gray' responses depending on the degree of belief in the premise of each rule."
Several efficient fuzzy systems have been created using genetic algorithms. Metus's Cox says that combining these technologies provides a good way to address difficult and often intractable problems. It also offers one of the best techniques to handle nonlinear problems that are normally addressed by statistics and advanced mathematical models.
Ralphe Wiggins, president of Ryan, a data-analysis consultancy based in Haltford, Connecticut, began using fuzzy logic two years ago. In combination with genetic algorithms, he found the technology a valuable way to handle applications such as financial forecasting and abstractions for data interpretation or machine learning. When performing machine learning, for instance, Wiggins found that the use of fuzzy logic greatly simplified the ways of representing data; thus, he was able to find solutions to problems that had previously defied analysis.
The blend of fuzzy logic and object orientation has proponents and opponents. "You can build a fuzzy system using object-orientation technology where rules are objects," says HyperLogic's Watkins, "but it isn't necessary to use these two technologies together."
In a combination fuzzy-logic, object-orientation system, objects themselves can be fuzzy. A given object can have only partial (a degree of) membership in its class. Wiggins says to solve very complex problems, a fuzzy-logic/object-oriented system might be the answer.
Cox says that fuzzy sets are easy to design, build, validate, and tweak, and for several reasons, such as their fault tolerance and capabilities for parallelism, they are extremely robust. But some people are unwilling to use fuzzy-logic systems because they believe that creating, verifying, and refining them is too difficult, or that the systems are unstable.
While Ed Katz, a member of the technical staff at HewlettPackard Laboratories Division (Palo Alto, CA), is a proponent and user of fuzzy logic, especially in the noncontroller domain, he says that there are trade-offs to the technology. One problem lies area of refining your membership functions. No procedure for determining what a membership function looks like adjusting it, he says.
One issue being debated is whether fuzzy models provid biguous or accurate results. According to Cox and others use of fuzzy logic offers the same kind of deterministic resul you can expect from many ottter conventional systems. Cox "Boolean logic is to fuzzy logic as a light switch is to a di switch."
Problems in the real world are imprecise. You seldon solve them with either a yes or no. Fuzzy logic dramaticall proves people's knowledge-modeling capabilities in vague such as economics or behavioral science. According to Cox [it] brings the way a computer reasons closer to the way that people think."
My thanks to Earl Cox, Maureen Caudill, and Ralphe Wiggi their expertise.
Janet J. Barron is a BYTE technical editor. You can reach BIX as "neural" or on the Internet at firstname.lastname@example.org.