본문 바로가기

인공지능/이론

(11) SVM

SVM(Support Vector Machine)분류회귀, 이상치 탐색까지 활용 가능한 인기있는 머신러닝 모델입니다.

 

이번 글에서는 SVM 분류, SVM 회귀에 대해서 알아보도록 하겠습니다.

 

먼저 SVM 분류에 대해서 알아보도록 하겠습니다.

 

SVM분류선형 SVM분류비선형 SVM분류로 구분됩니다.

 

선형 SVM 분류기는 두 클래스를 나누면서 제일 가까운 훈련 샘플로부터 가능한 가장 멀리 떨어져있으려고 합니다.

 

검정색 실선은 도로의 경계입니다. 빨간색 실선과 가장 가까운 데이터들과의 거리는 마진(margin)입니다.

 

빨간색 실선, 즉 선형 SVM 분류기는 도로의 경계에 걸쳐져 있는 훈련샘플에게만 영향을 받습니다.

그리고 도로의 경계에 걸쳐져 있는 훈련샘플들을 Support Vector라고 합니다.

 

Tip. SVM은 데이터의 스케일에 민감하여 특성들의 스케일을 정규화해주면 더 좋은 결과를 만들어낼 수 있습니다.

 

모든 훈련샘플이 SVM 분류기에 의해 정확히 나누어 진다면 이를 하드 마진 분류라고 합니다.

하지만 항상 하드마진분류를 하기에는 이상치 데이터에 많이 민감하기에 SVM 분류기가 학습을 하지 못하거나 좋은 분류를 하지 못할 수 있습니다.

 

마진을 넓게 하면서 이상치 데이터의 오류 사이에 적절한 균형을 잡아야 합니다. 이를 소프트 마진 분류라고 합니다.

 

SVM 분류기에는 C라는 하이퍼 파라미터가 존재합니다.

 

C가 작을수록 잘못 분류되는 훈련샘플을 더 많이 허용하고, C가 클수록 잘못 분류되는 훈련샘플을 더 적게 허용합니다.

 

모델이 과대적합이라면 C를 낮추어 규제해야 합니다.

 

 

자, 그 다음으로는 비선형 SVM 분류에 대해서 알아보도록 하겠습니다.

비선형 SVM 분류는 특성을 추가하여 선형 분류가 가능하도록 하는것인데, 특성을 추가하는 데에는 주로 두가지 방식이 있습니다. 첫번째로는 다항 특성이고, 두번째로는 유사도 특성입니다.

 

먼저 다항 특성에 대해서 알아보도록 하겠습니다.

 

위와 같은 데이터(특성이 하나인 데이터)는 선형 분류하기 힘들것입니다.

하지만 x^2 의 특성을 y축으로 추가하게 된다면 아래와 같이 선형 분류가 가능할 것입니다.

 

 

이와 같은 방법으로 특성을 추가하는 방식을 다항 특성이라고 합니다.

 

 

이제 유사도 특성에 대해서 알아보도록 하겠습니다.

 

유사도 특성은 특정 랜드마크와 유사도를 측정하여 그 유사도를 특성으로 사용하는 것인데, 여기서는 가우시안 방사 기저 함수를 사용하여 유사도를 측정합니다.

 

가우시안 방사 기저 함수는 다음과 같습니다.

 

여기서 감마(r)는 각 훈련 샘플들의 영향이 어느정도까지 끼치는지 결정하는 하이퍼 파라미터입니다.

감마가 커지면 각 훈련샘플들의 영향이 작아지고, 감마가 작아지면 각 훈련샘플들의 영향이 커집니다.

 

특성을 추가하여 분류를 하는 것은 비선형 분류를 하기에 훌륭한 아이디어였지만, 훈련샘플이 많아지게 되면 더 많은 특성을 추가하여 계산량이 많아진다는 것이 단점이였습니다. 하지만 이를 커널(kernel)이라는 굉장히 훌륭한 메커니즘을 도입하게 되며 SVM은 빛을 발하기 시작했습니다. (이 글에서는 커널에 대해서 더 이상 다루지 않습니다)

 

 

마지막으로는 SVM 회귀에 대해서 알아보도록 하겠습니다.

 

SVM 회귀는 간단합니다. SVM 분류에서 목적을 반대로 하면 됩니다.

SVM 분류에서는 도로 안에 위치한 데이터를 최소화하는 것이 목적이였습니다.

하지만 SVM 회귀에서는 도로 안에 위치하는 데이터들을 최대한 많이 하는 것이 목적입니다.

 

epsilon이라는 하이퍼파라미터로 도로의 폭을 입력받고, 그 폭 안에 최대한 많은 훈련샘플이 들어올 수 있도록 학습해나갑니다.

'인공지능 > 이론' 카테고리의 다른 글

(13) 앙상블  (0) 2021.10.14
(12) 결정 트리  (0) 2021.10.12
(8) 선형회귀 과대적합/과소적합  (0) 2021.10.10
(7) 경사하강법  (0) 2021.10.10
(6) 선형 회귀  (0) 2021.10.10