본문 바로가기

머신러닝(ML)

서포트 벡터 머신( Support Vector Machine ) 이란...

딥러닝 이전 뛰어난 성능으로 많은 주목을 받았던 고차원 데이터 분류에 좋은 성능을 보이는 서포트 벡터 머신( Support Vector Machine 이하 SVM )이 무엇인지 알아보자.

SVM은 분류를 위한 기준 선인 결정 경계( Decision Boundary )를 정의하는 모델이다. 결정 경계 정의 이후 새로운 데이터가 나타나면 결정 경계를 기준으로 어느 쪽에 속할 지 분류 과제를 수행할 수 있게 된다.

 

결정 경계( Decision Boundary )

예를 들어 보자.

만약 데이터에 2개 속성(feature)만 있다면 결정 경계는 이렇게 간단한 선 형태가 될 거다. 물론 현실에선 초평면( hyperplane )일 것이다. 하지만 초평면을 그릴 순 없으니 우선 선 형태로 생각해 보자.

우선 3개의 선은 두개의 클래스를 잘 분류했다. 그럼다면 어떤 선이 가장 잘 분류한 선일까? 좀 더 나은 분류경계면을 꼽으라면 b2일 거다. 다른 두 선에 비해 두 그룹을 여유있게 가르고 있다. 여기서 마진( margin ) 이라는 개념이 나온다. 결국, SVM은 최대의 마진( margin )을 갖는 경계면을 찾는 기법입니다. 그리고 그 경계면을 결정 경계라고 한다. 그럼 마진( margin )을 한번 보자.

 

마진( margin )

오른쪽 b2 가 왼쪽의 경계면 보다는 훨씬 더 넓은 마진( margin )을 가지고 있다. 결론 최적의 결정 경계는 마진을 최대화한다.

 

서포트 백터

결정 경계의 조건을 알아봤다. 그럼 결정 경계는 어떻게 구할 수 있을까? 이 알고리즘 이름에서 알 수 있듯이 벡터의 도움으로  결정 경계를 정의 할 수 있다. 아래 그림의 3개의 주황색 데이터를 서포트 벡터라고 한다. 최대의 마진을 가진 결정 경계는 해당 벡터로 부터 구해진다.

여기서 SVM의 장점을 알 수 있다. 대부분의 머신러닝 지도 학습 알고리즘은 학습 데이터 전체를 사용하여 학습한다. 그런데 SVM에서는 결정 경계를 정의하는 서포트 벡터만 잘 골라내면 나머지 수많은 데이터들을 무시할 수 있다. 그래서 매우 빠르다.

이상치( outlier )

이상치란? 아래 그림의 오르쫀 빨간점과 왼쪽 파란점이 이상치다. 즉, 통계에서 말하는 이상치 데이터다.

  • 위의 그림 A는 이상치를 허용하지 않은 기준으로 결정 경계를 결정했다. 이렇게 마진을 결정하는 것을 하드 마진(hard margin)이라고 부른다. 마진이 매우 작아진다. 이런 모든 학습 데이터들을 놓치지 않고 분류하는 즉, 아웃라이어를 허용하지 않는 기준으로 결정 경계를 정해버리면 오버피팅( overfitting ) 문제가 발생할 수 있다
  • 그림 B는 이상치들이 마진 안에 어느정도 포함되도록 결정 경계를 잡았다. 소프트 마진( soft margin )이라고 부른다. A와 비교하면 마진이 크다. A와 달리 언더피팅( underfitting ) 문제가 발생할 수 있다.