[ML개론] (3) Rule Based ML overview
본격적인 머신러닝 공부에 앞서 ML에 대한 정의와 Rule Based ML의 의의와 그 한계점을 살펴본다.
ML은 1)experience를 통해 학습하고, 2)이는 계층화된 것에 대해 진행되며, 3)이러한 학습과 진행양상은 performance measure에 의해 계측된다. 더많은 시도와 더많은 사전지식을 통해 학습하면 peformance measure를 올릴 수 있는 구조다.
가령 이번 장을 통해 살펴볼 Rule Based ML은, 다양한 case를 통해 학습하고, Y/N라는 class로 양분된 종속변수가 존재하며, 모델의 성능을 측정할 measure가 존재한다. 시작에 앞서 본 Rule Based ML은 다음 세가지 가정을 따른다고 약속한다.
첫째, 관측에 있어서 오차가 없다. 지속가능하며 양립가능한 관측치만 있을 뿐이다.
둘째, 시스템 자체의 확률적인 변수가 없다.
셋째, 시스템을 설명하기 위한 모든 정보가 관측치에 담겨져 있다.
이는 현실세계와는 상당히 위배되는 조건들이기 때문에 Rule Based ML을 활용되지 못하고 있다.
ML의 목적은 의사결정을 내리는 특정 모형, 함수에 대해 최대한 유사한 모형을 근사하는 것이다.
이를 위해선 다음 세가지 요인이 필요하다.
첫째, instance인 X가 필요하다. X는 data의 특성을 categorize하는 feature O와 data의 class를 결정짓는 label로 구성된다. 가령 어린아이가 수영장에 나가놀고 싶다는 판단을 내리는 모형은 <날씨, 온도, 습도, 바람, 물온도, 날씨전망> 등의 feature에 의존한다는 것이다. 그 feature의 움직임에 따라 label인 Yes/No가 결정된다.
둘째, 이러한 instance에 대한 정보를 담고 있는 Training dataset D가 필요하다. 이는 X에 대한 정보를 모두 담고 있는 하나의 data다.
셋째, hypothesis H가 필요하다. H는 feature 정보인 X를 갖고 Y를 결정하는 function을 추측한다. 가령 <sunny, warm, ?, ?, ?, same>일 때 <Yes>가 도출된다는 hypothesis H1이 존재한다고 해보자. 우리는 Training dataset D를 통해 총 3^6가지의 hypothesis 중 최적의 가설을 찾아야 한다. 이 과정이 결국 실제 모형인 Target function으로 근사하는 과정인 것이다.
우리는 최적의 hypothesis를 찾기 위해 가장 general한 가정과 가장 specific한 가정 사이의 무언가를 dataset을 통해 찾아내야만 한다.
이를 우리는 S-algorythm이라 명명한다. 우선 가장 specific한 hypothesis에서 시작한다. 이는 <∅,∅,∅,∅,∅,∅>와 같이 그 무엇도 아닌것으로 표현된다. 그리고나선 각 class가 Yes인 dataset을 차례로 검증하는 절차를 밟는다. 특정 dataset 내 feature과 현재 hypothesis h0의 feature가 상충되는 경우, 이를 dataset의 feature를 포함하는 것으로 바꾼다. 최종적으로 도출된 h3<s,w,n,?,w,?>이 실제 모형과 유사한 것으로 추측한다.
그러나 S-algorythm의 경우 가장 specific한 부분부터 시작하여 generalize하는 것이기 때문에 Hypothesis의 Space가 정의되지 않는다. 이는 자원의 낭비로 이어질 가능성이 높다.
따라서 Version Space라는 공간을 정의함으로써 불필요한 algorythm 사용을 방지한다. Version Space는 가지고 있는 dataset 중 가장 general한 hypothesis를 General Boundary로, specific한 것을 Specific Boundary로 설정한다. 위 경우 Yes인 data 중 Sunny, Warm, Strong이 겹친다는 점에서 <S,W,?,S,?,?>가 가장 specific한 것이고, No가 Rainy, Cold이기 때문에 <S,?,?,?,?,?> 혹은 <?,W,?,?,?,?>가 가장 general한 것이다.
우리는 추가적인 data를 통해 boundary 사이의 hypothesis를 추측한다.
이를 Candidate Elimination Algorythm이라 부른다. 가장 specific한 것과 가장 general한 hypothesis로 시작한다. 만약 Yes인 경우 Specific Boundary를 최대한 data의 feature에 맞게 조정한다. 동시에 G가 data의 feature를 만족시키지 못한다면 해당 feature를 ?로 전환한다. 반대의 경우는 그대로 반대로하면 된다.
위와 같은 경우 첫번째 Yes인 data를 통해 S1:<S,W,N,S,W,S>, G1:<S,?,...>, G2:<?,Warm,?,...>, G3:<?,...,Same>으로 boundary가 좁혀졌다. 두번째 data에선 Humid가 이전과 S1과 양립불가하여 Normal이 ?로 generalize되었다.
세번째 data는 가장 general한 3개의 가설조차 통과하지 못하기 때문에 class가 No인것을 확인할 수 있다. 네번째 data는 G1, G2는 통과하지만 G3는 통과하지 않는다. 이 때 class가 Yes이기 때문에 G3를 제거한다. 또한 <...,W,S> 모두 가장 specific한 hypothesis와 양립하지 않기 때문에 S를 generalize해준다. 최종적으로 도출된 S3와 G4 사이에 많은 가설이 존재하며 이 중 하나가 실제 모형과 같을 것이다.