SVM(서포트 벡터 머신)이란? 문서 분류에 쓰이는 이유 쉽게 이해하기
부스트키워드 팀
검색 데이터로 키워드의 검색량, 트렌드, 검색 의도를 파악하고 마케팅 의사결정을 돕는 도구 부스트키워드를 만듭니다.
머신러닝으로 스팸 메일을 걸러내거나 리뷰의 긍정·부정을 판단할 때, 결국 컴퓨터가 하는 일은 "이 데이터를 어느 그룹에 넣을 것인가"를 결정하는 것입니다. 이때 두 그룹을 나누는 경계선을 가장 안전하고 똑똑하게 긋는 방법을 고민한 알고리즘이 바로 서포트 벡터 머신(Support Vector Machine, SVM)입니다. 특히 텍스트나 문서를 분류하는 문제에서 오랫동안 뛰어난 성능을 보여온 이 알고리즘의 원리를, 예제와 함께 하나씩 살펴보겠습니다.
두 그룹을 나누는 방법은 하나가 아니다
같은 데이터라도 경계선을 긋는 방법은 무수히 많다
두 종류의 데이터가 평면 위에 흩어져 있다고 상상해봅시다. 예를 들어 왼쪽에는 주로 '스포츠' 관련 문서들이, 오른쪽에는 주로 '경제' 관련 문서들이 모여 있는 그림입니다. 이 두 그룹을 하나의 직선으로 나눈다고 할 때, 사실 그 직선을 그을 수 있는 방법은 하나가 아니라 무수히 많습니다. 데이터를 정확히 나누기만 한다면, 선을 살짝 기울이거나 위아래로 옮겨도 여전히 두 그룹을 잘 구분할 수 있기 때문입니다.
"가장 좋은" 경계선은 무엇을 기준으로 정할까
문제는 여기서 시작됩니다. 이렇게 많은 후보 중에서 어떤 경계선이 가장 좋은 경계선일까요? 단순히 기존 데이터를 정확히 나누는 것만으로는 부족합니다. 앞으로 들어올 새로운 데이터도 잘 분류할 수 있는, 더 안정적이고 신뢰할 수 있는 경계선을 찾아야 합니다. SVM은 바로 이 질문에 명확한 기준을 제시하는 알고리즘입니다.
SVM의 핵심 아이디어: 마진을 최대화하라
마진(Margin)이란 무엇인가
SVM이 제시하는 기준은 "경계선과 양쪽 그룹의 데이터 사이에 가능한 한 넓은 여유 공간을 확보하자"는 것입니다. 이 여유 공간을 마진(Margin)이라고 부릅니다. 경계선 바로 옆에 데이터가 아슬아슬하게 붙어 있다면, 새로운 데이터가 조금만 다르게 들어와도 잘못된 쪽으로 분류될 위험이 큽니다. 반대로 경계선과 데이터 사이에 넉넉한 여유 공간이 있다면, 약간의 변수가 생기더라도 안정적으로 올바른 그룹으로 분류될 가능성이 높아집니다.
여유 공간이 넓을수록 새로운 데이터에도 강한 이유
마치 두 팀이 경기를 벌이는 운동장에 중앙선을 그을 때, 양 팀 진영에 최대한 여유 공간을 두고 선을 긋는 것이 안전한 것과 비슷합니다. SVM은 무수히 많은 경계선 후보 중에서, 이 마진이 가장 넓어지는 단 하나의 경계선을 수학적으로 계산해서 찾아냅니다.
서포트 벡터(Support Vector)란 무엇인가
경계선을 결정하는 데 실제로 영향을 미치는 데이터는 일부뿐
흥미로운 점은, 이 최적의 경계선을 결정할 때 전체 데이터가 모두 똑같이 중요한 역할을 하지는 않는다는 것입니다. 두 그룹의 데이터 중에서 경계선에 가장 가까이 붙어 있는 몇몇 데이터만이 실제로 경계선의 위치와 각도를 결정하는 데 결정적인 역할을 합니다. 경계선에서 멀리 떨어져 있는 데이터는 그 위치가 조금 바뀌어도 최적의 경계선 자체에는 영향을 주지 않습니다.
이름이 '서포트 벡터 머신'인 이유
바로 이렇게 경계선을 사실상 '지지(support)'하고 있는, 경계에 가장 가까운 데이터들을 서포트 벡터라고 부릅니다. 알고리즘 이름 자체가 "경계선을 지지하는 벡터(데이터)들을 이용해 분류를 수행하는 방법"이라는 뜻에서 붙여진 것입니다.
간단한 예제로 이해하는 SVM
두 종류의 문서를 평면 위에 점으로 표현하기
간단한 예를 들어보겠습니다. '스포츠 기사'와 '경제 기사' 문서들을, 각 문서에 "운동 관련 단어가 몇 번 등장했는지"와 "금융 관련 단어가 몇 번 등장했는지"라는 두 가지 특징으로 평면 위에 점을 찍어 표현했다고 가정해봅시다. 스포츠 기사들은 운동 관련 단어 수가 높고 금융 관련 단어 수는 낮은 위치에, 경제 기사들은 그 반대 위치에 모여 있을 것입니다.
마진이 가장 넓은 경계선 직접 찾아보기
이 두 그룹의 점들 사이에는 여러 개의 직선을 그을 수 있지만, SVM은 양쪽 그룹에서 경계에 가장 가까이 있는 몇 개의 문서(서포트 벡터)를 기준으로, 그 문서들로부터 최대한 멀리 떨어진 위치에 경계선을 긋습니다. 이렇게 그어진 경계선은 기존 데이터를 정확히 나눌 뿐 아니라, 새로 들어올 스포츠 기사나 경제 기사에 대해서도 안정적으로 올바른 카테고리를 예측할 가능성이 높습니다.
딱 떨어지게 나눌 수 없는 데이터는 어떻게 할까
약간의 오차를 허용하는 소프트 마진
현실의 데이터는 언제나 깔끔하게 두 그룹으로 나뉘지는 않습니다. 예를 들어 스포츠와 경제 두 주제를 모두 다루는 애매한 기사가 섞여 있을 수 있습니다. 이런 경우를 위해 SVM은 몇 개의 데이터가 경계선을 살짝 넘어가는 것을 허용하면서, 전체적으로 가장 균형 잡힌 경계선을 찾는 방식을 함께 사용합니다. 이를 소프트 마진이라고 부르며, 약간의 오차를 감수하더라도 지나치게 복잡하지 않은 안정적인 경계선을 유지하기 위한 장치입니다.
직선으로 나눌 수 없는 데이터를 위한 커널 트릭
한편 데이터에 따라서는 어떤 직선을 그어도 두 그룹을 제대로 나눌 수 없는 경우도 있습니다. 예를 들어 한 그룹이 다른 그룹을 동그랗게 감싸고 있는 형태라면, 평면 위에 직선을 아무리 잘 그어도 완벽하게 나눌 수 없습니다. 이런 경우 SVM은 데이터를 원래보다 더 높은 차원의 공간으로 옮겨서 살펴보는 방법을 사용합니다. 낮은 차원에서는 구불구불하게 얽혀 있던 데이터가, 더 높은 차원에서는 오히려 직선(또는 평면)으로 깔끔하게 나뉘는 경우가 많기 때문입니다. 이렇게 데이터를 더 높은 차원으로 옮겨 계산하는 기법을 커널 트릭이라고 부르며, 덕분에 SVM은 복잡하게 얽힌 데이터에도 유연하게 대응할 수 있습니다.
SVM이 텍스트·문서 분류에 특히 강한 이유
단어가 매우 많은 고차원 데이터에서도 잘 작동하는 특성
문서를 분류할 때는 보통 문서에 등장하는 수천, 수만 개의 단어 각각을 하나의 특징으로 사용합니다. 즉 문서 하나가 수만 개의 차원을 가진 점으로 표현되는 셈입니다. 이렇게 차원이 매우 많은 데이터를 다룰 때, SVM은 다른 여러 알고리즘에 비해 비교적 안정적이고 뛰어난 성능을 보여주는 것으로 알려져 있습니다. 이러한 특성 때문에 SVM은 오랫동안 텍스트 분류 분야의 대표적인 알고리즘으로 자리 잡아 왔습니다.
스팸 필터링, 감정 분석 등 실제 활용 사례
실제로 SVM은 스팸 메일 필터링, 리뷰의 긍정·부정 감정 분석, 뉴스 기사 카테고리 자동 분류 등 다양한 텍스트 분류 문제에 폭넓게 활용되어 왔습니다. 딥러닝이 널리 쓰이기 이전에는 이러한 문제에서 가장 신뢰받는 방법 중 하나였습니다.
SVM의 장점과 한계
SVM의 가장 큰 장점은 마진을 최대화한다는 명확한 기준 덕분에 새로운 데이터에도 비교적 안정적으로 대응한다는 점, 그리고 고차원 데이터에서도 좋은 성능을 낸다는 점입니다. 반면 데이터의 양이 매우 많아지면 계산에 필요한 시간과 메모리가 크게 늘어나고, 어떤 커널을 사용할지, 오차를 어느 정도까지 허용할지 등 여러 설정값을 적절히 조정해야 좋은 성능을 얻을 수 있다는 점이 단점으로 꼽힙니다.
정리하며
SVM은 "두 그룹을 나누는 무수히 많은 경계선 중에서, 여유 공간(마진)이 가장 넓은 하나를 찾자"는 명확한 원칙 위에 세워진 알고리즘입니다. 경계에 가장 가까운 소수의 데이터(서포트 벡터)만으로 전체 경계를 결정한다는 효율적인 발상과, 복잡하게 얽힌 데이터도 다룰 수 있는 커널 트릭 덕분에, SVM은 오랫동안 텍스트 분류를 비롯한 다양한 분야에서 신뢰받는 알고리즘으로 활용되어 왔습니다.
Q.SVM과 나이브 베이즈는 어떻게 다른가요?
Q.커널(Kernel)이라는 용어는 무슨 뜻인가요?
Q.SVM은 요즘도 딥러닝만큼 많이 쓰이나요?
Written by

부스트키워드 팀
검색 데이터로 키워드의 검색량, 트렌드, 검색 의도를 파악하고 마케팅 의사결정을 돕는 도구 부스트키워드를 만듭니다.
