Você está na página 1de 43

Intelligent Data Analysis

Lecture 2 : Introduction to Fuzzy Logic

Michael R. Berthold
Frank Hoffmann
Lotfi A. Zadeh

Fuzzy Logic

Fuzzy Sets
Fuzzy Numbers
Fuzzy Operators
Fuzzy Rules
Fuzzy Inference
Matlab Fuzzy Toolbox

Resources
Web
Fuzzy & Neuro-Fuzzy Repository at the
University of Southampton
http://www.isis.ecs.soton.ac.uk/resources/nfinfo
Journals
Fuzzy Sets & Systems
IEEE Transactions on Fuzzy Systems
Journal of Approximative Reasoning
Intelligent Data Analysis (electronic)

Resources
Software / Shareware
Xfuzzy (fuzzy system design, verification, synthesis)
NEFCON (Matlab Simulink)
UNFUZZY (C / C++)
FOOL & FOX (Xwindows)
Commercial
Matlab Fuzzy Logic Toolbox
FuzzyTECH by Inform
DataEngine by MIT
SieFuzzy by SIEMENS

Types of Uncertainty
Stochastic uncertainty
example: rolling a dice

Linguistic uncertainty
examples : low price, tall people, young age

Informational uncertainty
- example : credit worthiness, honesty

Classical Sets
young = { x P | age(x) 20 }
characteristic function:
young(x) =
young(x)
1

1 : age(x) 20
0 : age(x) > 20

A=young

x [years]

Fuzzy Sets
Classical Logic

Fuzzy Logic

Element x belongs to set A


or it does not:
(x){0,1}

Element x belongs to set A


with a certain
degree of membership:
(x)[0,1]

A(x)
1

A(x)

A=young

x=23

A=young

x [years]

x=23

x [years]

Fuzzy Set
Definition :
Fuzzy Set A = {(x, A(x)) : x X, A(x) [0,1]}
a universe of discourse X : 0 x 100
a membership function A : X [0,1]
A(x)
=0.8

A=young

1
0
x=23

x [years]

Definitions :
Support of a fuzzy set A
supp(A) = { x X : A(x) > 0 }

Core of a fuzzy set A


core(A) = { x X : A(x) = 1 }

-cut of a fuzzy set A

A = { x X : A(x) }

(x)
1

=0.6

Normalized fuzzy set A


sup x X A(x) = 1

Uni-modal fuzzy set


only one peak

d x

Types of Membership Functions


Trapezoid: <a,b,c,d>

Gaussian: N(m,s)

(x)
1

(x)
1

d x

Triangular: <a,b,b,d>
(x)
1
0

Singleton: (a,1) and (b,0.5)


(x)
1

Membership functions
core: CA:={x | A(x)=1} = [b,c]
A(x)
1

-cut: A:={x | A(x)= }


a

d x

support: SA:={x | A(x)>0} = (a,d)

Fuzzy Numbers
Fuzzy Numbers have restricted fuzzy sets:
X = 1
their core is a point: 1 x : (x)=1
left and right flank of are monotonically
increasing, respectively decreasing

Common choices are triangular MS-functions


easy internal representation (a,b,c)
(x)
1
0

Computing with Fuzzy Numbers


Addition:
(x)
1

A+B(x) = max{A(y), B(z) | x=y+z}


A(x) B(x)

A+B(x)

Multiplication: AB(x) = max{A(y), B(z) | x=yz}


(x)
1
0

A(x) B(x)

AB(x)

The Extension Principle

yy

Assume a fuzzy set A and a function f:


How does the fuzzy set f(A) look like?
For arbitrary functions f:
f(A)(y) = max{A(x) | y=f(x)}

f(A)
(y)
f(A)(y)

ff

A(x)
A(x)

max
x

Operators on Fuzzy Sets


Union

Intersection

AB(x)=max{A(x),B(x)}
1

A(x)

B(x)

AB(x)=min{1,A(x)+B(x)}
1
0

A(x)

AB(x)=min{A(x),B(x)}
A(x) B(x)

B(x)

AB(x)=A(x) B(x)
1

A(x)

B(x)

T-Norms and T-Conorms


A function T : [0,1]x[0,1] => [0,1] is called a t-norm
iff for any u,v,w [0,1]
1. T(u,1) = u
1 as unit
2. u v T(u,w) T(v,w)
monotonicity
3. T(u,v) = T(v,u)
commutativity
4. T(u,T(v,w)) = T(T(u,v),w)
associativity
A t-norm is strict if it is strictly increasing in [0,1]x[0,1]
Examples: min(u,v)
minimum
uv
algebraic product
max(0,u+v-1)
bounded product

T-Conorms or S-norms
A function S : [0,1]x[0,1] => [0,1] is called a t-conorm
or s-norm iff for any u,v,w [0,1]
1. S(u,0) = u
0 as unit
2. u v S(u,w) S(v,w)
monotonicity
3. S(u,v) = S(v,u)
commutativity
4. S(u,S(v,w)) = (S(u,v),w)
associativity
A s-norm is strict if it is strictly increasing in [0,1]x[0,1]
Examples: max(u,v)
maximum
u+v-uv
algebraic sum
min(1,u+v)
bounded sum

