퍼지 이론 (Lecture Note #13) 인공지능 이복주 단국대학교 컴퓨터공학과 Modified from the slides by SciTech Media 퍼지 이론 (Lecture Note #13) 인공지능 이복주 단국대학교 컴퓨터공학과
Outline 퍼지 이론 (Fuzzy Theory) 퍼지 집합 (Fuzzy Set) 퍼지 관계 (Fuzzy Relation) 퍼지 수 (Fuzzy Number) 퍼지 추론 (Fuzzy Inference) 퍼지 제어 응용 (Fuzzy Control Application)
퍼지 추론 (Fuzzy Inference) 퍼지 명제: 애매함이 포함된 언어적 명제 (linguistic proposition) x∈X, A가 X의 퍼지 집합일 때 퍼지 명제 P 퍼지 명제: P = “x is A” 예) P: “지하철이 있는 도시는 매우 큰 도시이다” X: “모든 도시”, A: “매우 큰 도시” 퍼지 조건 명제 P → Q = if P then Q = if “x is A” then “y is B” = (x, y) is RP→Q RP→Q: 조건 명제 P → Q에 대한 X Y 상의 퍼지 관계 P: 전건부 (antecedent portion) Q: 후건부 (consequent portion)
퍼지 추론 퍼지 추론 (Fuzzy Reasoning) 퍼지 추론: 몇 개의 퍼지 명제로부터 하나의 다른 근사적인 퍼지 명제를 유도하는 근사 추론 (approximate reasoning) 긍정식(modus ponens)가 추론의 기반 [ P와 PQ가 참이면, Q가 참 ] 임을 주장하는 규칙 “영희는 미인이다” 와 “미인은 박명한다”의 경우 일반 추론: “영희는 박명한다” 퍼지 추론: “영희는 미인인 정도 만큼 박명한다” 일반화된 긍정식(generalized modus ponens): 전제와 전건부가 완전 일치가 안됨 → 후건부도 결론과 완전 일치가 안됨 [전제] P+ : “저 아기는 매우 기분이 좋다” [조건] P → Q : “만일 아기가 기분이 좋으면, 그 아기는 웃는다” [결론] Q+ : “저 아기는 매우 웃는다”
퍼지 추론 퍼지 추론의 합성 규칙 일반화된 긍정식에 대한 구체적인 추론 방법 일반 형식 관계 개념을 퍼지 명제에 대한 관계 개념으로 확장, 최대-최소 합성 연산에 의한 근사적 결론을 추론 일반 형식 [전제] P1 : “x is A” [조건] P2 : “(x, y) is R” [결론] Q : “y is AR” 실제 추론에서 퍼지 조건 명제가 사용될 경우 [전제] P1 : “x is A+” [조건] P2 : if “x is A” then “y is B” [결론] Q : “y is B+” → B+ = A+RA→B 퍼지 조건 명제와 퍼지 관계의 변환이 중요: 표준 해결 방법은 없음
퍼지 추론 직접법에 의한 퍼지 추론 A → B에 대한 RA→B의 결정 방법(실용상 간편한 방법) [전제] P+ : “x is A+” [조건] PQ : if “x is A” then “y is B” [결론] Q + : “y is A+RA→B” RA→B ≡ RP→Q , 퍼지 조건 명제 P → Q ≡ 퍼지 집합을 이용한 관계 A → B A → B에 대한 RA→B의 결정 방법(실용상 간편한 방법) 조건 명제와 동치인 논리식 사용 (P → Q ≡ ~P∨Q ≡ (P∧Q)∨~P 이용) RA→B = R(A∧B)∨~A로 하여 소속함수는 Rescher의 다진 논리 A B의 crisp logic의 연장
퍼지 추론 A → B에 대한 RA→B의 결정 방법 (계속) Lukasiewicz의 다진 논리 변형 Mamdani의 제안 일반적으로 가장 많이 사용 → 각 방법에 따른 결론은 퍼지 관계가 다르므로 반드시 같지는 않다. [ 를 사용한 결론] : “y is A+ “
퍼지 추론의 예 X=Y={1, 2, 3} A: “x∈X가 작다”에 대한 퍼지 집합 = {1.0/1, 0.5/2, 0/3} B: “y∈Y가 크다”에 대한 퍼지 집합 = {0/1, 0.5/2, 1.0/3} A+: “x∈X가 매우 작다”에 대한 퍼지 집합 = {1.0/1, 0.25/2, 0/3} Rz, Rr, Re, Rm 각각을 구한다. 각 방법에 의한 추론 결과는 [전제] P1 : “x is A+” ; 1이 매우 작다 (1.0) [조건] P2 : if “x is A” then “y is B” ; 1이 작으면 2는 크다 [결론] Q : “y is B+” ; 2는 매우 크다 (0.5)
퍼지 추론의 예 퍼지 조건 명제가 2개 이상인 일반적인 퍼지 추론 [전제] P+ : “x is A+” [조건] P1 → Q1 : if “x is A1” then “y is B1” P2 → Q2 : if “x is A2” then “y is B2” … Pn → Qn : if “x is An” then “y is Bn” [결론] Q+ : “y is B+” 조건들을 Or 또는 And로 취급하는 방식에 따라 추론 방식이 달라진다. Or 관계 And 관계
퍼지 이론의 응용 퍼지 이론의 응용 인공지능, 지능 제어, 전문가 시스템, 패턴 인식 의료, 정보 검색, 가전제품 의사 결정 지원, 앙케이트 조사 퍼지 제어 세탁기, 카메라, 차량 제어 등 어느 정도 실용화 가장 많이 적용 Production system과의 차이점 주로 1단계 추론으로 단순한 기술 적용 퍼지 전문가 시스템 문제 영역 전문가의 지식에 대해서 생성 방식으로 추론이 진행 전문가의 지식을 사실과 규칙으로 나누어 복잡한 추론 과정 진행 지식에 fuzziness를 도입 → 퍼지 생성 시스템 (production system) 퍼지 전문가 문진 시스템 Z-II: 심리 분석, 위험 분석 K-SISS: 주가 예측, 매매 결정 시스템 SPERIL: 건물의 구조 피해 진단 시스템
퍼지 이론의 응용 퍼지 제어 예 i번째 규칙 Ri x = a, y = b일 때 z의 값은? 세탁물(x)이 많아지고 (Ai) 세탁물의 오염도 (y)가 높을수록 (Bi), 세제의 사용량을 증가시켜라 (Ci) Ai, Bi, Ci는 퍼지집합 x = a, y = b일 때 z의 값은? Antecedent와의 적합도를 구한다 (그림 5.6 (a)) 결론 부분에 전달하여 결론 퍼지집합 구한다 (그림 5.6(b))
퍼지 이론의 응용 퍼지 제어 예 (계속) 퍼지이론 응용 연구의 trend 다른 규칙에 대해서도 같은 방법으로 결론 퍼지 집합 구한다 (그림 5.7) Max 방법을 사용 구한 모든 결론 퍼지 집합들로부터 비퍼지화 (defuzzification) 한다 무게 중심 (center of gravity)방식이 많이 쓰임 퍼지이론 응용 연구의 trend Genetic Algorithm + Fuzzy System Neural Network + Fuzzy System
Fuzzy Control Application on a Traffic Road Inputs = {Arrival, Queue} Output = {Extension} 퍼지 교통제어 Fuzzy Logic Control inputs output
Fuzzy Control N W E S Traffic simulator Arrival : Green 신호에 진입한 차량 수 N (7대), S (8대) = 15대 Queue : Red 신호에 대기하는 차량 수 W (6대), E (5대) = 11대 Front detector W E Rear detector S
Fuzzy Control 추론 f1: A=10 & Q=20 then E=0초 f2: A=20 & Q=5 then E=10초 Primitive time (기본주기): 18초, A=10, Q=20 Extension time: Primitive time 이외의 연장시간 f1: A=10 & Q=20 then E=0초 f2: A=20 & Q=5 then E=10초 f3: A=0 & Q=0 then E=?초
Fuzzy Control 1. Fuzzy input variables & their membership functions zero light normal heavy zero light normal heavy 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 zero short medium long 0 1 2 3 4 5 6 7 8 9 10
Fuzzy Control 2. Fuzzy control rules (rule의 개수 4*4=16) Extension
Fuzzy Control 규칙설명 R1: if Arrival = Z and Queue = Z then Extension = Z (Zero) R2: if Arrival = Z and Queue = S then Extension = Z R3: if Arrival = Z and Queue = M then Extension = Z R4: if Arrival = Z and Queue = L then Extension = Z R5: if Arrival = S and Queue = Z then Extension = S (Short) R6: if Arrival = S and Queue = S then Extension = Z R7: if Arrival = S and Queue = M then Extension = Z R8: if Arrival = S and Queue = L then Extension = Z R9: if Arrival = M and Queue = Z then Extension = M (Medium) R10: if Arrival = M and Queue = S then Extension = S R11: if Arrival = M and Queue = M then Extension = Z R12: if Arrival = M and Queue = L then Extension = Z R13: if Arrival = L and Queue = Z then Extension = L (Long) R14: if Arrival = L and Queue = S then Extension = M R15: if Arrival = L and Queue = M then Extension = S R16: if Arrival = L and Queue = L then Extension = Z
Fuzzy Control <계산식> Linguistic Label of Extension u[i] * u(i, Extension) Extension = -------------------------- u[i] 16 u[i] = ∑ min(Ri-Arrival, Ri-Queue) i =1 u(i, Extension) = the extension_unit of i-th Rule Linguistic Label of Extension
Fuzzy Control Ex) Arrival = 7 이고 Queue = 5 일 때 Extension = ? R1 : if Arrival(Zero) = 0 and Queue(Zero) = 0 then Extension(Zero) = 0초 R2 : if Arrival(Zero) = 0 and Queue(Short) = 0.2 then Extension(Zero) = 0초 R3 : if Arrival(Zero) = 0 and Queue(Medium) = 0.8 then Extension(Zero) = 0초 R4 : if Arrival(Zero) = 0 and Queue(Long) = 0 then Extension(Zero) = 0초 R5 : if Arrival(Short) = 0 and Queue(Zero) = 0 then Extension(Short) = 3초 R6 : if Arrival(Short) = 0 and Queue(Short) = 0.2 then Extension(Zero) = 0초 R7 : if Arrival(Short) = 0 and Queue(Medium) = 0.8 then Extension(Zero) = 0초 R8 : if Arrival(Short) = 0 and Queue(Long) = 0 then Extension(Zero) = 0초 R9 : if Arrival(Medium) = 0.7 and Queue(Zero) = 0 then Extension(Medium) = 6초 R10 : if Arrival(Medium) = 0.7 and Queue(Short) = 0.2 then Extension(Short) = 3초 R11 : if Arrival(Medium) = 0.7 and Queue(Medium) = 0.8 then Extension(Zero) = 0초 R12 : if Arrival(Medium) = 0.7 and Queue(Long) = 0 then Extension(Zero) = 0초 R13 : if Arrival(Long) = 0.4 and Queue(Zero) = 0 then Extension(Long) = 9초 R14 : if Arrival(Long) = 0.4 and Queue(Short) = 0.2 then Extension(Medium) = 6초 R15 : if Arrival(Long) = 0.4 and Queue(Medium) = 0.8 then Extension(Short) = 3초 R16 : if Arrival(Long) = 0.4 and Queue(Long) = 0 then Extension(Zero) = 0초
Fuzzy Control numerator Extension = -------------- denominator 0.2*3 + 0.7*0 + 0.2*6 + 0.4*3 = --------------------------------------- 0.2 + 0.7 + 0.2 + 0.4 = 2 (sec)
Summary 퍼지 이론 (Fuzzy Theory) 퍼지 집합 (Fuzzy Set) 퍼지 관계 (Fuzzy Relation) 퍼지 수 (Fuzzy Number) 퍼지 추론 (Fuzzy Inference) 퍼지 제어 응용 (Fuzzy Control Application)