내가 이해한 서포트 벡터 머신 SVM (1)

Donghyeok Jang·2021년 3월 27일
0

Machine Learning

목록 보기
1/2
post-thumbnail

Support Vector Machine

서포트 벡터 머신(SVM)은 Decision Boundary, 결정 경계선의 기준을 찾는 모델이다. 그 말인 즉, 결정 경계선의 위치가 모델의 성능을 결정한다는 뜻!

SVM은 최적의 결정 경계를 찾는 알고리즘이라고 할 수 있다.

그래서 왜 Support Vector 인데?

위 그림처럼 결정 경계(Separating Hyperplane)을 찾으려면 최소 세개의 점(vector)을 찾아야 한다. 세개의 점이 결정 경계를 Support(지지) 하고 있다고 해서 붙여인 이름이라고 한다.

Separating Hyperplane

wTxb=0{w} ^{T}\mathbf {x} -b=0
위 수식으로 Seperating Hyperplane을 만들 수 있다. 앞선 그림처럼 Support Vector와 Separating Hyperplane과의 거리가 생기는데 이 거리를 Margin이라고 정의한다.

직관적으로 보면 +, - 두 클래스를 구별하는 선을 그리라고 했을 때, +, - 샘플 사이의 거리를 가장 넓게 쓸 수 있는 선을 그릴 것이다.

margin을 최대화 시키는게 SVM의 목적이다.

Margin

Margin distance를 계산을 해보면

Separating hyperplane : f(x)=wTx+b=0f(x) = {w} ^{T}\mathbf {x} + b = 0,
양의 방향으로 a 만큼 이동한 파란선 : f(x)=wTx+b=af(x) = {w} ^{T}\mathbf {x} + b = a,
hyperplane의 양의 방향에 있는 임의의 vector : xx,
Separating hyperplane로 수선의 발을 내려 만나는 점 vector : xpx_p
가 있다고 하자.

xxxpx_pvector w 방향으로 r 만큼 진행시킨 vector 라고 말할 수 있다. 즉 수식으로 x=xp+rwwx=x_p+r\frac{w}{||w||} 표현

xx를 식 f(x)f(x)에 대입을 해서 정리하면 (정리 생략)
distance  a=rxdistance\ \ a = r||x||margin을 알 수 있게 된다.

max(margin)max(margin)하는 일만 남았다. 수학적인 부분이 많아서 한참 뒤에나 쓸 것 같다ㅎㅎ

profile
Feedback is a gift

0개의 댓글