AI/ML

SVM 복잡한 수식 쉽게 이해하기!

cstory-bo 2023. 12. 24. 11:57

SVM 전반적인 설명

svm : support Vector Machine

  • 고차원 데이터의 분류문제에 좋은 성능
  • 트레이드오프(generalization ability, training data) 관계에서 generalization ability 증가시키는 방향
  • Statistical learning theory에 근거

SVM 상황


-> 이진분류문제의 예시이다.

이처럼 hyper plane, decision boundary를 찾는 것이 목표이다!
그런데 이렇게 클래스를 구별할 수 있는 경계들이 너무 많다...

그러면 기준을 세워볼까...?

svm 기준 | Margin

바로 Margin!

마진을 최대화할 수 있는 hyperplane을 찾자

→ generalization error를 최소화


Margin : 각 클래스에서 가장 가까운 관측치 사이의 거리

W로 표현 가능 ( Wx + b )

1) Plus-plane 
빨간색 클래스가 y=1

2) Minus-plane
파란색 클래스가 y=-1

이 2개 사이의 거리가 Margin이고 이 마진을 최대화하는 hyperplane을 찾자


최적의 decision boundary
=> 

그리고 이 둘(+/- plane)의 관계는

즉, 평행이동관계

수학적으로 보는 Margin

 구하기

⚠️잊지말자 우리는 W에 주목!⚠️

Margin 구하기

결론!

Lagrangian multiplier를 이용하여 Lagrangian Primal


4번을 이용해서 구해본다.

1)  일 때, 뒤에가 0

⇒ +/- plane위에 위치, 이를 support vector 라고 부른다.

 

2)  일 때, 뒤에가 0일 필요 없다.

W, b 구하기

목표였던 W를 구하자면 

support vector일 때만 ≥ 0 이니까

support vector만 가지고 decision boundary 구할 수 있다.

b는 support vector 값 하나  를 넣어봐서 구할 수 있다.

지금까지 살펴본 linearly한 SVM을 HardMargin이라고 한다.

Non-linear SVM

soft margin이란

직선으로는 분류하기 힘들다

→ 약간의 error를 허용하자!

( : 허용하는 error)

Hard margin과 비교해보면 뒤에 정규화 식이 붙었다.

trade-off | C

허용하는 error vs margin

C : trade-off를 결정하는 parameter

C가 높을 수록, error 많이 허용하지 않는다. ( 하드마진에 가까워진다. )

C가 작을 수록 error 많이 허용한다. ( 소프트마진에 가까워진다. )

Kernel

SVM에서 선형으로 분리할 수 없는 점들을 분류하기 위해 사용한다.

출처 : [핵심 머신러닝] SVM 모델 유튜브 강의