1. Linear Classification and Margin
기본적인 선형 분류 문제에서, 우리가 찾고자 하는 Decision Hyperplane은 이렇게 생겼지
$$ \langle w,\; x\rangle + b = 0 $$
- $w \in \mathbb{R}^d$는 가중치 벡터(= 법선 벡터)
- $ \in \mathbb{R} $는 편향(bias) 항
- $ x \in \mathbb{R}^d $는 입력 벡터
서포트 벡터 머신(SVM)은 그냥 맞추는 것에 만족 안 해
제대로, 여유있게, 멋지게 맞추는걸 원해. 즉, Margin이라는걸 크게 잡으려고 해.
$$ \langle w,\; x\rangle + b = +1, \quad \langle w,\; x\rangle + b = -1 $$
이 두 선 사이의 거리가 바로 margin이고 그 길이는
$$\frac{2}{\|w\|}$$
로 나타내.
그러니까 오빠처럼 무의미하게 크기만 키우는 건 손해야~
여기선 $\|w\|$를 작게 해서 margin을 크게! 넓게! 여유 있게! 가져가는 게 목표지.
딱 내가 오빠 놀릴 때처럼 말이야~ 넓은 여유 ㅋ
2. Hinge Loss
margin을 무작정 늘리는 게 다가 아냐. 분류를 망치면 안 되잖아~?
그래서 도입된게 Hinge Loss야
$$ \ell(w, b; x, y) \;=\; \max\Bigl\{\,1 - y\bigl(\langle w,\; x\rangle + b\bigr),\; 0\Bigr\}$$
- $x \in \mathbb{R}^d$는 입력 샘플
- $y \in \{+1, -1\}$는 해당 샘플의 실제 레이블(이진 분류)
- $w$, $b$는 가중치/편향
DecisionBoundary and Margin
- $y(\langle w,\; x\rangle + b)$ 항은, 샘플 $x$가 초평면의 어느 쪽에 있는지를 반영해
- 이게 1이상이면? 제대로 분류됐고, margin밖에 있음은 손실이 0
- 1보다 작으면? margin 안에 있거나 틀림! 페널티가 발생해.
이건 딱 오빠가 틀릴 때마다 내가 주는 꾸짖음과 같아
오빠가 엉뚱한 소리 할수록 손실이 증가하는 구조지~ 하하~ 귀엽다 정말
3. 최적화 문제와 Parameter $C$
자, 이제 본격적으로 SVM이 뭘 최소화하려는지 볼까?
실제 SVM 훈련 시에는, $\|w\|$최소화와 Hinge Loss $\ell(w,b;x,y)$의 합 최소화를 함께 고려해.
$$\min_{w,b} \;\; \frac{1}{2}\,\|w\|^2 \;+\; C \sum_{i=1}^n \max\Bigl\{1 - y_i\bigl(\langle w,\; x_i\rangle + b\bigr), 0\Bigr\}$$
- $\frac{1}{2}\|w\|^2$는 margin을 크게 유지하기 위한 항(margin 최대화)
- $\sum \max\{1 - y_i(\dots),\,0\}$는 Hinge Loss들의 합(오분류 혹은 margin 안쪽 샘플에 대한 페널티)
- $C > 0$는 두 항 사이의 trade-off를 조절하는 정규화 상수
$C$를 크게 하면?
- 오분류를 최대한 줄이려고 무리하게 $\|w\|$를 조절하는 거야.
- 오빠 머리처럼 크게 잡으면, $\|w\|$가 커져 margin이 줄어들고 overfitting될 수 있지
$C$를 작게 하면?
- 오빠 간처럼 $\|w\|$이 작아져 margin이 커져.
- 모델이 더 일반화되지만 underfitting 날 수 있어~
- 음~ 조금 틀려도 괜찮아~ 전체적으로 여유있게 분류할래~라는 자세
4. Hinge Loss와 DecisionBoundary 변화
Loss를 다시보면
$$\max\bigl(1 - y_i(\langle w,\; x_i\rangle + b),\; 0\bigr)$$
형태라, $y_i(\langle w,\; x_i\rangle + b)$ 값이 1에 못 미쳐 그 샘플의 페널티가 돼.
- margin(=1)보다 안쪽에 있는 녀석들이 문제야. 기준선도 못 지키는 실패작들~
- margin 밖에 완전히 분리된 샘플(= $y_i(\langle w,\; x_i\rangle + b)\ge 1$)에 대해서는 추가 손실이 0이야.
결국 여러 샘플 중에서 margin 안쪽에 들어온 소수나 오분류된 샘플들은 $w, b$ 업데이트 대상이야~
이 샘플들을 support vector라고 부르는데, 실제로 DecisionBoundary를 형성하는데 핵심이야.
오빠가 SVM 안에서 support vector였다면, 모델이 꽤 고생했겠지?
5. 정리
- Margin: 분류 초평면 사이의 간격. $w$의 $\|w\|$가 작을수록 간격이 커짐.
- Hinge Loss: $1 - y(\langle w,x\rangle + b)$가 양수이면 그만큼 페널티를 부과, 아니면 0. margin 안쪽에 있거나 오분류가 일어나면 손실이 발생.
- SVM 목적 함수: $\frac{1}{2}\|w\|^2 + C \sum \text{(Hinge Loss)}$
- $C$가 크면 데이터 맞추기에 집중(Overfitting 가능성)
- $C$가 작으면 margin 최대화에 집중(Underfitting 가능성)
- DecisionBoundary 변화: Parameter $C$를 조절해 잘못 분류된 샘플에 대한 페널티를 얼마만큼 강하게 줄지 결정하게 돼.
- 결국 학습 결과로 나오는 $w, b$가 업데이트 되고, margin이 넓어지면 (=$\|w\|$ 작아짐) 경계가 여유롭게 형성되는 반면, margin이 좁아지면(=$\|w\|$ 커짐) 데이터 맞추기에 더 집착하게 되는거야.
'Computer Science > AI' 카테고리의 다른 글
[Machine Learning] Training Algorithms for Classification (4) | 2025.04.11 |
---|