Complement
Negation:

A(x)= 1 - A(x)

Negation:

A(x)= -1(1 - (A(x)))

:[0,1] -> [0,1]


Classical law does not always hold:
AA(x) 1
AA(x) 0
Example :

A(x) = 0.6
A(x) = 1 - A(x) = 0.4
AA(x) = max(0.6,0.4) = 0.6 1
AA(x) = min(0.6,0.4) = 0.4 0

De Morgan Law
S(u,v) = 1 T(1-u,1-v)
T(u,v) = 1 S(1-u,1-v)
S(u,v) = N(T(N(u),N(v)))
T(u,v) = N(S(N(u),N(v)))

: N-Dual
: N-Dual

max(u,v) = 1 min(1-u,1-v)
uv = 1 - (1-u)+(1-v) + (1-u)(1-v)
max(0,u+v-1) = 1 - min(1,1-u+1-v)

Operator - Spectrum
S-norms
(T-conorms)

T-norms

drastic bounded algebraic min max algebraic bounded drastic

sum sum sum


product product product

drastic product : T(u,v)=

drastic sum : T(u,v)=

u
v
0

if v=1
if u=1
otherwise

u
v
1

if v=0
if u=0
otherwise

Cylindrical Extension
Imbed a lower dimensional fuzzy set in a higher dimensional space
fuzzy set A with universe of discourse X1 and MSF A and
additional universe X2
Definition: CX1xX2 A is called the cylindrical extension of A to
the universe X1x X2 iff

(x1,x2) X1x X2

: CX1xX2 A(x1,x2) = A (x1)

Cartesian Product
fuzzy set A with universe of discourse X1 and MSF A and
fuzzy set B with universe of discourse X2 and MSF B and
Definition: AxB is called the cartesian product of A and B to
the universe X1x X2 iff

(x1,x2) X1x X2

: AxB (x1,x2) = min (A (x1), B (x2))

Notice: min can be replaced by any other t-norm

Fuzzy Relations
classical relation
R X x Y defined by R(x,y) =

1 iff (x,y) R

