Machine Learning/Theory

SVM(Support Vector Machine)

ju_young 2021. 5. 25. 01:30
728x90

우선 SVM에 대해서 간략하게 설명하자면 SVM은 '마진'이라는 값을 최대로 하는 결정 경계선을 찾는 것을 목표로하는 분류 알고리즘이다. 결정 경계선이라는 것은 예를 들어서 한강을 기준으로 강북과 강남으로 나뉘어진다고 했을 때 한강이 결정 경계선이 되는 것이다.
 
이제 다음과 같은 용어들의 개념을 하나씩 알아보겠다.
 

  • 서포트 벡터(support vector)
  • 마진(margin)
  • 비용(cost)
  • 커널 트릭(kernel trick)

 

서포트 벡터

서포트 벡터는 결정 경계선과 가장 가까이 맞닿은 데이터 포인트를 의미한다. 결정 경계선하고 가장 가까운 데이터의 위치라고도 할 수 있겠다.

마진

서포트 벡터와 결정 경계 사이의 거리를 마진이라고 한다. 위에서도 언급했듯이 이 '마진'을 최대로하는 결정 경계를 찾는 것이 목표이다.

비용

우선 비용에 대해 설명하기 전에 한 가지 예를 들어보겠다. 어떤 물건을 살 때 가격이 비싸다면 그 물건의 결함은 많이 없을 것이다. 하지만 가격이 싸다면 물건이 쉽게 망가지거나 결함 투성이인 경우가 많이 있을 것이다. 이처럼 '비용'이라는 것도 비슷하다.
 
비용이 낮을 수록 마진을 최대한 높히고 학습에러율을 증가시키는 방향이고 반대로 비용이 클수록 마진을 최대한 낮추고 학습에러율을 감소시키는 방향이다. 여기서 마진이나 학습에러율을 결함이라고 생각하면 된다.
 
또한 바용이 낮으면 학습에러율이 증가하므로 과소적합의 위험이 있고 비용이 높으면 너무 주어진 데이터에 대한 학습이 되어있으므로 과대적합의 위험이 있다.

커널 트릭

실제로 데이터를 고차원으로 보내진 않지만 보낸 것과 동일한 효과를 줘서 매우 빠른 속도로 결정 경계선을 찾는 방법을 '커널 트릭'이라 한다. 여기서 저차원의 데이터를 고차원의 데이터로 옮겨주는 함수를 '매핑 함수'라고 한다.
 
SVM은 다음과 같이 선형(linear) SVM과 커널 트릭으로 나뉘어서 사용된다고 볼 수 있다.
 

  • 선형 SVM : 커널을 사용하지않고 비용(C)를 조정해서 마진의 크기를 조절한다.
  • 커널 트릭 : 선형 분리가 주어진 차원에서 불가능할 경우 비용(C)와 감마(gamma)를 조절해서 마진의 크기를 조절한다.
     

여기서 감마(gamma)는 함수의 표준편차를 조정함으로서 결정 경계의 곡률을 조정하는 것을 말한다. 간단히 말하면 감마가 커질수록 결경 경계에 영향을 적게 미쳐 경계가 더욱 구부러진다고 할 수 있다.

파라미터 튜닝

SVM은 비용(cost)와 감마(gamma) 값을 조정함으로서 정확도를 높일 수 있다.
 

  • 비용 : 마진 너비 조절 변수, 클수록 마진 너비가 좁아지고 작을수록 마진 너비가 넓어진다.
  • 감마 : 커널의 표준 편차 조절 변수, 작을 수록 경계가 완만해지고 클수록 경계가 구부러진다.
     

SVM의 장단점

장점

  • 커널 트릭을 사용함으로서 다양한 데이터를 분류하는데 강하다.
  • 파라미터를 조정해서 과대적합 및 과소적합에 대처할 수 있다.
  • 딥러닝만큼 정확도가 높은 분류를 기대할 수 있다.

단점

  • 데이터 전처리 과정이 상당히 중요하다. 데이터 특성이 다양하거나 혹은 확연히 다른 경우에는 데이터 전처리 과정을 통해 데이터 특성 그대로 벡터 공간에 표현해야 한다.
  • 특성이 많을 경우 결정 경계 및 데이터의 시각화가 어렵다.
728x90

'Machine Learning > Theory' 카테고리의 다른 글

나이브 베이즈(Naive Bayes)  (0) 2021.06.03
의사결정 트리(decision tree)  (0) 2021.05.30
k-최근접 이웃(k-Nearest Neighbor, kNN)  (0) 2021.05.21
혼동 행렬과 교차 검증  (0) 2021.05.19
과대적합과 과소적합  (2) 2021.05.19