[4] 서포트 벡터 머신(SVM) 원리 이해하기 (선형)

2020. 12. 31. 18:33머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로

728x90
반응형

SVM의 최적화 대상은 마진을 최대화하는 것이다.

 

마진 : 클래스를 구분하는 초평면(결정 경계)과 이 초평면에 가장 가까운 훈련 샘플 사이의 거리

* 결정 경계 : 클래스를 구분짓는 경계

 

큰 마진의 결정경계는 일반화 오차가 낮아지는 경향이 있다. 반면 작은 마진의 결정경계는 과대적합되기 쉽다. 때문에 클래스를 구분짓는 경계와 이 경계와의 거리가 가장 가까운 훈련 샘플 사이의 거리가 멀도록 하는 것이 최적화의 목적이다. 다시 말해, 클래스를 잘 구분 지을 수 있는 경계를 찾는 것이 SVM의 역할이다.

 

 

결정 경계와 나란히 놓인 초평면

$$ (1) 결정 경계 W^t X = 0 $$

$$ (2) 양성 샘플쪽의 초평면 W^T X_{pos} = 1 $$

$$ (3) 음성 샘플쪽의 초평면 W^T X_{neg} = -1 $$

 

(1)에서 (2)를 빼면 다음과 같은 결과를 얻는다.

$$ W^T(X_{pos} - X_{neg}) = 2 $$

 

W의 유클라디안 거리로 위의 식을 정규할 수 있다. 

 

$$ ||w|| = \sqrt{\sum_{j=1}^{m} {w_{j}}^2} $$

 

$$  \frac{W^T(X_{pos} - X_{neg})}{||w||} = \frac{2}{||w||}$$

 

*직선과 점 사이의 거리 공식을 생각해보면 이 식의 좌변은 양성 쪽 초평면과 음성 쪽 초평면 사이의 거리로 해석할 수 있다. 이 것이 최대화하려고 하는 마진이다. 따라서 SVM의 목적함수는 \(\frac{2}{||w||}\)를 최대화함으로서 마진을 최대화하는 것이다. 

* 직선과 점 사이의 거리 : \( d = \frac{ax_0 + by_0 + c}{\sqrt{a^2 + b^2}}  \)

** 위의 식에서 a = b, c =0이라고 가정하면 초평면 사이의 거리가 쉽게 이해될 것이다.

 

 

 

제약조건

(1) \( W^tX^{(i)} \ge 1 \)        \( y^{(i)} = 1 \)일 때

(2) \( W^tX^{(i)} \le -1 \)        \( y^{(i)} = -1 \)일 때

i = 1 ~ N까지의 샘플 개수

 

양성 샘플로 분류되기 위해선 \( W^tX^{(i)} = 1 \)보다 커야하기 때문에 (1)의 제약조건이 필요하다.

음성 샘플로 분류되기 위해선 \( W^tX^{(i)} = -1 \)보다 작아야하기 때문에 (2)의 제약조건이 필요하다.

따라서 SVM의 목적함수는 위의 제약조건 하에서 마진을 최대화하는 것이 되는 것이다. 또한 위와 같은 분류를 하드 마진 분류라고 한다.

 

 

hard-margin classification example (iris classification)

 

 

 

소프트 마진 분류

- 선형적으로 구분되지 않는 데이터에서 적절한 비용을 손해보면서 분류하는 것

- 이를 위해 슬랙 변수 \( xi\)를 위 제약 조건에 추가함.

 

(1) \( W^tX^{(i)} \ge 1 - \xi \)        \( y^{(i)} = 1 \)일 때

(2) \( W^tX^{(i)} \le -1 + \xi \)        \( y^{(i)} = -1 \)일 때

i = 1 ~ N까지의 샘플 개수

 

 

위의 제약조건 하에서 최소화할 목적함수는 다음과 같이 정의할 수 있다.

$$ \frac{1}{2}||w||^2 + C \sum_i \xi^{(i)} $$

 

변수 C를 통해 분류 오차에 대한 비용을 조정할 수 있다. C값이 커지면 오차에 대한 비용이 커진다. 

728x90
반응형