CS

Support Vector Machine(SVM) 간략하게 이해하기

hegelty 2025. 5. 2. 01:50

공간에서 각 class 간의 거리를 최대화(maximize)하는 머신 러닝 방법. Kernel Trick을 이용하여 비선형(nonlinear) 함수를 학습한다.

출처:  IBM (https://www.ibm.com/kr-ko/think/topics/support-vector-machine)

  • 구분하고자 하는 두 class 사이 간격(margin)을 최대화하는 초평면(hyperplan)을 찾는다.

Kernel Trick

비선형(nonlinear) 함수는 찾기가 어렵다. 선형(linear) 함수를 찾으려고 data를 더 높은 차원으로 대응(mapping)시키면 연산이 너무나 많이 필요하다.
이러한 계산 과정을 생략할 수 있도록 Kernel function을 사용하는 것을 Kernel trick이라 한다.

https://commons.wikimedia.org/wiki/File:Kernel_yontemi_ile_veriyi_daha_fazla_dimensiyonlu_uzaya_tasima_islemi.png

  • Kernel trick을 사용하면 직접 data를 높은 차원으로 대응(mapping)시키지 않더라도 기존 차원에서 Kernel function을 통하여 같은 결과를 얻을 수 있다.
  • Kernal function은 특정한 수학적 조건(Synmetry, Positive Semi-Definiteness)를 만족해야 한다.

 

 Kernel Function의 종류

  • 다항(Polynomical): $K(x,y)=(x^⊤y+c)^d$
    • 다항식으로 data를 대응한다.
    • 차원이 높아질수록 복잡하다.
  • RBF(Radial Basis Function): $K(x,y) = \exp (- \gamma ∥x−y∥^2)$
    • 지수함수 형태의 커널. 대부분의 비선형 문제에 효과적이다.
    • 적정한 매개변수(parameter) $\gamma$를 찾기 어렵다.
  • 문자열(String)
    • 길이가 유동적인 데이터에 적용한다.
    • 텍스트나 유전자 정보 등에 사용된다.
  • 그 외 여러가지…

 

 Hard SVM vs Soft SVM

Data를 완벽하게 분류하고자 하는 것은 어렵고 과적합(overfitting)의 위험이 존재한다.

  • class의 data들을 모두 정확하게 분류한다.(Hard)
  • 일정 비율의 data는 분류가 잘못되어도 된다.(Soft)

One-vs-One(pairwise coupling) SVM

모든 두 class의 쌍에 대한 이진 분류기(binary classificator)를 학습한다. (리그와 같은 방식!)

  • 모든 class 쌍에 대해 훈련시킨 뒤, 새로운 data point에 대하여 기존에 학습된 모든 분류기로 분류를 수행한다. 이후 투표를 통해 가장 많은 투표를 받은 클래스로 최종 예측된다.

 장점

  • 학습 과정에서 두 class만 사용한다.
    • 훈련 속도가 빠르다.
    • 불균형한 class 분포에 덜 민감하다.
  • 정확도가 높다.

 단점

  • 모델 수가 매우 많이($\frac{n(n-1)}{2}$개) 필요하다.
  • 모든 모델을 사용하여 예측하기 때문에 예측에 소요되는 시간이 길다.
  • 투표가 동점일 수 있다.

 활용 목적

  • class가 적을 때
  • 높은 정확도가 필요할 때
  • class간 분포가 불균형할 때

One-vs-Rest(One-to-all) SVM

각 class별로 해당 class가 맞는지 아닌지를 판단하는 이진 분류기(binary classificator)를 학습한다.

  • 각 class 별로 하나의 모델을 훈련시킨 뒤, 새로운 data point에 대하여 기존에 학습된 모든 분류기로 분류를 수행한다. 이후 가장 높은 점수를 받은 클래스로 최종 예측된다.

 장점

  • 모델 수가 적다.(n개)
    • 모델 수가 class 수에 비례해서 증가하므로 확장성이 비교적 좋다.
    • 예측에 소요되는 시간이 짧ㅅ다..
  • 다른 이진 분류기와 병용할 수 있다.

 단점

  • 각 class의 분포가 불균형할 경우 성능에 영향을 받을 수 있다.
  • 모든 data를 학습에 사용한다.
    • 학습 시간이 길다.

 활용 목적

  • class가 많을 때
  • 자원이 한정적일 때
  • 빠른 예측이 필요할 때
  • class간 분포가 일정할 때