[학습 일기 #28] 머신러닝 심화_SVM

Ariel_Jeong·2026년 2월 5일

[학습 일기 시리즈]

목록 보기
28/44

1. SVM(Support Vector Machine)이란?

“데이터를 가장 안정적으로 나눌 수 있는 경계선을 찾는 알고리즘”

👉 여기서 핵심은 “정확히 나누는 것”이 아니라
“새로운 데이터에도 흔들리지 않는 경계”
를 찾는다는 점

  • 장점

    • 고차원 데이터에 강함 → feature 수가 샘플 수보다 많아도 비교적 안정적으로 작동
    • 일반화 성능이 뛰어남 → 마진을 최대화해 과적합을 자연스럽게 억제
    • 커널 트릭으로 비선형 문제 해결 가능
    • 메모리 효율적 → 결정 함수에 서포트 벡터만 사용하므로 예측 시 메모리 사용량이 적음
  • 단점

    • 대규모 데이터에 느림 → 데이터 수가 커질수록 학습 시간 급증
    • 하이퍼파라미터 튜닝이 까다로움(C, kernel, gamma 등)
    • 결과 해석이 직관적이지 않음(Blackbox)



1.1. 기본 원리

1.1.1.핵심 아이디어: 마진(Margin) 최대화

  • 마진(Margin) → 결정 경계와 가장 가까운 데이터 포인트 사이의 거리

👉 SVM의 목표: 마진을 최대화하는 최적의 초평면(Hyperplane) 찾기

“두 집단 사이에 가장 넓은 길(the widest street)을 그어라”


1.1.2. 핵심 구성 요소: 초평면과 서포트 벡터

  • 초평면(Hyperplane) → 데이터를 나누는 결정 경계

    • 2차원: 직선(1차원)
    • 3차원: 평면(2차원)
    • 고차원: 초평면
  • 서포트 벡터(Support Vectors)

    • 초평면과 가장 가까운 데이터 포인트들(오분류 가능성이 가장 높다)
    • 이 점들이 마진을 결정하고, 경계의 위치를 “지지(support)”
      (멀리 있는 데이터는 사실상 경계 결정에 영향 없음)

📌 아주 중요한 포인트

  • SVM은 모든 데이터를 보지 않는다. 오직 ‘경계를 위협하는 점’만 본다.

1.2. 현실 세계에 맞춘 도전

이론 속 데이터는 깔끔하지만, 현실 데이터는 그렇지 않다.

1.2.1. 도전 1: 완벽하게 분리되지 않는 데이터(Soft Margin)

  • 문제

    • 노이즈, 이상치 때문에 완벽 분리(Hard Margin) 불가능한 경우가 대부분
  • 해결: Soft Margin

    • 일부 데이터의 마진 침범/오분류를 허용(유연함)
    • 대신 과적합을 방지하고, 전체적인 일반화 성능을 확보
    • 여기서 등장하는 핵심 파라미터가 C(Cost. 오분류에 대한 패널티를 조절하는 값)
  • 하이퍼파라미터 C의 의미

    • C가 클 때
      • 오분류를 거의 허용하지 않음
      • 마진 ↓, 경계 복잡
      • 👉 과적합 위험 ↑
    • C가 작을 때
      • 오분류를 많이 허용
      • 마진 ↑, 경계 단순
      • 👉 과소적합 위험 ↑

C = “오분류에 대한 벌금”


1.2.2. 도전 2: 비선형(Non-Linear)데이터(Kernel Trick)

  • 문제

    • 현실 데이터는 직선 하나로 안 나뉨
  • 해결: 커널 트릭

    • 핵심 아이디어: “차원을 바꿔서 생각하자”
      (원래 차원에서는 분리 불가능해 보이는 데이터 → 더 높은 차원으로 보내면 분리 가능)

📌 핵심 포인트

  • 실제로 고차원 데이터를 계산하지 않음(데이터 고차원으로 변환 x)
  • 원래 차원에서 커널 함수로 동일한 효과 구현

커널 함수의 종류: 문제에 맞는 도구 선택

  • 선형 커널(Linear Kernel)
    • 데이터가 거의 직선으로 분리 가능
    • 피처 수가 많고 데이터 수가 적을 때 강력
    • 가장 빠르고 해석도 상대적으로 쉬움
    • 👉 “커널 트릭 안 쓰는 SVM”
  • 다항 커널(Polynomial Kernel)
    • 데이터의 다항 관계를 학습
    • 차수(degree)가 커질수록 복잡도 급증
  • RBF 커널(Radial Basis Function/Gaussian Kernel)
    • 가장 많이 쓰이는 기본 커널
    • 거리 기반으로 국소 패턴을 잘 잡음
    • 대부분의 복잡한 비선형 문제에서 강력한 성능 발휘
    • 핵심 파라미터: gamma
      • 클수록: 영향 범위 좁음 → 복잡한 경계
      • 작을수록: 영향 범위 넓음 → 부드러운 경계
  • 시그모이드 커널(Sigmoid Kernel)
    • 신경망(Neural Network)과 유사한 방식으로 작동




2. SVR(회귀)

  • 장점

    • 이상치에 비교적 강함
    • 고차원 공간에서 효과적(feature가 샘플 수보다 많아도 성능 유지)
    • 과적합 제어 용이(마진 최대화 개념이 일반화 성능을 높임)
    • 커널 트릭의 유연성(다양한 커널 함수로 복잡한 비선형 관계 모델링 가능)
    • 서포트 벡터만 사용 → 메모리 효율적
  • 단점

    • 대규모 데이터에서 느림(O(n2))
    • 하이퍼파라미터(C, γ, kernel 종류 등) 튜닝에 따라 성능 크게 좌우(민감)
    • 결과 해석이 직관적이지 않음



2.1. 핵심 원리

"데이터 대부분을 포함하는 가장 '넓은 길(Tube)'을 찾자"

SVC에서의 마진이 두 클래스 간의 여백이었다면, SVR에서는 마진이 데이터 대부분을 포함하는 튜브인 셈

2.1.1. ε-insensitive Tube

  • 예측선 주변에 ε(Epsilon) 폭의 튜브 생성
    • eps: 모델이 허용하는 노이즈의 크기. 사용자가 정의하는 하이퍼파라미터
  • 튜브 안의 오차는 손실 0(노이즈에 민감하게 반응하지 x)
    • Hinge Loss: if |y - f(x)| < ε, then Loss = 0
  • 튜브 밖의 오차만 패널티(Loss = |y - f(x)| - ε)
    • 𝛏, 𝛏* (Slack Variables): 패널티의 크기

📌 핵심 결과

  • 튜브 안 데이터 → 모델에 영향 없음
  • 튜브 밖 데이터 → 서포트 벡터

2.1.2. SVR의 목적 함수 직관

SVR은 두 가지를 동시에 만족시키려 한다.


[출처: 오즈코딩스쿨 강의 자료]

  • 모델은 최대한 단순하게(마진 최대화, 과적합 방지)
  • 튜브 밖 오차는 최소화 → 이 균형을 조절하는 파라미터가 C
profile
R&D 분야의 경험을 토대로 커리어 확장에 도전중인 개발꿈나무입니다.

0개의 댓글