프로그래밍[Univ]/인공지능

[인공지능] Fuzzy 퍼지 시스템

Cloud Travel 2012. 12. 15. 16:56

* 퍼지 사고

 - 모호한 용어를 사용하는 전문가의 지식을 컴퓨터에 수치화 하여 나타낼 방법을 모색

 - 모호한 용어와 같이 모호한 대상을 다루는 논리가 퍼지 논리(Fuzzy logic)이다.

 - 또한 퍼지 논리를 조절 할 수 있는 것이 퍼지 집합(Fuzzy set)이다.

 - Boolean Logic vs Fuzzy logic 

  > 전통적인 논리는 이분법에 의해 구분되게 된다.

  > 퍼지논리는 사람이 생각하는 방식을 반영하여, 사람의 인식을 모델링 한다.

 - Jan Lukasiewicz : 모호함을 수학적으로 바꾸는 것을 최초로 시도한 사람

  > 0~1과 사이의 수치로 진리값을 사용하여, 문장이 참이나 거짓이 되는 가능성을 나타냈다.

   eg) 만약 온도가 40도라면 0.8의 확률로 뜨겁다.

  > 모호한 대상을 다루는 "가능성 이론(Possibility theory)"이 나오게 되었다.

 - Lotifi Zadeh : 퍼지 이론을 재발견 하여 이를 증명, 응용하는데 기여한 사람

 - Binary logic vs Fuzzy logic

  > 퍼지 논리는 이진 논리 처럼 소속을 확연히 구분 짓는 것이 아니라, 특정 논리가 그 집합에 어느정도 속하는 지를 표현

  > 이진 논리가 참과 거짓, 두 개로 나뉘는 2치 논리라면 퍼지 논리는 다치 논리이다.

  > 그 값이 집합에 어느정도 속하는 지를 나타내는 것을 소속도라고 하며, 0과 1사이의 연속된 논리값을 사용한다.

  > 이러한 특징에 의해 특정 값은 여러 집합 속할 수 가 있다.

  > Fuzzy logic에 의해 나타나는 소속도 값의 모양은 Sigmoid함수와 비슷한 모양을 갖는다.

   (적분계산의 편의를 위해서 소속도 값의 모양을 시그모이드, 가우스, 파이 함수 형태로 바꾸기도 한다.)


* 퍼지 집합

 - 단순히 경계가 모호한 집합

 - 소속도 함수를 사용하여 그 값이 0과 1중 어느정도에 속하는지를 판단한다. 


--------------------------------------------------------------------------------------------------------------

이후는 우리가 잘 알고 있는 고전적 집합과 퍼지집합을 비교하면서 설명이 된다.


* 집합의 식

 1) 고전적 집합

  - 특성 함수를 사용하여 표현한다. ( 특성함수 : f(x) )

 

 2) 퍼지 집합

  - 소속 함수를 사용하여 표현한다. ( 소속함수 : μ(x) )

  

  - 소속 함수는 x의 값에 따라 그 값이 A집합에 어느정도 포함되는지를 나타낸다.

 3) 고전적 집합과 퍼지 집합의 차이점

  

  - 고전적 집합에서 x1은 1, x2는 0의 소속도를 갖는다.

    하지만 퍼지 집합에 적용하면, 모호함이 적용되여 x1은 1, x2는 0.4의 소속도를 갖는다.


* 집합의 표현

 1) 고전적 집합과 퍼지 집합모두 같은 방식으로 표현을 한다.

  A = { (x1,소속도), (x2, 소속도), ... (xn, 소속도) }

  

   (왼쪽 그림은 고전적인 집합의 모습, 오른쪽 그림은 퍼지 집합에서의 모습을 나타낸다.)

   - 고전적 집합의 표현 : A = { (x1,0), (x2,1), (x3,0) }

   - 퍼지 집합의 표현 : A = { (x1,0.7), (x2,1.0), (x3,0.3) }

    > 간단하게 A = ( 0.7/x1, 1.0/x2, 0.3/x3 ) 으로 표현도 가능하다.(소속도/값)


