용어집

SVM(서포트 벡터 머신)

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

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

자세히 알아보기

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

Svm의 작동 방식

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

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

  • 리니어 커널: 선형적으로 분리 가능한 데이터에 사용됩니다.
  • 다항식 커널: 데이터를 고차 다항식 공간으로 매핑합니다.
  • 방사형 기저 함수(RBF) 커널: 복잡한 관계를 처리하고 데이터를 무한 차원 공간에 매핑할 수 있는 인기 있는 선택지입니다.
  • 시그모이드 커널: 신경망에서 사용되는 활성화 함수와 유사합니다.

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

관련성 및 애플리케이션

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

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

  • 이미지 분류: 손으로 쓴 숫자를 식별하거나 다양한 유형의 물체를 구별하는 등 이미지를 미리 정의된 카테고리로 분류합니다. 예를 들어, 추출된 특징을 기반으로 의료 이미지를 종양 포함 여부로 분류하도록 SVM을 학습시킬 수 있습니다.
  • 텍스트 분류: 문서를 주제별로 분류, 감성 분석(긍정/부정 리뷰), 스팸 탐지 등의 작업을 수행합니다. 예를 들어 뉴스 기사를 '스포츠', '정치', '기술' 등의 카테고리로 분류할 수 있습니다.
  • 얼굴 감지: 인식 전 예비 단계로 이미지 내에서 얼굴을 식별하는 작업입니다.
  • 생물정보학: 복잡한 생물학적 데이터를 기반으로 단백질, 유전자 또는 환자 샘플을 분류합니다.
  • 필기 인식: 시스템에서 필기 문자를 인식하는 데 사용됩니다.

장점과 한계

장점:

  • 차원 수가 샘플 수를 초과하는 경우에도 고차원 공간에서 효과적입니다.
  • 결정 함수에서 훈련 포인트(지원 벡터)의 하위 집합만 사용하므로 메모리 효율이 높습니다.
  • 다양한 커널 기능으로 다양한 데이터 유형에 적응할 수 있어 다용도로 사용할 수 있습니다.
  • 일반적으로 클래스가 잘 분리되어 있으면 높은 정확도를 얻을 수 있습니다.

제한 사항:

  • 계산 비용이 많이 들고 매우 큰 데이터 세트에 대한 학습 속도가 느릴 수 있습니다.
  • 성능은 커널 함수와 하이퍼파라미터의 선택에 따라 크게 달라집니다.
  • 클래스가 상당히 겹치는 노이즈가 많은 데이터 집합에서는 효과가 떨어집니다.
  • SVM은 확률 추정치를 직접 제공하지 않으며, 추가 처리(예: 플랫 스케일링)가 필요합니다.

Svm 대 다른 알고리즘

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

모두 보기