서포트 벡터 머신, 즉 SVM(Support Vector Machine)은 N차원 공간에서 각 클래스 간의 거리를 최대화하는 최적의 선 또는 초평면을 찾아 데이터를 분류하는 지도형 머신 러닝 알고리즘입니다.
SVM은 1990년대에 블라디미르 바프닉(Vladimir N. Vapnik)과 그의 동료들이 개발했으며, 1995년 '함수 근사, 회귀 추정 및 신호 처리를 위한 서포트 벡터 방법'1이라는 제목의 논문에서 발표되었습니다.
SVM은 일반적으로 분류 문제에서 사용됩니다. 서로 반대되는 두 클래스의 가장 가까운 데이터 포인트 사이의 마진을 최대화하는 최적의 초평면을 찾아 두 클래스를 구분합니다. 입력 데이터의 특성 수에 따라 초평면이 2차원 공간의 선인지, 아니면 n차원 공간의 면인지가 결정됩니다. 클래스를 구분하기 위해 여러 초평면을 찾을 수 있으므로, 포인트 사이의 마진을 최대화하면 알고리즘이 클래스 간 최적의 결정 경계를 찾을 수 있습니다. 이를 통해 새로운 데이터에도 잘 일반화하여 정확한 분류 예측을 할 수 있습니다. 최적의 초평면에 인접한 선들을 서포트 벡터라고 하는데, 이 벡터는 최대 마진을 결정하는 데이터 포인트를 통과하기 때문입니다.
SVM 알고리즘은 선형 및 비선형 분류 작업을 모두 처리할 수 있기 때문에 머신 러닝에서 널리 사용됩니다. 그러나 데이터를 선형적으로 분리할 수 없는 경우, 데이터를 고차원 공간으로 변환하여 선형 분리가 가능하도록 하기 위해 커널 함수를 사용합니다. 이러한 커널 함수의 적용을 '커널 트릭'이라고 하며 데이터 특성 및 특정 사용 사례에 따라 선형 커널, 다항식 커널, 방사 기저 함수(RBF) 커널 또는 시그모이드 커널 등 선택할 수 있는 커널 함수가 달라집니다.
선형 SVM은 선형적으로 분리 가능한 데이터에 사용됩니다. 즉, 데이터를 다른 클래스로 분리하기 위해 데이터를 변환할 필요가 없습니다. 결정 경계와 서포트 벡터는 거리의 모양을 형성하며, MIT의 패트릭 윈스턴(Patrick Winston) 교수는 이 2차 최적화 문제를 설명하기 위해 '가능한 가장 넓은 거리에 맞추는 것'2(ibm.com 외부 링크)이라는 비유를 사용합니다 . 수학적으로 이 분리 초평면은 다음과 같이 표현할 수 있습니다.
wx + b = 0
여기서 w는 가중치 벡터, x는 입력 벡터, b는 편향 항입니다.
마진, 즉 클래스 간의 최대 거리를 계산하는 방법에는 하드 마진 분류와 소프트 마진 분류라는 두 가지 접근 방식이 있습니다. 하드 마진 SVM을 사용하면 데이터 포인트가 서포트 벡터 외부, 즉 힌튼 교수의 비유를 계속 사용하자면 '거리 밖'에서 완벽하게 분리됩니다. 이를 공식으로 표현하면 다음과 같습니다.
(wxj + b) yj ≥ a,
그 후 마진이 최대화되며, 이는 max ɣ= a / ||w||로 표시됩니다. 여기서 a는 w에 투영된 마진입니다.
소프트 마진 분류는 슬랙 변수(`ξ`)를 사용하여 일부 오분류가 허용되므로 더 유연합니다. 초매개변수인 C는 마진을 조정하는데, C 값이 클수록 마진이 좁아져 오분류가 최소화되고, C 값이 작을수록 마진이 넓어져 오분류 데이터가 더 많이 허용됩니다3.
실제 시나리오의 많은 데이터는 선형적으로 분리할 수 없으며, 바로 이 점에서 비선형 SVM이 중요한 역할을 합니다. 비선형 SVM은 데이터를 선형적으로 분리할 수 있도록 하기 위해 학습 데이터에 전처리 방식을 적용하여 더 높은 차원의 특성 공간으로 변환합니다. 그러나 고차원 공간은 데이터 과적합의 위험을 증가시키고 계산 부담을 가중시켜 더 복잡해질 수 있습니다. '커널 트릭'은 이러한 복잡성을 일부 줄여 계산을 더 효율적으로 만드는 데 도움이 되며, 점곱 계산을 동등한 커널 함수로 대체하는 방식으로 이뤄집니다4.
데이터를 분류하는 데 적용할 수 있는 커널 유형에는 여러 가지가 있습니다. 널리 사용되는 커널 함수는 다음과 같습니다.
다항식 커널
방사 기저 함수 커널(가우시안 커널 또는 RBF 커널이라고도 함)
시그모이드 커널
서포트 벡터 회귀(SVR)는 회귀 문제(즉, 결과가 연속적인 경우)에 적용되는 SVM의 확장입니다. 선형 SVM과 마찬가지로 SVR은 데이터 포인트 사이의 마진이 최대인 초평면을 차증며, 일반적으로 시계열 예측에 사용됩니다.
SVR은 독립 변수와 종속 변수 간에 이해하고자 하는 관계를 지정해야 한다는 점에서 선형 회귀와 다릅니다. 선형 회귀를 사용할 때는 변수 간의 관계와 그 방향에 대한 이해가 중요합니다. SVR은 이러한 관계를 스스로 결정하기 때문에 이 과정이 필요하지 않습니다.
이 섹션에서는 SVM 분류기를 구축하는 과정, 다른 지도 학습 알고리즘과 비교하는 방법, 그리고 오늘날 업계에서 SVM을 적용하는 방법에 대해 설명합니다.
다른 머신 러닝 모델과 마찬가지로 데이터를 학습 세트와 테스트 세트로 분할하는 것부터 시작하세요. 참고로, 여기서는 데이터에 대한 탐색적 데이터 분석을 이미 수행했다고 가정합니다. 기술적으로 SVM 분류기를 구축하는 데 반드시 필요한 것은 아니지만, 누락된 데이터나 이상값을 파악할 수 있으므로 머신 러닝 모델을 사용하기 전에 탐색적 데이터 분석 작업을 수행하는 것이 좋습니다.
scikit-learn(ibm.com 외부 링크)과 같이 원하는 라이브러리에서 SVM 모듈을 가져옵니다. 분류기에 학습 샘플을 학습시키고 응답을 예측합니다. 테스트 세트의 정확도를 예측된 값과 비교하여 성능을 평가할 수 있습니다. f1 점수, 정밀도 또는 재현율과 같은 다른 평가 메트릭을 사용할 수도 있습니다.
초매개변수를 조정하여 SVM 모델의 성능을 향상시킬 수 있습니다. 그리드 검색 및 교차 검증 방법을 사용하여 최적의 초매개변수를 찾을 수 있으며, 이 방법은 다양한 커널, 정규화(C) 및 감마 값을 반복하여 최적의 조합을 찾습니다.
동일한 사용 사례에 서로 다른 머신 러닝 분류기를 사용할 수 있습니다. 어떤 모델이 가장 성능이 좋은지 파악하려면 다양한 모델을 테스트하고 평가하는 것이 중요합니다. 즉, 각각의 장단점을 파악하여 실제 사용 사례에 적용할 수 있는지 평가하는 것이 도움이 될 수 있습니다.
나이브 베이스와 SVM 분류는 모두 텍스트 분류 작업에 일반적으로 사용됩니다. 데이터를 선형적으로 분리할 수 없는 경우 SVM이 나이브 베이스보다 더 나은 성능을 보이는 경향이 있습니다. 이때 SVM은 다양한 초매개변수에 맞게 조정해야 하며 계산 비용이 더 많이 들 수 있습니다.
SVM은 일반적으로 로지스틱 회귀분석에 비해 이미지 및 텍스트 데이터와 같은 고차원 및 비정형 데이터 세트에서 더 나은 성능을 발휘합니다. 또한 SVM은 과적합에 덜 민감하고 해석하기도 쉽습니다. 하지만 계산 비용이 더 많이 들 수 있습니다.
SVM은 고차원 데이터에서 더 나은 성능을 발휘하며 의사결정 트리에 비해 과적합될 가능성이 적습니다. 즉, 의사결정 트리는 특히 작은 데이터 집합에서 대개 더 빠르게 훈련할 수 있으며 일반적으로 해석하기가 더 쉽습니다.
다른 모델 비교와 마찬가지로 SVM은 훈련하는 데 계산 비용이 더 많이 들고 과적합이 덜 발생하는 반면, 신경망은 더 유연하고 확장성이 뛰어난 것으로 간주됩니다.
SVM은 다양한 작업에 적용될 수 있습니다. 산업 전반에서 가장 많이 사용되는 SVM의 응용 분야는 다음과 같습니다.
SVM은 일반적으로 자연어 처리(NLP)에서 감정 분석, 스팸 탐지, 주제 모델링과 같은 작업에 사용됩니다. SVM은 고차원 데이터에서 잘 작동하기 때문에 이러한 데이터에 적합합니다.
SVM은 객체 감지 및 이미지 검색과 같은 이미지 분류 작업에 적용됩니다. 또한 보안 도메인에서 이미지를 변조된 이미지로 분류하는 데 유용할 수 있습니다.
SVM은 단백질 분류, 유전자 발현 분석, 질병 진단에도 사용됩니다. SVM은 복잡한 데이터 세트에서 미묘한 추세를 감지할 수 있기 때문에 암 연구(ibm.com 외부 링크)에 자주 적용됩니다.
SVM은 전자기 데이터에서 '노이즈'를 걸러내어 땅 속에 적층된 지구물리학적 구조를 분석할 수 있습니다. 또한 토목 공학 분야와 관련된 토양의 지진 액상화 가능성을 예측하는 데도 도움이 되고 있습니다.
IBM Granite는 비즈니스에 맞게 맞춤화되고 AI 애플리케이션 확장에 최적화되었으며 개방적이고 성능이 뛰어나며 신뢰할 수 있는 AI 모델 제품군입니다. 언어, 코드, 시계열 및 가드레일 옵션을 살펴보세요.
IBM은 2,000개 조직을 대상으로 AI 이니셔티브에 대한 설문조사를 실시하여 효과적인 전략과 효과적이지 못한 전략, 그리고 앞서나갈 수 있는 방법을 알아보았습니다.
서포트 벡터 머신과 확률적 분류기와 같은 지도형 학습 접근 방식을 살펴보세요.
실습, 강좌, 가이드 프로젝트, 평가판 등을 통해 기본 개념을 배우고 기술을 쌓으세요.
사용 사례에 가장 적합한 AI 파운데이션 모델을 선택하는 방법을 알아보세요.
AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.
모든 링크는 ibm.com 외부에 있습니다.
1 함수 근사, 회귀 추정 및 신호 처리를 위한 지원 벡터 방법
2 Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University