SVM(Support Vector Machine)

개발하는 전기다람쥐·2026년 4월 15일

기계학습

목록 보기
3/6

1️⃣SVM(Support Vector Machine)이란?

  • 개념: 주어진 데이터를 기반으로 분류 또는 회귀 분석을 할 수 있는 알고리즘
  • 목적
    1. 분류 작업: 결정 경계를 찾고 데이터를 클래스로 분류
    2. 마친 최대화: 데이터 포인트 사이의 간격(마진)을 최대화하려고 노력
  • 장점: 쉽게 확장이 가능

2️⃣Linear SVM Classification

  • 개념두 클래스가 명확하게 분리되는 경우, 직선으로 쉽게 구분할 수 있다.
  1. 왼쪽 그림에서 두 모델은 훈련 세트에서 완벽하게 작동하지만, 결정 경계가 인스턴스에 너무 가까워서 새로운 인스턴스에 대해 성능이 그리 좋지 않을 가능성이 있다.

  2. 오른쪽 그림에서는 실선이 SVM 분류기의 결정 경계를 나타내며, 이 직선은 두 클래스를 분리하는 것뿐만 아니라 가능한 한 가장 멀리 떨어져 있다. 이를 큰 마진 분류(large margin classification)라고 한다. 새로운 훈련 인스턴스를 "거리 밖"(off the street)에 추가해도 결정 경계에는 영향을 미치지 않는다.

  3. 이러한 인스턴스를 서포트 벡터(support vectors)라고 한다. 이들은 오른쪽 그림에서 원으로 표시되어 있다.

SVM은 특성(feature) 스케일에 민감하다

  1. 왼쪽 그림에서 수직 스케일이 수평 스케일보다 훨씬 크기 때문에 가장 넓은 거리는 수평에 가깝다.
  2. 오른쪽 그림에서는 특성 스케일링 후 결정 경계가 훨씬 좋아 보인다.
  • 문제점
    1. 데이터가 선형적으로 구분 가능한 경우에만 작동한다.
    2. Outlier에 민감하다.
  • 해결책: Soft Margin Classification

2. Soft Margin Classification

  • 개념: 하이퍼파라미터 C(규제 파라미터)를 사용하여 조정하는 방식
  • 목표: 거리를 최대한 넓게 유지하며 마진 위반(중간이나 잘못된 쪽에 있는 인스턴스)을 제한하는 것
  • C값의 따른 차이:
    • 작으면 → 마진 크게, 오분류 조금 허용 (일반화 ↑)
    • 크면 → 오분류 최소화, 마진 좁음 (과적합 위험 ↑)낮은 값으로 설정하면 왼쪽 모델처럼 되고, 높은 값으로 설정하면 오른쪽 모델처럼 된다.

✅slack variable: 약간 경계를 넘어가도 되도록 허용하는 것


3. Nonlinear SVM Classification

  • 개념: 더 많은 특성을 추가하는 방식왼쪽 그림은 선형으로 분리할 수 없는 데이터셋을 보여준다.
    오른쪽 그림은 𝑥1^2 = 𝑥2를 추가하여 완벽하게 선형으로 분리할 수 있는 데이터셋을 보여준다.

  • 문제점:
    1. 낮은 다항식 차수에서는 매우 복잡한 데이터셋을 처리할 수 없음
    2. 높은 다항식 차수에서는 모델이 너무 느려질 정도로 방대한 수의 특성이 생성됨

  • 해결책: 커널 트릭(kernel trick)
    → 커널 트릭을 사용하면 실제로 특성을 추가하지 않고도 많은 다항식 특성을 추가한 것과 동일한 결과를 얻을 수 있다. 따라서 실제로 특성을 추가하지 않기 때문에 특성 수의 조합 폭발이 발생하지 않는다.

1. Polynomial Kernel (다항식 커널)

2. Gaussian RBF Kernel (RBF 커널)

  • 개념: 데이터 포인트 간의 거리를 기반으로 유사도를 계산하는 함수

✅Similarity Features

  • 개념: 특정 landmark와 각 인스턴스가 얼마나 닮았는지를 측정하는 유사도 함수(similarity function)를 사용하여 생성된 특성을 추가하는 것
profile
개발자를 꿈꾸는 대학생

0개의 댓글