C++ Neural Networks and Fuzzy Logic
C++ Neural Networks and Fuzzy Logic
Download 1.14 Mb. Pdf ko'rish
|
C neural networks and fuzzy logic
C++ Neural Networks and Fuzzy Logic by Valluru B. Rao MTBooks, IDG Books Worldwide, Inc. ISBN: 1558515526 Pub Date: 06/01/95 Previous Table of Contents Next Fuzzy Queries At this point, our digression from the discussion of fuzzy data bases is finished. Let us now recall, for immediate reference, the entries in the definitions we listed earlier in Table 16.3:
FV(age){ very young, young, somewhat old, old } FV(nov){ never, rarely, quite a few, often, very often } FV(lov){ barely few days, few days, quite a few days, many days } FV(yov){distant past, recent past, recent } FV(hs){ barely, adequately, quite a bit, extensively } FV(flp){not proficient, barely proficient, adequate, proficient, very proficient } If you refer to Tables 16.1 and 16.3, you will see that a fuzzy query defines a fuzzy set. For example, suppose you ask for a list of young people with enough knowledge of Italy, and who know Italian almost like a native. You want the intersection of the fuzzy sets, age_young, hs_adequately, and flp_very proficient. John Smith is in the fuzzy set age_young with a 0.75 degree of membership, as noted before. Suppose he is in
membership. We then put him in the fuzzy set for this query. The degree of membership for John Smith is the smallest value among 0.75, 0.2, and 0.9, since we are taking the intersection of fuzzy sets. So 0.2/John Smith will be part of the enumeration of the query fuzzy set. Note that you can use unknown in place of the value of an attribute for an item in the database. If you do not know John Smith’s age, you can enter unknown in that field of John Smith’s record. You may say his age is unknown, even though you have a rough idea that he is about 35. You would then be able to assign some reasonable degrees of membership of John Smith in fuzzy sets like age_young or age_somewhat old. Extending Database Models One way of extending a model into a fuzzy model, as far as databases are concerned, is to make use of similarity relations and to extend the operations with them as Buckles and Perry do, such as PROJECT. First there are the domains, for the database. In our example relating to travel and tour guides above, the domains are: D1 = { John Smith, ... }, the set of persons included in the database, D2 = {India, Italy, Japan, ... }, the set of countries of visit, D3 = {Hindi, Italian, Japanese, ... }, the set of foreign languages, D4 = {U.S., ... }, the set of countries of citizenship, C++ Neural Networks and Fuzzy Logic:Preface Fuzzy Queries 388
D5 = set of ages, D6 = set of years, D7 = set of number of visits, D8 = set of length of visits. Note that the enumerated sets are shown with ‘...’ in the sets, to indicate that there may be more entries listed, but we are not giving a complete list. In practice, you will make a complete enumeration unlike in our example. The domains D5, D6, D7, and D8 can also be given with all their elements listed, since in practice, these sets are finite. Conceptually though, they are infinite sets; for example, D6 is the set of positive integers. Next, you have the similarity relations that you define. And then there are the operations.
Consider a standard database given below. It can be called also the relation R1, from set D1 = {Georgette, Darrell, Ernie , Grace } to set D2 = {Spanish, Italian, French, Japanese, Chinese, Russian} as shown in Table 16.4:
Table 16.4 Example for Relation R1, with Domains D1 and D2 D1D2 GeorgetteSpanish GeorgetteItalian DarrellFrench DarrellSpanish DarrellJapanese ErnieSpanish ErnieRussian GraceChinese GraceFrench Let’s say a fuzzy database has D1 and D2 as domains. Suppose you have a similarity relation S1 on domain D1 given by the matrix: 1 0.4 0.8 0.7 0.4 1 0.5 0.3 0.8 0.5 1 0.4 0.7 0.3 0.4 1 Recall that the entries in this matrix represent the degrees of membership of ordered pairs in the relation S1. For example, the first row third column element, which is 0.8, in the matrix refers to the degree of membership of the pair (Georgette, Ernie), since the rows and columns refer to Georgette, Darrell, Ernie and Grace in that order. Previous Table of Contents Next Copyright © IDG Books Worldwide, Inc. C++ Neural Networks and Fuzzy Logic:Preface Example 389
C++ Neural Networks and Fuzzy Logic by Valluru B. Rao MTBooks, IDG Books Worldwide, Inc. ISBN: 1558515526 Pub Date: 06/01/95 Previous Table of Contents Next The result of the operation: PROJECT (R1 over D1) with LEVEL(D1) = 0.6 is the relation R2 given in Table 16.5.
{Georgette, Ernie} {Georgette, Grace} Darrell
This projection operation with a condition on the level works as follows. First, the column for D1 is to be picked, of the two columns that R1 shows. Repetitions are removed. The condition says that if two elements of D1 have a similarity of 0.6 or higher, they should be treated as the same. Even though similarity levels of pairs (Georgette, Ernie) and (Georgette, Grace) are both greater than 0.6, the pair (Ernie, Grace) has similarity of 0.4 only so that we do not treat the three as the same. This type of table is not constructed in the standard database model, so this is part of an extension of the standard model. Suppose you recast the information in the relation R1 and call it R3, shown in Table 16.6. Table 16.6 Example for Relation R3, with Domains D1 and D2 D1D2 Georgette{Spanish, Italian} Darrell{French, Spanish, Japanese} Grace{Chinese, French} Ernie{Russian, Spanish} This kind of a table also is not found in standard databases (where there are groups with more than one element used in the relation), and is an example of an extended model.
As an alternative to using similarity relations for introducing fuzziness into a database model, you can, following Umano, et al., use a possibility distribution−relational model. The possibility distributions represent the fuzzy values of attributes in the data. An example of a possibility distribution is the fuzzy set you saw before, nov_rarely = {0.7/1, 0.2/2}, where nov_rarely stands for number of visits considered to be “rarely.” C++ Neural Networks and Fuzzy Logic:Preface Possibility Distributions 390
Example An example of a database on the lines of this model is shown in Table 16.7: Table 16.7 Example of Possibility Distribution Relational Model NameNumber of Visits Outside the U.S.CitizenshipName of Companion on Latest Visit Peter3U.S.Barbara Roberto{10, 11} p SpainAnne Andre2unknownCarol Raj14{India, U.S.} p Uma
AlanunknownU.S.undefined JamesmanyU.K.null A standard database cannot look like this. Entries like many and {10, 11}
clearly suggest fuzziness. The entry {10, 11}
made by Roberto is either 10 or 11. Similarly, Raj’s citizenship is India or United States, but not dual citizenship in both. Andre’s citizenship and Alan’s number of visits outside the United States are not known, and they can have any values. The possibilities cannot be narrowed down as in the case of Raj’s citizenship and Roberto’s frequency of visits outside the United States The entry undefined is used for Alan because he always traveled alone, he never took a companion. James’ number of visits is fuzzy. He traveled many times. A fuzzy set for many will provide the possibility distribution. It can be defined, for example, as: many = {0.2/6, 0.5/7, 0.8/8, 1/9, 1/10, ...} The name of the companion on James’ latest visit outside the United States is entered as null because we do not know on the one hand whether he never took a companion, in which case we could have used undefined as in Alan’s case, and on the other whom he took as a companion if he did take one, in which case we could have used unknown. Simply put, we use null when we do not know enough to use either unknown or
Previous Table of Contents Next Copyright © IDG Books Worldwide, Inc. C++ Neural Networks and Fuzzy Logic:Preface Possibility Distributions 391
C++ Neural Networks and Fuzzy Logic by Valluru B. Rao MTBooks, IDG Books Worldwide, Inc. ISBN: 1558515526 Pub Date: 06/01/95 Previous Table of Contents Next Queries Let us turn our attention now to how queries are answered with this type of a database model. Suppose you want a list of U.S. citizens in your database. Peter and Alan clearly satisfy this condition on citizenship. Andre and Raj can only be said to possibly satisfy this condition. But Roberto and James clearly do not satisfy the given condition. This query itself is crisp and not fuzzy (either you belong to the list of U.S. citizens or you don’t). The answer therefore should be a crisp set, meaning that unless the degree of membership is 1, you will not list an element. So you get the set containing Peter and Alan only. A second query could be for people who made more than a few visits outside the United States Here the query is fuzzy. James with many visits outside United States seems to clearly satisfy the given condition. It is perhaps reasonable to assume that each element in the fuzzy set for many appears in the fuzzy set more than a few with a degree of membership 1. Andre’s 2 may be a number that merits 0 degree of membership in more than a few. The other numbers in the database are such that they possibly satisfy the given condition to different degrees. You can see that the answer to this fuzzy query is a fuzzy set. Now, we switch gears a little, to talk more on fuzzy theory. This will help with material to follow.
Let us introduce you to fuzzy events, fuzzy means, and fuzzy variances. These concepts are basic to make a study of fuzzy quantification theories. You will see how a variable’s probability distribution and its fuzzy set are used together. We will use an example to show how fuzzy means and fuzzy variances are calculated. Example: XYZ Company Takeover Price Suppose you are a shareholder of company XYZ and that you read in the papers that its takeover is a prospect. Currently the company shares are selling at $40 a share. You read about a hostile takeover by a group prepared to pay $100 a share for XYZ. Another company whose business is related to XYZ’s business and has been on friendly terms with XYZ is offering $85 a share. The employees of XYZ are concerned about their job security and have organized themselves in preparing to buy the company collectively for $60 a share. The buyout price of the company shares is a variable with these three possible values, viz., 100, 85, and 60. The board of directors of XYZ have to make the ultimate decision regarding whom they would sell the company. The probabilities are 0.3, 0.5, and 0.2 respectively, that the board decides to sell at $100 to the first group, to sell at $85 to the second, and to let the employees buy out at $60. Thus, you get the probability distribution of the takeover price to be as follows:
100
85 60
0.3 0.5
0.2 C++ Neural Networks and Fuzzy Logic:Preface Queries 392
From standard probability theory, this distribution gives a mean(or expected price) of: 100 x 0.3 + 85 x 0.5 + 60 x 0.2 = 84.5 and a variance of : (100−84.5) 2 x 0.3 +(85−84.5) 2 x 0.5 + (60−84.5) 2 x 0.2 = 124.825 Suppose now that a security analyst specializing in takeover situations feels that the board hates a hostile takeover but to some extent they cannot resist the price being offered. The analyst also thinks that the board likes to keep some control over the company, which is possible if they sell the company to their friendly associate company. The analyst recognizes that the Board is sensitive to the fears and apprehensions of their loyal employees with whom they built a healthy relationship over the years, and are going to consider the offer from the employees. The analyst’s feelings are reflected in the following fuzzy set: {0.7/100, 1/85, 0.5/60} You recall that this notation says, the degree of membership of 100 in this set is 0.7, that of 85 is 1, and the degree of membership is 0.5 for the value 60. The fuzzy set obtained in this manner is also called a fuzzy event. A different analyst may define a different fuzzy event with the takeover price values. You, as a shareholder, may have your own intuition that suggests a different fuzzy event. Let us stay with the previous fuzzy set that we got from a security analyst, and give it the name A. Probability of a Fuzzy Event At this point, we can calculate the probability for the fuzzy event A by using the takeover prices as the basis to correspond the probabilities in the probability distribution and the degrees of membership in A. In other words, the degrees of membership, 0.7, 1, and 0.5 are treated as having the probabilities 0.3, 0.5, and 0.2, respectively. But we want the probability of the fuzzy event A, which we calculate as the expected degree of
Our calculation gives the following: 0.7 x 0.3 + 1 x 0.5 + 0.5 x 0.2 = 0.21 + 0.5 + 0.1 = 0.81 Previous Table of Contents Next Copyright © IDG Books Worldwide, Inc. C++ Neural Networks and Fuzzy Logic:Preface Probability of a Fuzzy Event 393
C++ Neural Networks and Fuzzy Logic by Valluru B. Rao MTBooks, IDG Books Worldwide, Inc. ISBN: 1558515526 Pub Date: 06/01/95 Previous Table of Contents Next Fuzzy Mean and Fuzzy Variance Our next step is to calculate the fuzzy mean of the takeover price. Let us call it A_fuzzy_mean, to make reference to the fuzzy event used. The calculation is as follows: A_fuzzy_mean = (1/0.81) x (100 x 0.7 x 0.3 + 85 x 1 x 0.5 + 60 x 0.5 x 0.2) = 85.8 To get the fuzzy variance of the takeover price, you need to use values like (100−85.8) 2 , which is the square of the deviation of the takeover price 100 from the fuzzy mean. A simpler way to calculate, which is mathematically equivalent, is to first take the fuzzy expected value of the square of the takeover price and then to subtract the square of the fuzzy mean. To make it easier, let us use p as the variable that represents the takeover price. The calculations are as below: A_fuzzy_expected p 2 = 1/(0.81) x (100 2 x 0.7 x 0.3 + 85 2 x 1 x 0.5 + 60 2 x 0.5 x 0.2) = 7496.91 A_fuzzy_variance = 7496.91 − 85.8 2 = 7496.91 − 7361.64 = 135.27 Fuzzy logic is thus introduced into the realm of probability concepts such as events, and statistical concepts such as mean and variance. Further, you can talk of fuzzy conditional expectations and fuzzy posterior probabilities, etc. enabling you to use fuzziness in Bayesian concepts, regression analysis, and so on. You will then be delving into the field of fuzzy quantification theories. In what follows, we continue our discussion with fuzzy conditional expectations.
Suppose you, as a shareholder of the XYZ company in the previous example come up with the fuzzy set, we will call the fuzzy event:
The probability for your fuzzy event is as follows: 0.8 x 0.3 + 0.4 x 0.5 + 0.7 x 0.2 = 0.58
respectively. But you want to see how these values change if at all when you take A, the analyst’s fuzzy event, as a given. You are then asking to determine the conditional probability of your fuzzy event, and your conditional fuzzy mean and fuzzy variance as well. C++ Neural Networks and Fuzzy Logic:Preface Fuzzy Mean and Fuzzy Variance 394
The conditional probability of your fuzzy event is calculated as follows: (1/0.81) x (0.8 x 0.7 x 0.3 + 0.4 x 1 x 0.5 + 0.7 x 0.5 x 0.2) = 0.54 This value is smaller than the probability you got before when you did not take the analyst’s fuzzy event as given. The a priori probability of fuzzy event B is 0.58, while the a posteriori probability of fuzzy event B given the fuzzy event A is 0.54.
The conditional B_fuzzy_mean of the takeover price with fuzzy event A as given works out as: (1/0.54) x (100 x 0.8 x 0.7 x 0.3 + 85 x 0.4 x 1 x 0.5 + 60 x 0.7 x 0.5 x 0.2) = 70.37 and the conditional B_fuzzy_variance of the takeover price with fuzzy event A, as given, amounts to 1301.76, which is over five times as large as when you did not take the analyst’s fuzzy event as given. Linear Regression a la Possibilities When you see the definitions of fuzzy means and fuzzy variances, you may think that regression analysis can also be dealt with in the realm of fuzzy logic. In this section we discuss what approach is being taken in this regard.
First, recall what regression analysis usually means. You have a set of x− values and a corresponding set of y values, constituting a number of sample observations on variables X and Y. In determining a linear regression of Y on X, you are taking Y as the dependent variable, and X as the independent variable, and the linear regression of Y on X is a linear equation expressing Y in terms of X. This equation gives you the line ‘closest’ to the sample points (the scatter diagram) in some sense. You determine the coefficients in the equation as those values that minimize the sum of squares of deviations of the actual y values from the y values from the line. Once the coefficients are determined, you can use the equation to estimate the value of Y for any given value of X. People use regression equations for forecasting. Sometimes you want to consider more than one independent variable, because you feel that there are more than one variable which collectively can explain the variations in the value of the dependent variable. This is your multiple regression model. Choosing your independent variables is where you show your modeling expertise when you want to explain what happens to Y, as X varies. In any case, you realize that it is an optimization problem as well, since the minimization of the sum of squares of deviations is involved. Calculus is used to do this for Linear Regression. Use of calculus methods requires certain continuity properties. When such properties are not present, then some other method has to be used for the optimization problem. The problem can be formulated as a linear programming problem, and techniques for solving linear
logic.
In a previous section, you learned about possibility distributions. The linear regression problem with fuzzy logic is referred to as a linear possibility regression problem. The model, following the description of it by Tarano, Asai, and Sugeno, depends upon a reference function L, and fuzzy numbers in the form of ordered pairs (a, b). We will present fuzzy numbers in the next section and then return to continue our discussion of C++ Neural Networks and Fuzzy Logic:Preface Conditional Fuzzy Mean and Fuzzy Variance 395
the linear possibility regression model. Previous Table of Contents Next Copyright © IDG Books Worldwide, Inc. C++ Neural Networks and Fuzzy Logic:Preface Conditional Fuzzy Mean and Fuzzy Variance 396
C++ Neural Networks and Fuzzy Logic by Valluru B. Rao MTBooks, IDG Books Worldwide, Inc. ISBN: 1558515526 Pub Date: 06/01/95 Previous Table of Contents Next Fuzzy Numbers A fuzzy number is an ordered pair of numbers (a, b) with respect to a reference function L, which gives you the membership function. Here b has to be a positive number. Here are the properties of L, the reference function: 1. It is a function of one variable and is symmetric about 0. That is, L(x) = L(−x). Download 1.14 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling