스물두줄

컴퓨터시스템응용기술사 · 인공지능 및 머신러닝

서포트 벡터 머신(SVM)

서포트 벡터 머신은 두 클래스 사이의 마진을 최대화하는 결정경계를 학습하는 지도학습 모델이다. 쉽게 말하면 두 무리의 데이터 사이에 가장 넓은 길을 내는 방법이다. 길의 가장자리에 걸친 데이터가 서포트 벡터이고, 나머지 데이터는 경계 판단에 영향을 주지 않는다. 두…

주요 장면

  1. 0:02 SVM이란
  2. 0:23 초평면과 마진 식
  3. 0:58 소프트 마진과 C
  4. 1:26 커널 트릭
  5. 2:00 계산 예제
  6. 2:42 헷갈리는 점과 정리

대본

SVM이란

서포트 벡터 머신은 두 클래스 사이의 마진을 최대화하는 결정경계를 학습하는 지도학습 모델이다.

쉽게 말하면 두 무리의 데이터 사이에 가장 넓은 길을 내는 방법이다.

길의 가장자리에 걸친 데이터가 서포트 벡터이고, 나머지 데이터는 경계 판단에 영향을 주지 않는다.

초평면과 마진 식

두 클래스를 가르는 초평면은 w·x+b=0으로 표현된다. 입력 차원이 p이면 초평면은 p-1차원이다.

마진 폭은 2/‖w‖이므로 마진을 최대화하는 것은 ‖w‖를 최소화하는 것과 같다.

제약은 모든 학습 데이터에 대해 y_i(w·x_i+b) ≥ 1을 만족하는 것이다.

서포트 벡터는 마진 경계 위에 놓인 데이터다. 이 점들만 w와 b를 결정한다.

소프트 마진과 C

선형 분리가 어려운 실제 데이터에서는 소프트 마진 SVM을 주로 쓴다.

소프트 마진은 슬랙 변수 ξ로 일부 오분류를 허용하는 방식이다.

비용 파라미터 C가 오분류 허용 정도를 조절한다. C가 크면 오분류를 엄격히 벌하고, 작으면 마진을 넓게 유지한다.

하드 마진은 오분류를 허용하지 않으므로, 이상치 하나에도 해가 크게 바뀐다.

커널 트릭

실제 데이터는 선형으로 나뉘지 않는 경우가 많다. 이때 커널 트릭이 필요해진다.

커널 트릭은 고차원 사상 φ(x)를 직접 계산하지 않고, K(x_i,x_j)=φ(x_i)·φ(x_j) 값만 계산한다.

그래서 차원이 커져도 계산량이 크게 늘지 않는다. 대표 커널은 선형, 다항, RBF, 시그모이드다.

계산 예제

앞에서 낸 문제의 정답은 커널 함수다. 고차원 내적을 커널 함수 한 번으로 대체한다.

이번에는 w=(3,4)인 선형 SVM의 마진을 계산해 보자.

‖w‖는 √(3²+4²)=5이므로 마진은 2/5, 즉 0.4다.

‖w‖가 커지면 마진이 줄어든다. 그래서 마진 최대화는 ‖w‖ 최소화와 같다.

헷갈리는 점과 정리

헷갈리기 쉬운 점이 있다. 커널 트릭은 차원을 실제로 올리는 방식이 아니라 고차원 내적을 커널 함수로 대체하는 계산 기법이다.

SVM의 장점은 볼록 최적화 문제라 해가 유일하다는 점과, 고차원에서 강인하다는 점이다.

단점은 대규모 데이터의 학습 계산 부담, 커널과 C·γ 선택의 어려움, 확률 출력이 없다는 한계다.

정리하면 SVM은 서포트 벡터만으로 결정경계를 정하는 최대 마진 분류 모델이다. 소규모 정형 데이터에서 유용하다.

같은 장의 영상