Fuzzy Logic - Hiram College

Download Report

Transcript Fuzzy Logic - Hiram College

Fuzzy Logic
CPSC 386 Artificial Intelligence
Ellen Walker
Hiram College
Why fuzzy?
• Imprecision better approximates human
reasoning
– It is warm today.
• 65 degrees F in April is warm
• 65 degrees F in August is cool
• Imprecise calculation can be much faster
(and “good enough”)
– This is the idea behind heuristics
• TSP (0.75%) 1,000,000 cities, 7 months
• TSP (3.5%) 1,000,000 cities, 3.5 hours
Fuzzy vs. Crisp Sets
• Crisp set A
– Each item x is an element of A (100%) or is not
(0%)
• Fuzzy set A
– Each item x has degree of membership in the set
A
– An item can have non-zero membership in both A
and ~A
Membership function
• Horizontal axis: all potential members of the set
(sorted, if possible)
• Vertical axis: membership value from 0 (not at all) to
1 (totally)
cold
warm
0.8
0.2
65F
Temperature
hot
Linguistic Values
• Cold, Warm and Hot are linguistic values,
represented by overlapping membership
functions
• We can also define linguistic modifiers
–
–
–
–
Very A = membership in A squared
Somewhat hot = sqrt (membership in A)
Not A = 1-A
So, “not very A” = 1-A2
Fuzzy Logic Operations
• AND
– X cannot have more membership in the set (A and
B) than it does in A
– Therefore, membership in (A and B) = min
(membership in A, membership in B)
• OR
– X must have at least as much membership in (A or
B) as in A
– Therefore, membership in (A or B) = max
(membership in A, membership in B)
Fuzzy Rules
• The basic fuzzy rule form
– If x is A then y is B
• First, determine membership of x in A
• Then use that value to limit the degree to
which y is B
Example: Adjusting a Bath/Shower
• Rules
– If temperature is cold, then add-hot-water = high
– If temperature is warm, then add-hot-water = med
– If temperature is cold, then add-cold-water = low
– If temperature is warm, then add-cold-water = low
Example: Membership functions
cold
warm
hot
0.8
0.2
65F
Temperature
low
med
Water flow
high
Resulting Membership Functions
low
med
high
Center
of mass
Cold water flow (.8 low, .2 low)
low
med
high
Center
of mass
Hot water flow (.8 med, .2 high)
More complex left sides
• If X is A and Y is B, then Z is C
– Take AND (min) of A and B membership values to
limit C
• If X is A and Y is not B …
– Take min (A, 1-B) membership values to limit C
Designing a Fuzzy Rule-based
System
• Develop linguistic variables for each input
and output variable
• Express a set of rules in terms of variables
– One rule for each input,output combination
• Test and adjust
– Change rules
– Change linguistic variables
• Often done using neural net, genetic algorithm, etc.
Operating a Fuzzy Rule Based
System
• Fuzzify inputs
– Numerical input -> set of linguistic memberships
• Apply rules
– Find the degree to which the left side applies
– Limit the m.f. of the right side at that value
– OR (union) m.f.s of all applicable rules
• Defuzzify output
– Find the center of mass of the resulting fuzzy set,
translate that to a numerical output (if needed)
Rules as Fuzzy Graphs
– If temperature is cold, then add-hot-water = high
– If temperature is warm, then add-hot-water = med
– If temperature is hot, then add-hot-water = low
hot
warm
cold
low
med
high
Advantages of Fuzzy Rules
• Rules are expressed in (close to) natural
language
• Fewer rules are needed because of
interpolation
• No precise thresholds
– Precise thresholds tend to make systems brittle
Fuzzy Clustering
• If you have data that you want to classify, you
are essentially specifying subsets of your
data.
• Crisp clustering = crisp sets. Each item in (at
most) one cluster.
• Fuzzy clustering = fuzzy sets. Items can
belong to multiple clusters (with membership
values between 0 and 1)
– Typically, membership values add up to 1
K Means Clustering (Crisp)
Choose K random cluster centers
Repeat
For each data point (feature vector)
Find the closest cluster
Assign point to cluster
For each cluster
Recompute the center (avg. data pt)
Until clusters don’t change
Fuzzy C-Means Clustering
• Same as fuzzy K-means except:
– Point has (0-1) membership in cluster
– Membership computed based on distance from
center
– Center computed based on weighted average of
cluster members (weight by membership)
• “Borderline points” belong to multiple clusters,
but don’t pull the centers much
• Overlapping clusters make sense