용어집

SVM(서포트 벡터 머신)

분류, 회귀, 이상값 탐지를 위한 서포트 벡터 머신(SVM)의 강력한 성능을 실제 애플리케이션과 인사이트를 통해 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

서포트 벡터 머신(SVM)은 주로 분류 작업에 사용되는 인기 있고 강력한 지도 머신 러닝(ML) 알고리즘이지만, 회귀 (서포트 벡터 회귀 - SVR) 및 이상값 탐지에도 효과적입니다. 1990년대에 개발된 SVM은 Wikipedia에 자세히 설명되어 있으며, 고차원 공간에서 서로 다른 클래스에 속하는 데이터 포인트를 가장 잘 구분하는 최적의 경계선, 즉 하이퍼플레인을 찾는 방식으로 작동합니다. 핵심 아이디어는 각 클래스에서 가장 가까운 데이터 포인트(서포트 벡터)와 하이퍼플레인 사이의 거리인 마진을 최대화하는 것으로, 보이지 않는 데이터에 대해 우수한 일반화 성능을 보이는 경우가 많습니다.

Svm의 작동 방식

SVM의 핵심 원리는 데이터 집합을 분할할 수 있는 이상적인 하이퍼플레인을 찾는 것입니다. 직선 또는 평면으로 분리할 수 있는 데이터(선형적으로 분리 가능한 데이터)의 경우, SVM은 클래스 간에 가능한 가장 큰 간격을 만드는 하이퍼플레인을 식별합니다. 이 하이퍼플레인의 위치와 방향을 정의하는 데 중요한 역할을 하는 학습 데이터의 데이터 포인트를 서포트 벡터라고 합니다. 경계 근처의 가장 까다로운 점에 초점을 맞추면 훈련 후 모델을 정의하는 데 이러한 서포트 벡터만 필요하므로 SVM의 메모리 효율성이 높아집니다.

선형 경계로 클래스를 분리할 수 없는 데이터 세트(비선형적으로 분리할 수 없는 데이터)의 경우, SVM은 커널 트릭이라는 기법을 사용합니다. 이 영리한 방법을 사용하면 SVM은 이 새로운 공간에서 좌표를 명시적으로 계산하지 않고도 원본 데이터를 선형 분리가 가능한 고차원 공간으로 매핑할 수 있습니다. 일반적인 커널 함수는 다음과 같습니다:

  • 선형: 선형: 선형적으로 분리 가능한 데이터의 경우.
  • 다항식: 다항식: 다항식 함수를 사용하여 데이터를 상위 차원으로 매핑합니다.
  • 방사형 기저 함수(RBF): 복잡한 비선형 관계에 널리 사용되는 옵션입니다.
  • 시그모이드: 신경망(NN)에서 사용되는 활성화 함수와 유사합니다.

커널과 해당 파라미터의 선택은 매우 중요하며 종종 신중한 하이퍼파라미터 조정이 필요합니다.

관련성 및 애플리케이션

SVM은 특히 고차원 데이터(많은 특징)가 있지만 훈련 샘플이 제한된 시나리오에서 딥러닝(DL)의 부상에도 불구하고 여전히 관련성이 높습니다. 특히 명확한 분리 마진이 존재하는 경우 이론적 보장과 견고성으로 잘 알려져 있습니다. 역사적으로 물체 감지의 진화에서 알 수 있듯이, SVM은 HOG(Histogram of Oriented Gradients) 와 같은 특징 추출기와 결합하여 물체 감지와 같은 작업에 최첨단 기술을 사용했습니다.

일반적인 애플리케이션은 다음과 같습니다:

  • 이미지 분류: 이미지의 내용에 따라 이미지를 분류합니다(예: 다양한 종류의 꽃이나 동물 구분). SVM은 특히 적당한 크기의 데이터 세트에서 이미지에서 추출한 수작업 피처와 함께 사용할 때 효과적일 수 있습니다.
  • 텍스트 분류: 스팸 이메일 탐지 또는 고객 리뷰의 감정 분석과 같이 텍스트 문서를 미리 정의된 카테고리로 분류합니다. SVM은 고차원 텍스트 데이터(예: TF 기능)를 잘 처리합니다.
  • 생물정보학: 유전자 발현 데이터를 기반으로 한 단백질 분류나 암 진단과 같은 작업에 사용되며, 샘플 수에 비해 특징의 수가 매우 많을 수 있습니다.
  • 얼굴 인식: 얼굴 특징에 기반하여 개인을 식별하거나 확인하는 것으로, 종종 더 큰 시스템의 일부로 사용됩니다.

장점과 한계

장점:

  • 고차원에서 효과적입니다: 피처 수가 샘플 수보다 많은 경우에도 성능이 우수합니다.
  • 메모리 효율적: 결정 함수에서 훈련 포인트(지원 벡터)의 하위 집합만 사용합니다.
  • 다용도: 결정 함수에 다양한 커널 함수를 지정할 수 있어 다양한 데이터 유형을 유연하게 처리할 수 있습니다.
  • 좋은 일반화: 마진 극대화 목표는 종종 보이지 않는 데이터에 대한 정확도가 좋은 모델로 이어집니다.

제한 사항:

  • 계산 집약적입니다: 매우 큰 데이터 세트에서는 학습 속도가 느려질 수 있습니다.
  • 커널 및 매개변수 민감도: 성능은 커널 및 해당 매개변수(예: C, 감마)의 선택에 따라 크게 달라지므로 세심한 튜닝이 필요합니다.
  • 클래스가 겹치는 경우 성능 저하: 데이터 클래스가 상당히 겹치는 경우 이상적이지 않습니다.
  • 직접 확률 추정 없음: 표준 SVM은 클래스 할당을 생성하지만 직접적인 확률 점수는 생성하지 않습니다. SVM 출력을 확률로 보정하려면 플랫 스케일링과 같은 기술이 필요합니다.

Svm 대 다른 알고리즘

로지스틱 회귀와 같은 단순한 알고리즘에 비해 SVM은 단순히 구분 경계를 찾는 것이 아니라 마진을 극대화하는 것을 목표로 하므로 일반화가 더 잘 이루어질 수 있습니다. 의사 결정 트리나 랜덤 포레스트와 같은 트리 기반 방법과 달리 SVM은 고차원 공간에서 최적의 단일 하이퍼플레인을 구축합니다. 다음과 같은 최신 딥러닝 모델은 Ultralytics YOLO 와 같은 최신 딥러닝 모델은 원시 데이터(예: 컴퓨터 비전(CV)의 픽셀)에서 자동 특징 추출에 탁월하지만, SVM은 종종 세심한 특징 엔지니어링이 필요하지만 특징이 잘 정의된 소규모 데이터 세트나 특정 유형의 구조화된 데이터에서 탁월한 성능을 발휘할 수 있습니다. 널리 사용되는 구현으로는 LibSVM과 scikit-learn의 SVM 모듈이 있습니다. 이러한 모델을 비롯한 다양한 모델을 훈련하고 관리하는 작업은 MLOps 라이프사이클을 간소화하는 Ultralytics HUB와 같은 플랫폼을 사용하여 간소화할 수 있습니다.

모두 보기
OSZAR »