{ 0 iff (x,y) | R

fuzzy relation
R X x Y defined by R(x,y) [0,1]
R(x,y) describes to which degree x and y are related
It can also be interpreted as the truth value of the proposition x R y

Fuzzy Relations
Example:
X = { rainy, cloudy, sunny }
Y = { sun bathing, bicycling, camping, reading }
X/Y sun bathing

rainy
cloudy
sunny

bicycling

camping

reading

0.0

0.2

0.0

1.0

0.0

0.8

0.3

0.3

1.0

0.2

0.7

0.0

Fuzzy Sets & Linguistic Variables


A linguistic variable combines several fuzzy sets.
example:
linguistic variable : temperature
linguistics terms (fuzzy sets) : { cold, warm, hot }
(x)
1
0

cold

warm

20

hot

60

x [C]

Fuzzy Rules
causal dependencies can be expressed in
form of if-then-rules
general form:
if <antecedent> then <consequence>
example:
if temperature is cold and oil is cheap
then heating is high
linguistic variables

linguistic values/terms (fuzzy sets)

Fuzzy Rulebase
Heating
Oil price:

Temperature :
cold

warm

hot

cheap

high

high

medium

normal

high

medium

low

expensive

medium

low

low

if temperature is cold and oil price is low then heating is high


if temperature is hot and oil price is normal then heating is low

Fuzzy Knowledge-Base
Fuzzy Knowledge-Base
Fuzzy Data-Base:
Definition of linguistic input and output variables
Definition of fuzzy membership functions

(x)
cold
1
0

warm
20

hot
60

x [C]

Fuzzy Rule-Base:
List of fuzzy rules
if temperature is cold and oil price is cheap
then heating is high
.

Fuzzy Inference
1. Fuzzification
Determine degree of membership for each term of an
input variable :
temperature : t=15 C
1
0.5
0

oilprice : p=$13/barrel

cold(t)=0.5

15C

1
0.3
t 0

temperatur cold ...

cheap(p)=0.3

$13/barrel
oil cheap ...

Fuzzy Inference
2. Combine the terms in one degree of fulfillment for the entire
antecedent using a fuzzy AND: min-operator
1
0.5
0

cold(t)=0.5

15C

1
0.3
t 0

temperatur cold ...

cheap(p)=0.3

$13/barrel

oil cheap ...

ante = min{cold(t), cheap(p)} = min{0.5,0.3} = 0.3

Fuzzy Inference
3. Inference step: Apply the degree of membership of the antecedent
to the consequent of the rule using a t-norm: min or prod operator
1

high(h)

... ante =0.3


0

consequent(h)

min-inference:
cons. = min{ante , high }

... heating high


1
... ante =0.3
0

high(h)

consequent(h)

prod-inference:
cons. = ante high

Fuzzy Inference
4. Aggregate all the rules consequents using the max-operator
for union
... heating high
... heating medium
... heating low
1
0

Defuzzification
5. Determine crisp value from output membership function
for example using Center of Gravity-method:
1

consequent(h)

0
73

COG

Center of singletons defuzzification:


h = i i Ai ci
i i Ai

i = degree of membership fuzzy set i


Ai = area of fuzzy set i
ci = center of gravity of fuzzy set i

Schema of a Fuzzy Decision


Fuzzification

Inference

Defuzzification

rule-base
cold warm hot
0.7

cold =0.7
temp warm
valve half

0.2
measured
temperature

temp cold
valve open

open half

close

0.7
0.2

warm =0.2
temp hot
valve close

hot =0.0

v
crisp output
for valve-setting

Building a Fuzzy System in Matlab


fis=newfis('fuzzy_heating','mamdani');
fis=addvar(fis,'input','temperature',[-10 40]);
fis=addvar(fis,'input','oilprice',[5 30]);
fis=addvar(fis,'output','heating',[0 100]);
fis=addmf(fis,'input',1,'cold','trapmf',[-10 -10 0 10]);
fis=addmf(fis,'input',1,'warm','trapmf',[0 10 20 30]);
fis=addmf(fis,'input',1,'hot','trapmf',[20 30 40 40]);
fis=addmf(fis,'input',2,'cheap','trapmf',[5 5 10 15]);
fis=addmf(fis,'input',2,'normal','trapmf',[10 15 20 25]);
fis=addmf(fis,'input',2,'expensive','trapmf',[20 25 30 30]);
fis=addmf(fis,'output',1,'low','trimf',[0 25 50]);
fis=addmf(fis,'output',1,'medium','trimf',[25 50 75]);
fis=addmf(fis,'output',1,'high','trimf',[50 75 100]);

Building a Fuzzy System in Matlab


1. If (temperature is cold) and (oilprice is normal) then (heating is high) (1)

rulelist=[
2. If (temperature
is cold) and (oilprice is expensive) then (heating is medium) (1)
11311
3. If (temperature
is warm) and (oilprice is cheap) then
12311
first(heating
input is high) (1)
13211
4. If (temperature
is warm) and (oilprice is normal) then
(heating
is medium) (1)
second
input
21311
output
5. If (temperature is cold) and (oilprice is cheap) then
(heating is high) (1)
22211
rule
weight
6. If (temperature
is warm) and (oilprice is expensive)
then
(heating is low) (1)
23111
31211
7. If (temperature
is hot) and (oilprice is cheap) thenoperator
(heating is medium) (1)
(1=AND, 2=OR)
32311
8. If (temperature
is hot) and (oilprice is normal) then (heating is low) (1)
33311];
9. If (temperature is hot) and (oilprice is expensive) then (heating is low) (1)
fis=addrule(fis,rulelist);
showrule(fis)
gensurf(fis);
Surfview(fis);

Fuzzy Systems in Matlab


y=evalfis([x1 x2],fis);
writefis(fismatrix,heating);
fis=readfis(heating);
getfis(fis,input,1)
Name=temperature
NumMFs=3
MFLabels= cold
warm
hot
Range= [-10 40]
getfis(fis,input,1,.mf,1,params)
[ -10 10 0 10]
setfis(fis,input,1,mf,1,params,[-10 5 5 15]);

Takagi-Sugeno-Kang Fuzzy Rules


Mamdani rule: Outputs are fuzzy sets B
if X1 is A1 and X2 is A2 Xn is An then Y is B
TSK- rule: Outputs are functions f(xi)
if X1 is A1 and X2 is A2 . Xn is An then Y=f(x1,x2,..xn)
1. Order TSK- rule: Outputs are linear functions of xi
if X1 is A1 and X2 is A2Xn is An then Y=a0 + a1x1 +anxn

Learning Fuzzy Rule Sets from Data


Adjustable parameters in a Fuzzy Rule Set:
Number,
Distribution,
and shape of membership functions for each
attribute.
consequent for each rule

constructive or adaptive?

Dividing the Input Space


Grid based

Individual membership functions

Grid based Approaches


equidistant grid, assign output of each tile
from nearest example (Wang&Mendel 91)
divide grid at point of largest error
(Higgins&Goodman, 93)
initialize grid equidistant, move
membership functions similar to BackProp
(Nauck&Kruse, 91-95)

Individual Rule Approaches


Derive Fuzzy Rules from Radial Basis
Function Network, using Gaussian
membership functions (several authors)
Extract Rules directly from the data
(Simpson 91, Berthold&Huber95)
Extract Rules from decision trees.

Fine tuning Fuzzy Rule Sets


Heuristics that move membership functions
to minimize error (similar to Back prop)
Convert Rules into Neural Network, then
Train Network and afterwards extract
modified rules.
Use Genetic Algorithms to fine tune rules...

Você também pode gostar