SVM은 support vector machine의 줄임말로, 클래스 사이의 경계를 가능한 한 가장 큰 마진으로 선택하는 분류기입니다. SVM이 무엇인지 찾고 있다면, 핵심 아이디어는 이것입니다. 단순히 그룹을 나누는 데서 그치지 않고, 그 사이에 가장 넓고 믿을 만한 간격을 남기는 것입니다.

그 경계에 가장 가까운 점들을 서포트 벡터라고 합니다. 이 점들은 분리 경계가 어디에 놓일 수 있는지를 결정하므로 가장 중요합니다.

왜 마진이 중요한가

클래스 A의 점 무리 하나와 클래스 B의 점 무리 하나를 떠올려 보세요. 이들을 분리할 수 있는 직선은 여러 개일 수 있습니다. SVM은 양쪽에 가장 큰 안전 여유를 남기는 직선을 선호합니다.

이렇게 더 넓은 마진은 분류기가 학습 데이터의 작은 변화에 덜 민감하게 만들 때가 많습니다. 이것이 실제 성능 향상을 보장하는 것은 아니지만, SVM을 이해하는 가장 중요한 직관입니다.

SVM의 결정 경계는 어떻게 생겼나

선형 SVM에서 결정 경계는 초평면입니다.

wx+b=0w \cdot x + b = 0

분류기는 wx+b>0w \cdot x + b > 0이면 한 클래스를, wx+b<0w \cdot x + b < 0이면 다른 클래스를 예측합니다.

분리 가능한 데이터에 대한 표준 최대 마진 스케일링에서는, SVM이 다음을 만족하도록 wwbb를 선택합니다.

yi(wxi+b)1y_i(w \cdot x_i + b) \ge 1

이 조건이 모든 학습 점에 대해 성립하면서, 동시에 마진이 최대가 되도록 합니다. 이 스케일링에서 전체 마진 너비는

2w.\frac{2}{\|w\|}.

실무적으로 중요한 아이디어는 식보다 더 단순합니다. 이 정규화된 설정에서는 w\|w\|가 작을수록 마진이 더 넓습니다.

예제로 보기: 1차원 SVM

1차원 예제는 마진의 아이디어를 아주 쉽게 보여 줍니다.

음성 클래스의 점이 x=0x=0x=1x=1에 있고, 양성 클래스의 점이 x=4x=4x=5x=5에 있다고 해 봅시다.

1144 사이의 어떤 임곗값이라도 클래스를 분리할 수 있습니다. 예를 들어 x=2x=2도 되고 x=3x=3도 되지만, 이런 선택들이 양쪽에 같은 여유를 주는 것은 아닙니다.

이 1차원 분리 가능 설정에서 SVM은 서로 다른 클래스 중 가장 가까운 점들의 중간점을 선택하므로, 결정 임곗값은

x=2.5.x = 2.5.

가장 가까운 음성 점은 x=1x=1이고, 가장 가까운 양성 점은 x=4x=4입니다. 이 점들이 서포트 벡터입니다. 각 점은 경계에서 1.51.5만큼 떨어져 있으므로, 마진은 가능한 한 넓고 균형 있게 잡힙니다.

이 경우 분류기를 " x>2.5x > 2.5이면 양성, x<2.5x < 2.5이면 음성으로 예측한다"라고 쓸 수 있습니다. 이 단순한 경우가 핵심을 잘 보여 줍니다. 경계는 멀리 떨어져 이미 분류하기 쉬운 점들이 아니라, 가까이에 있는 가장 까다로운 사례들에 의해 결정됩니다.

하드 마진 SVM vs 소프트 마진 SVM

하드 마진 SVM은 학습 데이터가 완벽하게 선형 분리 가능할 때만 작동합니다. 단 하나의 점이라도 이 조건을 깨면, 하드 마진 설정은 데이터에 맞지 않습니다.

그래서 실제로는 많은 SVM이 소프트 마진을 사용합니다. 소프트 마진 SVM은 여전히 넓은 마진을 선호하지만, 일부 점이 마진 안쪽에 들어오거나 심지어 경계의 반대편에 놓이는 것도 패널티를 주면서 허용합니다.

매개변수 CC는 이 절충을 조절합니다. CC가 클수록 위반에 더 큰 패널티를 줍니다. CC가 작을수록 더 많은 유연성을 허용합니다. 어느 쪽이 자동으로 더 좋은 것은 아니며, 데이터에 따라 달라지고 검증 성능으로 확인해야 합니다.

커널 SVM이 도움이 되는 경우

원래의 특징 공간에서는 직선 경계만으로 충분하지 않을 때가 있습니다. 커널 SVM은 커널 함수를 통해 점들을 비교함으로써 이를 처리하며, 거대한 변환 특징 벡터를 명시적으로 쓰지 않고도 곡선 경계를 가능하게 할 수 있습니다.

핵심 조건은 이런 추가 유연성이 데이터 패턴에 정말 필요할 때만 도움이 된다는 점입니다. 커널은 모델을 개선할 수 있지만 튜닝을 더 어렵게 만들 수도 있으므로, 기본 선택으로 쓰기보다 검증을 통해 선택해야 합니다.

SVM에서 흔한 실수

모든 점이 똑같이 중요하다고 생각하기

SVM에서는 경계에 가장 가까운 점들이 가장 중요합니다. 경계에서 멀리 떨어진 점들은 최종 분리 경계에 거의 영향을 주지 않는 경우가 많습니다.

하드 마진의 조건을 잊기

완벽한 선형 분리는 실제 조건이지, 기본 가정이 아닙니다. 클래스가 겹친다면 소프트 마진이나 다른 모델이 필요합니다.

특징 스케일링을 무시하기

SVM은 거리와 내적에 의존합니다. 어떤 특징의 측정 스케일이 다른 특징보다 훨씬 크면, 입력을 먼저 스케일링하지 않는 한 그 특징이 경계를 지배할 수 있습니다.

커널이 자동으로 더 낫다고 가정하기

더 유연한 경계는 학습 데이터에 더 잘 맞을 수 있습니다. 하지만 그것이 일반화 성능도 자동으로 더 좋아진다는 뜻은 아닙니다.

SVM은 어디에 쓰이나

SVM은 클래스 사이의 경계가 비교적 뚜렷하고, 마진 기반의 사고가 도움이 되는 분류 문제에 사용됩니다. 특히 중소 규모의 표 형식 데이터 문제와 고차원 특징 공간이 흔한 텍스트 분류에서 자주 쓰입니다.

또한 support vector regression이라는 관련 방법으로 회귀에도 사용되지만, 그것은 여기서 설명한 이진 분류 그림과는 다른 설정입니다.

비슷한 SVM 문제를 직접 해보기

예제의 1차원 점들에 새로운 음성 점 하나를 x=2.2x=2.2에 추가해 보세요. 이제 깔끔하고 넓은 간격은 사라집니다. 하드 마진을 고집하면 무엇이 달라지는지, 소프트 마진을 허용하면 무엇이 달라지는지 생각해 보세요. 이 비교는 SVM을 가장 빠르게 이해하는 방법인 경우가 많습니다.

문제 풀이가 필요하신가요?

문제를 올리면 검증된 단계별 풀이를 몇 초 만에 받을 수 있습니다.

GPAI Solver 열기 →