5단원: 서포트 벡터 머신 (SVM)

데이터들 사이에 가장 넓고 안전한 길을 찾아 명확한 경계를 긋는 알고리즘, 서포트 벡터 머신(SVM)을 탐험합니다. SVM이 어떻게 과적합을 방지하고 복잡한 비선형 문제까지 해결하는지 그 원리를 파헤쳐 봅니다.

SVM의 핵심 원리: 최대 마진 분류

'프로 심판'처럼 최적의 경계선 긋기

서포트 벡터 머신(SVM)은 k-NN이나 의사결정트리와는 다른 방식으로 분류 문제를 해결합니다. SVM의 핵심 원리는 데이터를 가장 잘 나누는 '최적의 경계선'을 찾는 것입니다. 특히 과적합(Overfitting)을 방지하는 데 탁월한 성능을 보입니다.

비유: 줄다리기 심판

운동회에서 두 팀이 모여있다고 상상해봅시다. 두 팀을 나누기 위해 바닥에 선을 그어야 하는 '심판'이 되었다고 가정합시다.

  1. '서포트 벡터' 찾기: 먼저 각 팀에서 선에 가장 가까이 다가온 선수들을 찾습니다. 이들이 바로 '서포트 벡터(Support Vectors)'입니다. 이들은 경계선의 위치를 '지지(Support)'하는 핵심 데이터 포인트입니다.
  2. '결정 경계' 긋기: 이 두 서포트 벡터로부터 최대한 멀리 떨어진, 정확히 정중앙에 선을 긋습니다. 이 선이 바로 '결정 경계(Decision Boundary)' 또는 '초평면(Hyperplane)'입니다.
  3. '마진' 최대화: 결정 경계와 양 팀의 가장 가까운 서포트 벡터 사이의 '안전거리' 또는 '텅 빈 길'을 '마진(Margin)'이라고 부릅니다. SVM의 목표는 이 마진을 최대로 넓게 만드는 것입니다. 마진이 넓을수록, 새로운 데이터가 들어왔을 때 더 안정적으로 분류할 수 있습니다.

이처럼 '가장 넓은 길'을 찾아 경계를 명확히 함으로써, SVM은 새로운 데이터를 더 정확하고 견고하게 분류하는 것을 목표로 합니다. 이 방식은 훈련 데이터의 사소한 노이즈에 과도하게 맞추는 과적합(Overfitting) 문제를 효과적으로 방지합니다.

커널 기법: 비선형 분류의 마법

실제 데이터는 종종 직선 하나로 분류하기 어려운 복잡한 '비선형(Non-linear)' 형태를 띱니다. SVM은 이러한 문제도 해결할 수 있는 강력한 '커널(Kernel) 기법'을 가지고 있습니다.

비유: 뒤섞인 과일 분리하기

책상 위에 사과와 오렌지가 뒤섞여 평면 위에 놓여있다고 상상해 보세요. 직선 하나로는 이들을 나눌 수 없습니다. 하지만 갑자기 책상 밑에서 바람이 불어와 오렌지만 공중으로 띄운다면 어떨까요? 이제 3차원 공간에서는 책상 위 평면과 붕 뜬 오렌지 사이를 가로지르는 '평면'으로 둘을 깔끔하게 나눌 수 있게 됩니다.

커널 기법이 바로 이와 같습니다. 원본 데이터를 '고차원 공간'으로 매핑(변환)하여, 저차원에서는 불가능했던 선형 분리가 고차원에서는 가능하도록 만듭니다.

'커널 트릭(Kernel Trick)'이란?

실제로 데이터를 고차원으로 변환하면 계산이 매우 복잡해집니다. 커널 트릭은 실제로 데이터를 변환하지 않고도, 고차원으로 변환했을 때의 '내적(Inner Product)' 값을 미리 계산하여 사용하는 '마법 같은' 기법입니다. 이 덕분에 계산 비용을 크게 줄이면서도 비선형 문제를 효과적으로 해결할 수 있습니다.

SVM의 강점과 약점

SVM 사용 시 주의할 점

SVM은 강력하지만 만능은 아닙니다. 특히 k-NN처럼 거리 기반의 개념을 내부적으로 사용하기 때문에, 데이터 스케일링이 필수적입니다. 또한, 데이터 양이 매우 많을 경우 학습 속도가 느려질 수 있다는 단점이 있습니다.

SVM 요약