Engineer's Background

퍼지이론 Fuzzy Theory

행복지구 2015. 12. 13. 01:21


--

퍼지이론 Fuzzy Theory


퍼지(Fuzzy)는 어렴풋하고 애매모호하다는 뜻으로, 퍼지이론은 애매모호한 인간의 언어를 컴퓨터 언어로 표현하고자 한 이론이다. 자동제어에서는 '경계가 불명확한'이라고 이해하는 것이 적절하다.


1965년 미국 UC 버클리대학의 LotfiA.Zadeh 교수가 퍼지집합(Fuzzy Sets) 논문을 발표했고[각주:1], 1973년 시스템 자동 제어에 응용할 수 있다고 의견을 냈다. 1974년 영국 Mamdani 교수가 스팀 엔진 제어에 처음으로 응용하여 실용 가능성을 보여줬다[각주:2]


1990년대 초부터 상업적으로도 적용되기 시작했다. 가전제품이나 산업현장의 생산 설비의 제어 분야와 문자인식,음성인식 등의 패턴인식 분야에도 활용되고 있다.또한,산업공학,의학,사회과학 분야로도 그 활용 범위가 확대되고 있다.


Zadeh교수는 컴퓨터가 과연 나의 아내는 어느 정도 예쁜가?’와 같은 인간의 감정적이거나 추상적인 자연어를 0과 1만으로 표현하는데 한계있음을 깨닫는다. 인간의 자연스러운 표현을 컴퓨터화하는 Computation with Word을 이용하여 표현하고자 했다. 즉 ‘예쁘다’와 ‘예쁘지 않다’를 1과 0으로 두고 ‘조금 예쁘다’,‘적당히 예쁘다’,‘많이 예쁘다’를 0.2,0.5,0.8 정도라고 표현할 수 있다. 여기서의 0.2,0.5,0.8을 Membership Grade라고 한다.


이와같이 퍼지 알고리즘은 모호한 상태를 수식화하여 시스템을 구축하는데 사용하며,

기존의 컴퓨터의 0과 1로 이뤄진 이진 논리(Binary Logic)의 한계를 극복할 수 있다. 


퍼지제어의 과정은 크게 퍼지화, 퍼지추론, 비퍼지화(혹은 역퍼지화)로 세 부분으로 나눌 수 있다.

 


퍼지화

제어 시스템에서 측정된 정확한(crisp, 크리스프) 입격값들을 퍼지규칙에 의해 각각의 언어값과 소속함수(membership function)로 바꾸는 과정이다. 


문장 안의 모든 수치값들은 정확한 값(crisp value) 혹은 유일한 값(singleton value)이라고 하며, 정확한 값은 단 한번의 명확한 해석으로 정의된 값이다. 반대로, 애매한 값 (fuzzy value) 은 부정확하고 여러 가지로 해석이 가능하며 다른 값이 이 값과 연관된다.


예를 들어, 180cm 이상의 사람을 '키가 큰 사람들의 집합'이라고 정의한다면, 이진논리(Binary logic)를 따르면 신장이 179cm인 사람은 '키가 큰 집단'에 속하지 않는다. 그렇지만 사람들은 키가 179cm이면, 대충 반올림해서 키가 큰 편이다라고 흔히 말하듯, '키가 큰 집단'에 거의(almost) 속한다고 표현할 수 있다. 이와 같이 원소의 어느 집합에 속하는 정도를 표현하는 것이 퍼지논리 표현법이다. 


만일, 방의 온도가 ≥ 30°C 라면, 에어컨을 켠다.


이는 방의 온도가 30°C 이상으로 올라가는 순간 에어컨이 작동하겠다는 의미이다. 그러나 방의 온도가 29.9°C가 되면 에어컨은 작동을 멈추게 된다. 이 제어논리를 따르면 방의 온도가 30.1°C~29.9°C를 왔다갔다 한다면, 에어컨 역시 가동했다 멈추기를 반복하게 될 것이다. 


이 제어문장의 융통성을 향상시키는 방법은 30°C 미만에 대해서도 제어문장을 추가시키는 것이다. 


만일, 방의 온도가 ≥ 30°C 라면, 에어컨 최대출력의 100%로 가동한다.

만일, 방의 온도가 ≥ 25°C 라면, 에어컨 최대출력의 90%로 가동한다.