* 언어 변수 & 헤지(Hedge)

 - 언어 변수 = 퍼지 변수

  ex) 속도가 빠르다.  // "속도"라는 언어변수는 "빠르다"라는 값을 취한다.

 - Hedge : 언어 변수에 일종의 연산을 가한다.

  ex) 속도가 빠르다 -Hedge(매우)→ 속도가 매우 빠르다.

  > Hedge는 퍼지 집합을 확장 시키거나 축소 시킨다. 

  > 퍼지 집합이 커지는 경우 "확장 연산"을 적용했다고 한다.

  > 퍼지 집합이 축소되는 경우 "집중 연산"을 적용했다고 한다.

  > 이외에 퍼지 집합의 특징을 확실하게 하기 위한 "강화 연산"이 존재한다.


  

 - Fuzzy 연구회에서는 각 Hedge에 따른 소속도 변화량을 통계내어 수식화 하였다.

  1) 매우 

   

  2) 몹시

   

 3) 매우매우

   

 4) 다소

  

 5) 확실히

  


* 퍼지 집합 연산

 다음의 그림을 토대로 각각의 집합연산 결과를 나타낼 것이다.

 

 - 여집합

  > 전통 집합 : 그 집합에 속하지 않은 원소

  > 퍼지 집합 : 특정 원소가 얼마만큼 그 집합에서 벗어나 있는가

 

 - 포함관계

  > 전통 집합 : 어떤 집합이 다른 집합에 속하는가?

  > 퍼지 집합 : 어떤 집합이 다른 집합에 속하는가?

                   : 부분 집합관계가 되면 구간별 소속도가 어느정도 줄어들지만, 어느정도 줄어드는지는 모른다.

 - 교집합

  > 전통 집합 : 두 집합에 모두 속하는 원소

  > 퍼지 집합 : 두 집합에 어느정도 속하는가?

 

 - 합집합

  > 전통 집합 : 두 집합중 한 곳이라도 속하는 원소

  > 퍼지 집합 : 두 집합에 얼마만큼 속하는가?

  


* 퍼지 규칙

 - IF, THEN 형식으로 정의가 가능하다.

  ex) IF X is A THEN Y is B.

   > X, Y : 언어 변수

   > A, B : 논의 영역

 - 전건을 평가하여 후건에 적용하여 결과를 얻어내는 "단조 선택"기법이 Fuzzy추론의 시작점이다.

  1) 전건의 평가 : 모든 규칙은 전건에 의해 특정 소속도 값을 갖게 된다.

   ex) X가 A에 어느정도 속하는가?(소속 함수를 이용)

  2) 후건에 결과 표현 : 전건에 나온 소속도 값을 B에 소속도로 사용하여 Y의 값을 구한다. > 출력값 = Y

   ex) 전건의 결과 K, K를 소속도로 갖게 하는 Y의 값은 얼마인가?

   단조 선택(monotonic selection) ex)

    

 - 여러개의 규칙에서 나온 값(Fuzzy Result)를 하나의 퍼지 값으로 변경하는 방법이 필요하다.


* 퍼지 추론

 ⓐ 맘다니형 추론

  1) 퍼지화 : 사용자의 입력 값이 퍼지 집합 각각에 어느 정도 속하는지 계산하는 과정

  2) 규칙 평가 : 각각의 주어진 퍼지 규칙을 평가하여 나온 소속도 값을 후건의 소속 함수에 적용하는 과정

   > 적용법(Clipping & Scaling) : 맘다니형 뿐만아니라 스게노형에도 사용된다.

   

   > 계산의 편의를 위해 대부분 클리핑을 사용한다.

  3) 결과 통합 : 각각 규칙에서 나온 결과를 하나로 합치는 과정

  4) 역퍼지화 : 통합된 규칙에서 하나의 값(결론)을 도출해 내는 과정

   > 무게 중심 법을 사용하여 결론의 무게 중심을 구한다.

   

   > 무게 중심 법의 적용은 적분이 아니다. 구분 구적법으로 일정 간격을 잘라서 계산하면 된다.


 ⓑ 스게노형 추론

  > 스게노형은 맘다니형과 똑같은 과정을 거치지만, 계산을 단순화 하였다.

  > 각 규칙에서 나온 그 선분의 값만을 이용해서 COG값을 계산해낸다. 

 - 스게노형과 맘다니형의 차이

 > 맘다니형 : 전문가의 지식을 얻는데 주로 사용. 전문 지식을 직관적이고 사람이 하듯이 설명이 가능. 계산 비용 많음.

 > 스게노형 : 계산이 효율적임. 최적화나 적응형 기법과 잘 작동. 제어 문제 및 동적 비선형 시스템에 매우 적합.


* 퍼지 추론의 예