rueki

서포트 벡터 머신 (SVM) 본문

머신러닝

서포트 벡터 머신 (SVM)

륵기 2020. 6. 28. 01:00
728x90
반응형

SVM은 복잡한 분류 문제에 적합하며, 적은 규모의 dataset에 적합하다.

기본 개념은 데이터를 분류할 때 선형적으로 구분하겠다는 것인데, Linear SVM으로 설명할 수가 있다.

 

 

가운데의 f(x) = 0 을 SVM 모델이라고 하고, 실선간의 거리를 Margin이라고 한다.

SVM은 분류하고자하는 클래스 사이에 가장 넓은 간격을 갖고자하는데, 그 간격, 즉 Margin 결정에

영향을 주는 것을 Support vector라고 하며, 위의 사진에서 Support Vector는 각 실선위에 위치한 데이터라고 할 수가 있다.

 

SVM은 feature scale에 민감하기에, 스케일 조정하면 Decision boundary가 좋아진다.

 

 

출처 :  https://ratsgo.github.io/

 

직선의 모델을 $W^{T}x + b$라고 하고 각 decision boundary에 해당되는 직선을 평면의 개념으로 보고

위와같이 평면 식을 정의해보자.

맨 위의 평면 x+=x+λw 라고 정의할 때, λ는 평면 간의 이동폭이 될 것이다.

 

 

여기서 margin은 $x^{+}$ 와 $x^{-}$ 사이의 거리로 얘기할 수 있다.

이는 즉, L2 Norm으로 나타낼 수 있다.

 

이번에는 hard margin과 soft margin을 알아보고자 한다.

 

hard margin은 클래스를 완전히 바깥쪽으로 분류하는데, 그러나 이의 단점으로는 데이터가 완전히 분류되지 않는 경우,

혹은 이상치가 존재할 경우에 안좋다.

 

이를 보완하고자 soft margin을 사용하는데, 선형으로 정확하게 분류되는 데이터들은 극히 드물기 때문에 약간의 오분류를 허용하여 모델을 구축한다. 즉 약간의 Margin Violation을 허용함에 따라 간의 전체적인 성능을 높이는 Soft한 방법으로 발전한 형태이다.

728x90
반응형

'머신러닝' 카테고리의 다른 글

Kernel SVM  (0) 2020.06.28
Comments