히비스서커스의 블로그

[기계학습 4강] Decision Boundary 본문

Theory/Machine Learning

[기계학습 4강] Decision Boundary

HibisCircus 2021. 4. 8. 23:47
728x90

 내용들은 (KAIST Open Online Course)의 인공지능 및 기계학습 개론 1 Chap. 4강 내용을 기반으로 재구성하였음을 먼저 밝힙니다.

 

 

 

저번 시간에 살펴본 Opitmal Classification model에 대해 다시 살펴보자.

 

 

X의 특정 포인트 $X_1$에서의 Y의 값은 T라는 Class를 가질 때 확률이 a(> 0.5)라고 하자. 이때 Y의 값이 나머지 F라는 Class를 가질 때의 확률은 1-a(< 0.5) 이다. 이때 Classifier가 의미하는 것X의 특정 포인트 $X_1$에서 T라고 분류할 수 있겠지만(a > 0.5이므로) F라고도 분류할 수 있는 것(1-a < 0.5 인 것이지 확률이 0이기 아니기 때문)이다.

 

 

이제 실선의 Classifier와 점선의 Classifier를 비교해보자. 실선의 Classifier는 점선의 Classifier보다 bayes risk를 반달만큼(하늘색 영역만큼) 줄일 수 있다. bayes risk는 작을수록 좋은 것이므로 실선의 Classifier가 더 좋다. 실선의 Classifier를 봐서도 알겠지만 성능이 좋은 Classifier가 되려면(bayes risk가 적게하는 Classifier)가 되려면 Decision Boundary(초록색 선과 빨간색 선이 교차하는 지점)이 되기 전까지는 T와 F의 차이가 매우 크다가 Decision Boundary가 되는 지점에서 급격하게 차이가 줄어드는 모양이 되어야 할 것이다. 그림에서와 같이 S-curve(Sigmoid function이라고도 불린다.)의 모양이 되어야 할 것이다.

 

sigmoid function

 

S-curve의 모양을 써야 성능이 좋은 Classifier를 만들 수 있다는 것을 알게 되었다. 어떻게 S-curve의 모양을 만들 수 있을지는 다음에 알아보기로 하고 먼저 S-curve가 더 좋다는 것을 좀 더 직관적으로 확인해보자.

 

 

 

Classification with One Variable


저번 시간에 사용했던 Credit Approval Datset을 활용하여 이를 알아보자.

 

class $C$는 크레딧을 받았을 때 T(=True, 1)로 받지 못했을 때 F(=False, 0)로 표기한다고 해보자. Response Variable(여기서는 0과 1만을 갖는 Discrete Variable)을 $C$라고 하고 Y axis에 넣어보고, 여러 Feature(X) 중 하나 $A_{15}$ (연속적인 값을 갖는 Continuous Variable) X axis에 넣어보자.

 

 

 

그림의 왼쪽 그래프와 같이 나타나게 된다. X(= $A_{15}$)의 값이 5 이상의 큰 값들도 가지지만 전체적으로 2보다 작은 영역에 많이 몰려있음을 볼 수 있고 Decision Boundary(= 회색의 선)도 이 안에 존재함을 알 수 있다.

 

이들의 차이를 Scailing 해주기 위해 $A_{15}$에 log를 씌워주고 X axis로 해본 것오른쪽 그래프이다. 직관적으로 봐도 좀 더 분류하기 편해보인다.

 

 

Linear Function VS Non-Linear Function


이제 Y의 값을 0과 1로 더 잘 나눌 수 있는 모델을 설계해보자. 빨간색Linear Function(Linear Regression)이고 초록색Non-Linear Function(Sigmoid Function)이다. 

 

 

 

왼쪽 그래프를 먼저 살펴보자. 이는 X axis에 $A_{15}$ 그대로 넣은 그래프이다. 데이터가 X의 값이 0과 2인 곳에 몰려있기 때문에 Decision Boundary와 Classifier를 제대로 확인하기 어렵다. 하지만 확률의 값은 1을 넘을 수 없는데 Linear Function은 X가 4보다 커지는 값들에 대해 확률인 Y의 값이 1보다 커짐을 확인할 수 있다. 따라서, Classfier로 사용하기엔 부적절해보인다.

 

이제 오른쪽 그래프를 살펴보자. 이는 X axis에 $log(A_{15})$를 해준 그래프이다. log scale을 적용해주었기 때문에 Linear Function은 Exponential과 같은 함수로 나타나게 되었고 Non-Linear Function은 S자가 위 아래로 눌린 형태가 되었다. 하지만 위에서 확인했듯이 데이터를 분류하기에는 더 쉽게 데이터가 Scailing 되었다. 

 

여기서 Linear Function의 Decision Boundary를 보고 에러률을 직관적으로 살펴보자. Linear Funtion의 Decision Boundary는 꽤나 오른쪽에 치우쳐져 있어 1로 분류해도 될 것 같은 데이터들(가령 X가 6~9 정도의 값을 가지는 데이터들)에 대해서도 0으로 분류한다. 이는 에러률이 높을 수 밖에 없다. 반면 Non-Linear Function의 Decision Boundary적당한 위치에 존재하여 0과 1을 적절하게 분류할 것처럼 보인다. 즉, 그래프의 모양에서 뿐 아니라 (위에서 동일한 위치의 Decision Boundary에 대해서 S-function이 더 성능이 좋음을 보았다.) Decision Boundary의 위치에서도 Non-Linear Function이 더 좋음을 확인할 수 있다.

 

 

 

 

-히비스서커스-

728x90