제어문장을 추가하면, 시스템의 융통성을 향상되지만 조건이 변화하는 것에 대해 제어문장이 각각 필요하게 되므로 제어문장의 수가 늘어가게 된다. 좀 더 복잡하게, 자전거를 타는 로봇을 제어한다고 생각해보자. 자전거의 균형을 잡기위해 자전거 속도, 자전거 핸들의 방향, 노면의 기울기, 로봇의 무게중심의 위치 등을 고려해야할 변수들이 많다. 이 많은 변수들이 변화하는 것에 대해 제어문장을 하나하나 작성하기 어렵다.     


온도를 예로 들어보자. 온도 변수를 퍼지 형태로 정의할 수 있으려면 원하는 온도의 범위를 집합의 수로 나누게 된다. 이해를 돕기 위해 매우 뜨거움, 뜨거움, 따뜻함, 차가움의 집합을 사용하자. 물론, 이 집합의 범위는 더 많거나 혹은 더 적은 집합으로 나뉠 수 있다. 다음은, 각 집합의 값을 할당한다. 대부분의 자연현상은 종 모양(bell shape) 의 곡선을 그리기 때문에 집합의 값은 그림 1(a) 에서처럼 종 형태의 자연곡선의 값에 따라 할당될 것으로 예상할 수 있다. 그러나 실제로는, 자연적인 곡선으로써 할당하는 것은 상대적으로 어려운 반면, 그림 1(b)와 같이 곡선을 간단한 삼각형 형태로 근사화시키는 방법은 그리 정확하지는 않지만 훨씬 그리기 쉽다.



[그림 1] 정확한 값의 퍼지화


[그림 2]  온도에 대한 퍼지집합



퍼지추론

퍼지화를 통해 구한 소속값으로 결과를 추론하는 과정이다. 퍼지 입력을 퍼지 규칙을 이용하여 퍼지 결과를 추론하는 과정.


60°F에서 100°F 까지의 온도를 퍼지집합으로 만들기 위해서 그림 2에서처럼 상당하는 온도범위를 위의 정의처럼 할당한다. 각 집합은 온도들의 집합을 가지며 집합안의 모든 온도는 그림에서 보이듯이 소속도를 가지고 있다. 78°F를 예를 들어보면, 뜨거움에서 0.27, 따뜻함에서 0.7의 소속값을 갖는다. 두 온도집합인 차가움과 매우 뜨거움은 하한이나 상한을 가지며 반대방향으로는 제한이 없기 때문에 삼각형 모양이 아니다.


이와 같은 방법으로 모델링된 소속함수를 수식으로 표현하는 것은 쉽다. 함수의 각 부분을 정의하기 위해 각각의 직선 위의 두 점을 표시한다. 그러면 직선 위의 모든 점들은 쉽게 정의된다. 예를 들면 매우 뜨거움과 뜨거움을 나타내는 함수는 다음과 같이 표현할 수 있다.


인간이 사물을 판정하는 대부분의 어림수는 신기하게도 7 가지를 넘지 않는다. 무지개도 7가지 색으로 구분하 듯, 이것을 일컬어서 매직 세븐이라고 부른다.


아래의 기호는 퍼지알고리즘의 어림수를 표현하는 기호이고, 이를 규칙기반(rule base)를 표 형태로 표현할 수 있다.


'NL' ---------- NEGATIVE LARGE 

'NM' ---------- NEGATIVE MEDIUM 

'NS' ---------- NEGATIVE SMALL 

'Z' ------------ ZERO 

'PS' ----------- POSITIVE SMALL

'PM' ----------- POSITIVE MEDIUM

'PL' ----------- POSITIVE LARGE




퍼지추론 규칙기반 (fuzzy inference rule base) 은 시스템의 제어기에 해당하며 진리표 로직에 기초하고 있다. 규칙기반 (rule base) 은 퍼지집합과 입력 변수, 그리고 출력 변수들과 연관된 규칙의 집합이며 각 경우에 있어서 해야 할 일을 결정하게 해준다. 두 개 이상의 입력변수에 대해 출력변수를 결정하는 퍼지규칙은 And연산, Or연산이 있다. 


만약, 온도가 뜨겁(and) , 습도가 습하다면, 출력을 높여라.

만약 ,온도가 뜨겁거나(or), 습도가 습하면   , 출력을 높여라.


두 값 사이의 퍼지규칙 (fuzzy rule)은 

"그리고 (and)" 연산에 의한 결과는 두 값 중의 최소값이다.

"또는 (or)" 연산에 의한 결과는 두 값 중의 최대값이다.


[그림 3]  규칙의 도식적 표현


역퍼지화(defuzzification)

퍼지 출력을 보통의 수치로 변환시키는 과정이다. 역퍼지화 는 퍼지 출력값을 실제로 사용하기 위해서 등가의 정확한 값(crisp value) 으로 변환하는 것이다. 


