합동회사 코무라소프트
3장

규칙 베이스 — IF-THEN을 숫자로 따라가기

온도와 습도의 소속도를 사용해 IF-THEN 규칙이 얼마나 강하게 발화하는지를 min / max로 계산한다.

Mamdani 형 퍼지 제어의 흐름

입력 소속도 → 규칙별 발화도 → 출력 피크의 절단 → 집약 → 무게중심의 순서로 진행됩니다.

규칙은 3 × 3 = 9개뿐

이 강좌에서는 온도 3개 레이블 × 습도 3개 레이블이므로 규칙 베이스는 9개의 규칙을 가집니다. 표로 정리하면 다음과 같습니다.

온도 \ 습도건조보통습함
추움약풍약풍중풍
쾌적약풍중풍중풍
더움중풍강풍강풍

이 표 자체는 거의 일상 언어로 된 규칙에 가깝습니다. 퍼지 제어다운 점은 이 표를 0/1이 아닌 소속도와 함께 사용한다는 점입니다.

AND는 min으로 읽기

입력이 26°C와 68%일 때, 제2장에서 구한 소속도는 다음과 같았습니다.

쾌적 0.50 더움 0.25 보통 0.35 습함 0.53

규칙 "쾌적 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 습함 → 중풍'의 발화도는 얼마입니까?

Q2. 규칙 '더움 AND 보통 → 강풍'의 발화도는 얼마입니까?

Q3. 이 입력에서 발화도가 0보다 큰 규칙은 몇 개입니까?

같은 출력 레이블에 대응하는 규칙은 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. 중풍 레이블의 집약 높이는 얼마입니까?

Q2. 강풍 레이블의 집약 높이는 얼마입니까?

이 장에서 정말 중요한 것은 두 가지뿐

AND = min
두 입력 레이블이 모두 강할 때만 규칙이 강하게 발화합니다.
같은 출력 레이블 → max
여러 규칙이 중풍을 주장하더라도 가장 강한 주장만 남기면 충분합니다.