[ML] 서포트 벡터 머신 (SVM)

juyeon lee·2023년 3월 13일
0

Machine Learning

목록 보기
5/11
post-thumbnail

4개의 그림 중에서 가장 분류가 잘 되었다고 할 수 있는 그림은 무엇일까?

오른쪽 아래 그림이다. 경계선을 기준으로 두 데이터 집단까지의 거리가 가장 멀리 적절하게 떨어져있다. 오른쪽 아래처럼 분류해야 새로운 데이터가 들어와도 잘 분류할 가능성이 커진다.


📌 정의

지도학습 기반으로, 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 범주에 속할지 판단하는 알고리즘이다.
데이터를 분리하는 초평면 중에서 데이터들과 가장 거리가 먼 초평면을 분리하는 이진 선형 분류 모델으로, 여기서 초평면은 2차원에서는 직선, 3차원에서는 평면을 의미한다. (초평면은 n-1차원이기 때문에)

💡 구성요소

구성요소의미
결정경계데이터 분류의 기준이 되는 경계
초평면n차원 공간의 (n-1)차원 평면
마진결정경계에서 서포트벡터까지의 거리(=유사도)
서포트벡터결정경계와 가장 가까이에 있는 데이터
슬랙 변수완벽한 분리가 불가능할 때 허용된 오차를 위한 변수

서포트 벡터 머신에서 가장 중요한 개념 3가지를 알아보자.

💡 서포트 벡터

결정 경계와 가장 가까이에 있는 데이터
즉, 위의 그림에서 각 경계에 닿아있는 초록색 원 두 개는 서포트 벡터라고 할 수 있다

💡 마진 (Margin)

서포트 벡터에 평행으로 그은 두 직선에 직교하는 선
마진은 두 집단 사이의 거리라고 볼 수 있으며, 거리가 멀수록 (=마진이 클수록) 잘 분류된 것이고 두 집단 간의 유사도가 적다고 할 수 있다. 마진이 크다면 새로운 데이터가 들어온 경우에도 잘 분류된다.

💡 결정경계 (=초평면)

두 집단을 분류하는 최적의 직선으로, 두 서포트 벡터들의 중앙을 지나며 직교하는 직선이다. 서포트 벡터 머신에서는 최대의 마진을 가진 결정경계를 구하는게 핵심이다.

💡 슬랙변수

완벽한 분리가 불가능할 때 즉, 선형적인 분리가 불가능할 때 어느정도 오차를 허용하면서 초평면을 찾을 때 사용하는 변수이다. 관측치의 에러 정도를 나타내는 역할을 하는데 각 관측치마다 하나씩 존재한다.

분류가 올바르게 된 경우 Slack Variable = 0
분류를 위한 마진 허용하는 경우 0 < Slack Variable < 1
분류가 제대로 안된 경우에는 Slack Variable > 1



📌 특징

  • 해석에 용이하지만 이진 분류만 다룰 수 있다.
  • 분류와 회귀 모두 사용 가능하다.
  • 이상치에 민감하기 때문에 전처리가 중요하다.
  • 복잡한 분류 문제나 작은 크기의 데이터셋에 적합하다.
  • 훈련 시간이 오래 걸린 만큼 정확성 높고 과적합 가능성이 작다.
  • 사물 인식, 패턴 인식, 자료 분석 등 다양한 분야에서 활용한다.


📌 종류

결정경계 조절에 따라서 하드 마진과 소프트 마진으로 구분한다.

💡 하드 마진 SVM

마진 값을 타이트하게 설정하여 두 클래스로 확실하게 분류한다. 따라서 정제된 데이터에서 많이 사용하며, 마진의 안쪽이나 바깥쪽에 잘못 분류된 오분류를 절대 허용하지 않는다. 이로 과적합이 발생하기 쉽고, 노이즈로 최적 결정경계를 구하지 못하는 경우가 발생한다.

💡 소프트 마진 SVM

오분류를 허용하는 방법으로, 비선형 분류 사용 시, 적용하기 어려운 하드 마진 SVM 대신 주로 이용한다.
위의 하드 마진 SVM 그림과 같은 집단을 소프트 마진 SVM으로 분류한 그림이다. 소프트 마진 SVM은 결정 경계 가까이에서 발생할 노이즈나 이상치 데이터에 여유를 두며 넓은 마진을 가지도록 선형경계를 설정한다.
마진을 넘어가는 데이터에 대해서는 자신이 속한 클래스의 마진 평면에서 떨어진 거리만큼의 페널티가 부여된다.



📌 커널트릭

선형 분류가 불가능한 데이터를 처리하기 위해 커널 함수를 사용하는 것을 의미한다. 비선형 분류에서 사용하며 주어진 데이터를 고차원의 데이터로 매핑시킨다. 종류에는 RBF(가우시안), Linear Kernel, Polynomial Kerner 등이 존재하며 RBF가 기본값으로 사용된다.

💡 커널 함수

데이터의 차원을 증가시켜 하나의 초평면을 분리 가능하도록 도와주는 것이다. 저차원에서 해결하기 어려운 문제들을 고차원으로 변환시켜 문제를 해결한다. 마진이 최대인 초평면을 구하는 알고리즘을 사용한다. 선형 분류가 힘든 데이터를 분류하기 때문에 연산량과 연산 소요 시간이 증가하지만 그만큼 정확도가 높아진다.

💡 커널함수 종류

  • 선형 함수(Linear) : xix_i
  • 다항 함수(Poly) : (1+XiXj)2(1+X_i X_j )^2
  • 방사형 함수(RBF) : exp(γ(XiXj)2)exp(-γ(X_i-X_j )^2)
  • 시그모이드 함수(Hyper-Tangent) : tanh(κXiXj+C)tan h⁡(κX_i X_j+C)

💡 커널의 파라미터

Cost

  • 마진 너비 조절 변수비용변수라고 부른다. 오차를 허용할 수 있는 범위로, 얼마나 많은 데이터 샘플이 다른 클래스에 놓여도 되는지를 결정한다.
  • Cost가 작을수록 마진이 넓어지며, 커질수록 마진이 좁아진다. 최대 마진을 목표로 Cost 값을 조절하지만 Cost 값이 너무 작으면 과소적합이 일어나기 때문에 최적치를 찾아야한다.
  • Cost는 분류 모델에서만 사용 가능한 파라미터다.

Gamma

  • 결정경계의 곡률을 결정하는 파라미터 값으로, 하나의 데이터 샘플이 영향력을 행사하는 거리를 결정한다. Gamma가 작을수록 데이터 포인트의 영향이 커져 결정경계에 영향을 주고 굴곡이 완만해진다. 굴곡 없이 완만한 결정경계가 최적의 결정정계에 가깝다.
  • Gamma는 분류, 회귀 모델 모두 사용 가능한 파라미터다.

0개의 댓글