티스토리 뷰

서포트 벡터 머신(SVM)은 머신러닝의 분류기법 중 하나로 분류 문제 외에 회귀에도 적용이 가능하며 

정확도 측면에서 우수한 결과를 가져온다는 이유로 분류기법 중에서도 최상의 기법으로 알려져 있습니다 !

하지만 의사결정나무처럼 직관적인 해석은 불가능 하기 때문에 이해하는데 어렵다는 단점 또한 가지고 있어요.

그래서 보통 결과해석에는 의사결정나무가 자주 쓰이지만, 높은 정확도를 위해서는 SVM을 주로 사용한다고 합니다.

용어 먼저 알아보고 장단점으로 글을 마무리 하겠습니다!

01 초평면

곡선이 아닌 직선이나 평면으로 데이터를 구별하는 방법을 최대 마진 분류기라고 하고,

최대 마진 분류기가 경계로 사용하는 선이나 면을 초평면(Hyperplane)이라고 합니다.

데이터의 차원에 따라 초평면 차원도 달라집니다.

2, 3 차원의 초평면 [Google - Wikimedia]

02 분리 초평면

분리가 가능한 초평면은 하나가 아닙니다. 이렇게 데이터들을 클래스에 따라 완벽하게 분리하는 초평면들을

분리 초평면(Separating Hyperlane)이라고 합니다. 여기서 해결해야 할 문제는 최적의 분리 초평면을 찾는 거에요!

여러 개의 분리 초평면 [Google - Wikimedia]

03 최대 마진 분류기

데이터와 초평면의 수직 거리(가장 짧은 거리)를 마진(Margin)이라 하고,
마진이 가장 큰 초평면을 최대 마진 초평면(Maximal Margin Hyperplane)이라고 합니다.

데이터가 초평면에 의해 잘 분류된다고 가정할 때, 데이터가 초평면의 어느 쪽에 놓이는지를 기반으로 데이터를 분류하는데, 이것을 최대 마진 분류기(Maximal Margin Classifier)라고 합니다.

실선에 걸친 데이터들은 조금만 움직이면 최대 마진 초평면도 이동될 수밖에 없기 때문에
이 데이터들을 서포트 벡터(Support Vector)라고 해요.

최대 마진과 서포트 벡터 [Google - Wikimedia]

04 서포트 벡터 분류기

최대 마진 분류기는 분리 초평면이 있는 경우엔 데이터를 분류하기 가장 좋은 방법입니다.

하지만 대부분의 경우에 분리 초평면이 존재하지 않을 수도 있고,
그에 따라 최대 마진 분류기도 존재하지 않는 경우도 많습니다.

최대 마진 분류기가 존재하지 않는 경우[1]

이런 문제를 해결하기 위해서 데이터를 분류할 때, 약간의 오차를 허용하는 방식이 있는데, 이것을
소프트 마진(Soft Margin)이라고 합니다.

그리고 소프트 마진을 이용하여 데이터를 분류하는 것을 서포트 벡터 분류기(Support Vector Classifier)이라고 해요.

결국 서포트 벡터 분류기는 최대 마진 분류기를 확장한 것으로 몇몇 관측치를 희생하더라도
나머지 관측치를 더 잘 분류하겠다는 의미이죠. 그러면서 분류 수행에서 과적합도 방지할 수 있게 되겠구요!

중요한건 '어느정도 이 오류를 허용하느냐'인데, 이를 코스트(Cost)라고 합니다.

좌 : 높은 코스트의 폭이 좁은 마진 우 : 낮은 코스트의 폭이 넓은 마진[2]

왼쪽의 결정경계는 특이한 위치에 있는 오류 허용을 최소로 하면서 마진을 좁게 형성한 선이며.
코스트가 높기때문에 훈련데이터에서는 거의 정확히 분류하겠지만
새로운 데이터에 대해서는 분류를 정확하게 하기는 힘들 것이기 때문에 과적합의 가능성이 있어요. 

오른쪽은 오류를 충분히 허용하는 대신에 마진의 폭이 넓어져서 훈련데이터에서는 낮은 정확도를 보일지 몰라도
새로운 테스트 데이터에서는 높은 성능을 보일거에요.

05 서포트 벡터 머신

서포트 벡터 머신(Support Vector Machine)은 앞의 서포트 벡터 분류기를 확장하여
비선형 클래스 경계를 수용할 수 있도록 개발한 분류방법이에요.
즉, 선형 분류기를 비선형구조로 변경하여 데이터를 분류하는 것입니다.
대표적인 경우가 커널 방법을 사용하여 데이터를 분류하는 건데,
커널은 클래스들 사이의 비선형 경계를 수용하기 위해 변수공간을 확장하고자 할 때 사용하는 계산기법입니다.

다항식 커널의 예[3]
방사형 커널의 예[4]

실제로 커널 방법을 사용하여 분류를 한다고 가정하면, 중요한 파라미터는 두 개입니다.

이 두 가지 파라미터를 분석을 수행하기 전에 결정해야 합니다.

  • 코스트(Cost) : 오차 허용 정도의 파라미터. 마진의 너비를 조정합니다.
  • 감마(Gamma) : 초평면이 아닌 커널과 관련된 파라미터. 결정 경계선의 곡률을 조정합니다.

결론적으로, 서포트 벡터 머신으로 예측하는 경우에 분석절차는 다음과 같게 됩니다.

  1. 필요한 데이터 확보, 전처리 그리고 학습 데이터와 테스트 데이터 생성
  2. 서포트 벡터 머신을 수행하기 위한 파라미터 구하기
  3. 확보된 파라미터를 이용해서 서포트 벡터 머신을 이용한 예측 수행

장점

  • 커널 트릭을 사용함으써 특성이 다양한 데이터를 분류하는 데 강하다

N개의 특성을 가진 데이터는 n차원 공간의 데이터 포인트로 표현되고,

N차원 공간 또는 그 이상의 공간에서 초평면을 찾아 데이터 분류가 가능하기 때문입니다.

  • 파라미터(c, gamma)를 이용해 과대적합, 과소적합에 대처할 수 있습니다.
  • 적은 학습 데이터로도 딥러닝만큼 정확도가 높은 분류를 기대할 수 있습니다.

단점

  • 전처리 과정이 상당히 중요합니다.

특성이 비슷한 수치로 구성된 데이터는 SVM을 쉽게 활용 가능하지만, 특성이 다양하거나
확연히 다른 경우에는 데이터 전처리 과정을 통해 데이터 특성 그대로 벡터 공간에 표현해야 합니다.

  • 특성이 많을 경우 결정 경계 및 데이터의 시각화가 어렵습니다.

시각화가 어렵다 보니 수학적 전문 지식이 없는 사람에게는 분류 결과를 이해하기가 힘듭니다.

<참고 문헌>
Minseok-Heo, [나의 첫 머신러닝/딥러닝], Wikibooks, 2019.
이 글은 저자님과 출판사의 참고 허가를 받고 작성되었습니다.

<이미지 출처>
[1]최대마진 분류기가 존재하지 않는 경우
[2]좌 : 높은 코스트의 폭이 좁은 마진 우 : 낮은 코스트의 폭이 넓은 마진
[3]다항식 커널의 예
[4]방사형 커널의 예
http://blog.naver.com/PostView.nhn?blogId=tjdudwo93&logNo=221051481147

 

SVM(Suppot Vector Machine)으로 분류(Classification)하기

-서포트 벡터 머신(Support Vector Machine)- ▶서포트 벡터 머신(SVM)이란? 서포트 벡터 머신(SV...

blog.naver.com

글 보관함