규칙 베이스 — IF-THEN을 숫자로 따라가기
온도와 습도의 소속도를 사용해 IF-THEN 규칙이 얼마나 강하게 발화하는지를 min / max로 계산한다.
입력 소속도 → 규칙별 발화도 → 출력 피크의 절단 → 집약 → 무게중심의 순서로 진행됩니다.
규칙은 3 × 3 = 9개뿐
이 강좌에서는 온도 3개 레이블 × 습도 3개 레이블이므로 규칙 베이스는 9개의 규칙을 가집니다. 표로 정리하면 다음과 같습니다.
| 온도 \ 습도 | 건조 | 보통 | 습함 |
|---|---|---|---|
| 추움 | 약풍 | 약풍 | 중풍 |
| 쾌적 | 약풍 | 중풍 | 중풍 |
| 더움 | 중풍 | 강풍 | 강풍 |
이 표 자체는 거의 일상 언어로 된 규칙에 가깝습니다. 퍼지 제어다운 점은 이 표를 0/1이 아닌 소속도와 함께 사용한다는 점입니다.
AND는 min으로 읽기
입력이 26°C와 68%일 때, 제2장에서 구한 소속도는 다음과 같았습니다.
규칙 "쾌적 AND 습함 → 중풍"의 발화도(firing strength)는 min(0.50, 0.53) = 0.50입니다. 「발화도」는 그 규칙이 얼마나 강하게 효과를 내는지를 0에서 1 사이로 나타내는 값으로, 문헌에 따라서는 「적합도」나 「충족도」라고도 부릅니다. 본 코스에서는 영어 firing strength의 번역어로 「발화도」를 사용합니다. AND를 min으로 두면 "양쪽 모두가 어느 정도 성립해야만 규칙이 강하게 발화한다"라는 직관이 그대로 남습니다.
보충: AND에 min을 사용하는 것은 Mamdani 방식에서의 표준적인 선택지 중 하나로, 퍼지 논리 용어로는 t-norm의 일종입니다. 이 외에도 대수곱(product, μA × μB)이나 드라스틱 곱 같은 다른 t-norm이 존재하며, 응용에 따라 사용을 달리합니다. 본 코스에서는 손 계산이 쉬운 min으로 통일하지만, "min은 유일한 방법이 아니다"라는 점만은 기억해 주세요.
연습문제 3-1 — min으로 발화도 구하기
입력은 실온 26°C, 습도 68%. 쾌적 = 0.50, 더움 = 0.25, 보통 = 0.35, 습함 ≈ 0.53을 사용합니다.
Q1. 규칙 '쾌적 AND 습함 → 중풍'의 발화도는 얼마입니까?
AND = min이므로 min(0.50, 0.53) = 0.50입니다.
Q2. 규칙 '더움 AND 보통 → 강풍'의 발화도는 얼마입니까?
AND = min이므로 min(0.25, 0.35) = 0.25입니다.
Q3. 이 입력에서 발화도가 0보다 큰 규칙은 몇 개입니까?
쾌적 × 보통, 쾌적 × 습함, 더움 × 보통, 더움 × 습함 — 4개의 규칙이 동시에 발화합니다.
같은 출력 레이블에 대응하는 규칙은 max로 모으기
26°C와 68%일 때, 두 개의 규칙이 중풍에 대응하고 두 개의 규칙이 강풍에 대응합니다.
쾌적 × 보통 → 중풍은 0.35쾌적 × 습함 → 중풍은 0.50더움 × 보통 → 강풍은 0.25더움 × 습함 → 강풍은 0.25
출력 측에서는 중풍끼리, 강풍끼리 각각 max로 모읍니다. 그러면 "중풍 0.50, 강풍 0.25"라는 2개의 절단 높이로 정리됩니다. max는 OR을 구현하는 t-conorm의 표준형이지만, 이쪽도 대수합(μA + μB − μA·μB) 같은 다른 선택지가 있습니다.
연습문제 3-2 — 같은 출력 레이블을 max로 집약
앞 연습문제의 발화도를 출력 레이블별로 max를 사용해 집약합니다.
Q1. 중풍 레이블의 집약 높이는 얼마입니까?
중풍에 대응하는 규칙은 0.35와 0.50이므로 max를 취하면 0.50입니다.
Q2. 강풍 레이블의 집약 높이는 얼마입니까?
강풍에 대응하는 규칙은 0.25와 0.25이므로 집약해도 0.25입니다.