Support Vector Machine

한지훈·2023년 5월 29일
0

머신러닝

목록 보기
16/16

Support Vector Machie은 Classfier에서 사용할 수 있는 강력한 머신러닝 모델이다.

Support Vector Machie(SVM)은 결정 경계(Decision Boundary)를 정의하는 모델이다.

다음 군집을 이루고 있는 데이터의 결정 경계는 다음과 같은 간단한 일차선 형태가 될 것이다.

하지만 차원이 3차원으로 늘어난다면 결정 경계는 다음과 같이 평면의 평태가 될 것이다.

우리는 시각적으로 인지할 수 있는 범위는 딱 3차원까지이다. 차원, 즉 속성의 개수가 늘어나면 늘어날수록 복잡해질 것이다. 결정 경계도 단순한 평면이 아닌 고차원의 형태가 될 것인데 이를 초평면(Hyperplane)이라 한다.

위의 사진은 똑같은 데이터에 각자 다른 결정 경계를 표시한 사진이다. 어떤 선이 최적의 결정 경계일까?.
Graph F가 될 것이다. 두 클래스 사이의 거리가 가장 멀기 때문이다. 이처럼 결정 경계는 군집으로부터 최대한 멀리 떨어지는 것이 좋다. 이 거리를 Margin이라 한다.

즉 최적의 결정 경계는 마진을 최대화하는 것이다. 마진의 크기를 최대화하려면 이상치(Outlier)을 잘 다루는 것이 중요하다. 다음 사진들을 확인해보자.

위의 그림은 이상치를 허용하지 않은 상태이다. 이것을 Hard Margin이라 부른다. 그리고 해당 경우는 마진이 매우 작아진다. 이러한 Hard Margin은 Margin이 작아지는 것 뿐만 아니라, 학습 데이터에 대한 Overfitting 문제가 발생할 수 있다.

아래의 그림은 이상치를 어느정도 허용한 상태이다. 이것을 Soft Margin이라 부른다. 그리고 해당 경우는 마진이 커진다.. 이러한 Soft Margin은 Margin이 증가하지만, 학습 데이터에 대한 Underfitting 문제가 발생할 수 있다.

지금까지는 Linear의 결정 경계에 대한 데이터셋으로 예시를 들었다. 하지만 일상생활에서 Linear한 데이터는 거의 없을 것이다. 만약 이러한 데이터셋이 있다면 어떨까?

해당 데이터셋은 직선이 아닌, 원으로 그려야 할 것이다. 이러한 데이터셋을 위하여, SVM 모델은 Kernel을 선택할 수 있다.

  1. 다항식 (Polynomial)

  2. 방사 기저 함수 (Radial Bias Function: RBF)

RBF Kernel 혹은 Gaussian Kernel이라 부른다. 이 커널은 sciklit-learn의 SVC모델의 Default에 해당된다. RBF 커널은 2차원의 점을 무한한 차원의 점으로 변환하는 알고리즘이다.

SVM에서 마진을 최대화하기 위해서는 이상치를 허용하는 방법도 있지만, gamma라는 파라미터를 사용하는 방법이 있다. gamma는 결정 경계를 얼마나 유연하게 그리는가를 정해주는 것이다.

  • gamma 값을 높이면 학습 데이터에 많이 의존을 하여, 결정 경계가 구불구불 해진다. 이는 Overfitting을 초래할 수 있다.

  • gamma 값을 낮추면 학습 데이터에 별로 의존을 하지 않아, 결정 경계가 직선에 가깝게 된다. 이는 Underfitting을 초래할 수 있다.

gamma가 높은 경우

gamma가 낮은 경우

profile
노력하는 개발자

0개의 댓글