2020. 12. 31. 18:33ㆍ머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로
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의 목적함수는 위의 제약조건 하에서 마진을 최대화하는 것이 되는 것이다. 또한 위와 같은 분류를 하드 마진 분류라고 한다.
소프트 마진 분류
- 선형적으로 구분되지 않는 데이터에서 적절한 비용을 손해보면서 분류하는 것
- 이를 위해 슬랙 변수 \( 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값이 커지면 오차에 대한 비용이 커진다.
'머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로' 카테고리의 다른 글
[6] 의사결정나무의 정보이득과 불순도 (0) | 2021.01.06 |
---|---|
[5] 커널 SVM을 활용한 비선형 문제 해결하기 (0) | 2021.01.04 |
[3] 로지스틱 회귀분석 원리 (0) | 2020.12.31 |
[2] 아달린(Adaline, 적응형 선형 뉴런) 구현해보기 (0) | 2020.12.31 |
[1] 퍼셉트론(Perceptron) 구현해보기 (1) | 2020.12.31 |