미누에요

[Machine Learning] SVM(Support Vector Machine) 본문

AI

[Machine Learning] SVM(Support Vector Machine)

미누라니까요 2024. 12. 11. 21:21
728x90
반응형
SMALL

머신러닝의 핵심은 회귀이고, 분류 또한 이 회귀 알고리즘을 이용해서 특정 함수에 넣어 분류하게 된다는 것을 알고 있을 것이다.

 

이번에는, 분류를 조금은 다른 방법으로 해보고자 한다.

 

우선, 기존에 흔히 하던 분류 모델은 아래와 같다.

 

 

기존 분류 방식

이러한 데이터들을 가지고 y = ax + b라는 회귀식을 얻어냈다고 하자.

 

y = ax + b라는 회귀식을 우리는 분류 함수에 넣게 된다.

여기서의 분류 함수는 "시그모이드 함수" , 혹은 "소프트맥스 함수" 가 사용될 수 있다.

시그모이드 함수 사진출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fdatasciencebeehive.tistory.com%2F80&psig=AOvVaw3bMVqUkBsYlfDc5BGX6E23&ust=1734004526543000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCLDlvLDUn4oDFQAAAAAdAAAAABAJ

 

 

이렇게 함수에 집어넣게 되면 결과적으로 0 혹은 1의 값이 나온다. 

 

 

앞서 설명한 방식(시그모이드, 소프트맥스 등)은 데이터가 선형적으로 구분될 수 있는 경우에 적합하다.

하지만, 현실에서는 데이터가 선형적으로 구분되지 않는 경우가 많다.

이런 경우에 SVM을 사용하게 된다.

 


SVM(Support Vector Machine)

SVM(Support Vector Machine)은 선형 및 비선형 데이터 모두를 처리할 수 있는 강력한 분류 알고리즘으로 널리 사용된다.

 

그런데 이름에 있는 Support Vector는 무엇일까 ??

 

Support Vector

출처 - LG AIMERS Elice 교육

 

SVM의 핵심은 Margin이 최대가 되는 최적의 결정경계를 찾는 것이다.

 

결정경계, margin

 

데이터를 두 묶음으로 나눌 때, 각 데이터로부터의 거리가 같은 지점을 결정경계로 지정한다.

그리고, 결정경계로부터 각 데이터까지의 거리를 margin이라 한다.

 

 

그리고 데이터들 간의 거리를 계산할 때 이상치를 얼마나 허용하느냐에 따라 Hard Margin과 Soft Margin으로 나누어진다.

Hard Margin

출처 - LG AIMERS Elice 교육

 

 

Soft Margin

출처 - LG AIMERS Elice 교육

 

 

 

그런데 SVM이 선형 분류 말고 비선형 분류에서도 사용이 가능하다고 했는데, 이 내용을 보면 선형 분류만 되는 거 같다.

 

데이터의 영역을 두 구간으로 나누는 선을 찾는거라면, 비선형 분류는 어떻게 하는건가 ?

이 의문점은 SVM의 큰 장점이 해결해준다.

 

SVM에서는 커널 트릭이라는 기술을 사용하여 비선형 분류를 진행한다.

 

커널 트릭(kernal trick)

데이터를 고차원 공간으로 변환해 선형적으로 분리할 수 있도록 만들어 준다.

출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Frole-svm-model-current-data-science-deepak-kumar&psig=AOvVaw0_U_8UdwnthWGHfK08dGev&ust=1734005630771000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCKihvMPYn4oDFQAAAAAdAAAAABAE

 

 

즉, 기본 모델로 선형 분류를 처리하고, 커널을 추가한다면 비선형 분류까지 수행할 수 있는 것이다.

 

 

 

 

 

이로써 SVM은 선형 분류와 비선형 분류를 모두 다룰 수 있는 최고의 모델이었다.

딥러닝이 발달하기 전까지는.......................

 

 

 

 

 

 

장점

  • SVM은 결정 경계(Decision Boundary)와 가장 가까운 데이터 포인트인 서포트 벡터(Support Vector)만 활용하여 학습하므로 일반화 성능이 뛰어남
  • 선형적으로 구분되지 않는 데이터를 고차원 공간으로 변환해 분리할 수 있음
  • SVM은 소규모 데이터셋에서도 효과적으로 학습할 수 있어, 대규모 데이터가 없더라도 신뢰할 수 있는 결과를 얻을 수 있음

 

 

단점

 

  • SVM은 학습 과정에서 계산 복잡도가 높아 데이터셋 크기가 클수록 시간 및 메모리 사용량이 증가
  • 적절한 커널 함수를 선택하지 못하면 성능이 저하될 수 있으며, 데이터에 맞는 커널을 찾기 위해 실험적인 조정이 필요
  • SVM은 기본적으로 이진 분류를 목표로 설계되었기 때문에, 다중 클래스 문제에서는 OVR(One-vs-Rest) 또는 OVO(One-vs-One) 접근 방식을 추가로 사용해야 함
  • 이상치(outlier)나 노이즈가 있는 데이터에 민감할 수 있습니다. 마진을 최대화하는 과정에서 이상치의 영향을 크게 받을 가능성이 있음
  • SVM의 성능은 C(정규화 파라미터)와 γ(커널 폭)와 같은 하이퍼파라미터에 크게 의존하며, 적절한 값 찾기가 까다로움

 

728x90
반응형
LIST