1) 예측
선형 SVM 모델 → 단순히 결정 함수를 계산해서 새로운 샘플 x의 클래스 예측
결정 함수 : θTx=θ0+θ1x1+⋯+θnxn
| 결과 > 0 → 양성(1)
| 결과 ≤ 0 → 음성(0)
➡️ 선형 SVM 분류기로 예측하는 것은LogisticRegression과 같음!
2) 훈련
충족해야 하는 조건
✅ 마진 오류 횟수 제한
✅ 마진 커지게 하는 가중지 벡터 w와 편향 b 찾기
s=wx+b
w ↑ : 마진 ↓
b : 마진 크기에 영향 X
도로 넓히려면 w 가능한 한 작게 유지해야함
하드 마진 선형 SVM 분류기의 목적 함수
Hard margin linear SVM classifier objective
minimizew,b21wTw
subject tot(i)(wTx(i)+b)≥1,for i=1,2,…,m
소프트 마진 분류기 목적 함수 구성하려면 각 샘플에 대해
샘플 변수 (slack variable) ζ(i)≥0 도입 필요
ζ(i) : i번째 샘플이 얼마나 마진을 위반할 지 결정
목표 1 : 마진 오류 최소화를 위해 슬랙 변수 최소화
목표 2 : 마진 최대화를 위해 21wTw 최소화
→ 목표 1과 2 상충 : 마진을 최대화하려면 마진을 넓게 가져가야 하지만, 슬랙 변수를 최소화하려면 모든 포인트가 마진 바깥에 놓여야 함.
→하이퍼파라미터 C로 이 두 목표의 트레이드 오프 정의
✅ C가 크다
- 슬랙 변수에 대한 패널티가 크다
- 모델이 슬랙 변수를 최소화하려고 한다
→ 이는 마진을 좁히면서 오차를 줄이는 방향으로 작용
✅ C가 작다
- 마진을 최대화하는 것이 더 중요한 목표가 됨.
- 일부 데이터 포인트가 마진을 침범하더라도 넓은 마진을 유지하고자 함
소프트 마진 선형 SVM 분류기의 목적 함수
Soft margin linear SVM classifier objective
minimizew,b,ζ21wTw+Ci=1∑mζ(i)
subject tot(i)(wTx(i)+b)≥1−ζ(i),ζ(i)≥0,for i=1,2,…,m
3) QP 문제
하드 마진 과 소프트 마진 문제는 모두 선형적인 제약 있는 볼록 함수의 이차 최적화 문제 → Quadratic programming 문제라고 함!
SVM 훈련 방법
- QP solver 사용
- 경사하강법 → hinge loss와 squared hinge loss 최소화
<과정>
- 양성 클래스 샘플 x (t=1)가 주어질 때...
- 결정 함수 s > 1 → 손실 0 (도로에서 벗어나 샘플이 양성 클래스에 위치)
- 음성 클래스 샘플 x (t=-1)가 주어질 때...
- 결정 함수 s ≤ -1 → 손실 0 (도로에서 벗어나 샘플이 음성 클래스에 위치)
- 샘플이 마진에서 멀어질수록 손실이 커짐
- 힌지 손실 : 선형적으로
- 제곱 힌지 손실 : 이차 방정식으로
- 이상치에 더 민감하게 반응
- 이상치가 없으면 더 빨리 수렴
LinearSVC : 제곱 힌지 사용
SGDClassifier : 힌지 손실 사용
SGDClassifier
- 보통 힌지 손실 사용하지만 옵션에는
hinge loss와 squared hinge loss 두 개 다 있음!
Loss 항목 :
loss{‘hinge’, ‘log_loss’, ‘modified_huber’, ‘squared_hinge’,
‘perceptron’, ‘squared_error’, ‘huber’, ‘epsilon_insensitive’,
‘squared_epsilon_insensitive’}, default=’hinge’
SVC 클래스의 최적화 알고리즘은 힌지 손실을 최소화하는 것과 유사한 솔루션 찾음.
참고한 문서 : [사이킷런 SGDClassifier]