퍼지규칙이 평가되고 해당되는 값들이 연산되면 결과의 형태는 다른 출력 퍼지집합에 해당되는 소속도(membership value) 에 관련된 수치값이 될 것이다. 


예를 들어 에어컨 출력의 강도 설정을 꺼짐, 낮게, 중간, 최고로 퍼지화된다고 가정하자. 규칙기반(rule base) 에서 평가한 결과값이 25%이면 낮게이고 75%는 중간이다. 역퍼지화는 에어컨 제어 시스템에 보낼 수 있는 단일값으로 변환하는 과정이다.


역퍼지화하는 데 다양하고도 많은 방법들이 있다.


  무게중심법 (center-of-graity method)


이 방법에서는 구하고자 하는 소속집합의 출력에 대한 등가의 값을 구하기 위해 출력 소속집합의 최대 단일값 (maximum singleton value) 과 각 출력 변수에 대한 소속값을 곱한다. 이러한 각 집합의 등가의 값들은 서로 더해지고 출력 소속값의 합으로 평균화됨으로써 등가 출력값이 출력으로 정의된다. 다음의 내용은 위에서 설명한 방법을 요약한 것이다:


(1) 각 출력 변수에 대한 소속도와 출력집합의 단일값을 곱한다.


(2) 이전 과정이 모든 값을 더하고 출력 소속도의 총합으로 나누어준다.


예를 들면 에어컨 소속집합의 출력에서 얻어진 값들은 낮음이 0.4이고 중간이 0.6이며, 낮음에 대한 단일값은 30%, 중간은 최대 출력의 50%라고 가정하자. 에어컨의 출력값은 다음과 같다.



   맘다니 추론법 (Mamdani's inference method)


이 방법에서는 그림 4에서 보여주듯이 상당하는 소속값에서 각 집합의 소속함수는 절사된다. 남은 소속함수들은 마치 "또는 (or)" 함수처럼 모두 더해진다. 이는 반복된 모든 영역은 마치 하나의 층과 같이 서로 겹쳐진다는 의미이며 위의 결과로 모든 영역을 대표하는 새로운 영역이 생성되며 무게중심법으로 생성된 영역은 등가의 출력이 된다. 맘다니의 방법은 다음과 같이 요약되어진다:


(1) 각각의 출력 소속함수를 자신의 해당하는 소속값에서 잘라내며 이것은 규칙기반에서 찾아 볼 수 있다.


(2) 출력을 단 하나의 영역으로 표현하기 위해서 모든 영역을 "또는 (Or)" 함수로써 통합하고 소속함수로 절사되고 남은 부분을 더한다.


(3) 정확한 출력값으로서 통합된 영역의 무게중심을 계산하라.


대부분의 프로그램은 곡선 아래의 부분을 적분하여 영역을 계산한다. 손으로 푸는 것도 다른 기술을 이용하면 가능하다.


규칙기반의 응용과 역퍼지화, 퍼지화 등의 과정을 통하여 출력으로 응용이 가능한 출력값을 연산할 수 있다. 다음의 예들은 출력값의 연산과정을 설명해 주고 있다.



[그림 4] 맘다니 추론법을 이용한 역퍼지화






[각주:3]



참고 사이트

http://www.g-matrix.pe.kr/feature/ai/fuzzy2.htm

http://www.aistudy.co.kr/fuzzy/fuzzy.htm

http://www.aistudy.co.kr/fuzzy/fuzzy_set_kosko.htm

http://www.aistudy.co.kr/robot/fuzzy_niku.htm

http://ynucc.yu.ac.kr/~shkwon/fuzzy.htm







--

__

2015. 12. 13 작성

2016. 05. 02 수정


  1. L. A. Zadeh, ”Fuzzy alorithm,” Inform. Contr., vol. 12, pp. 94 102, 1968‘ [본문으로]
  2. Mamdani, E. H, ”Applications of fuzzy algorithms for simple dynamic plant, ” Proc. JEE, 121, 12, pp 1585-1588 [본문으로]
  3. http://digilogmap.tistory.com/10 [본문으로]

'Engineer's Background' 카테고리의 다른 글

냉매 Refrigerant  (2) 2015.12.15
맥스웰 방정식 Maxwell's equations  (0) 2015.12.13
엑서지 Exergy  (0) 2015.12.01
랭킨사이클이 카르노사이클보다 효율이 낮은 이유  (0) 2015.11.24
Pitch, Roll ,Yaw  (0) 2015.11.12