데이터들 사이에 가장 넓고 안전한 길을 찾아 명확한 경계를 긋는 알고리즘, 서포트 벡터 머신(SVM)을 탐험합니다. SVM이 어떻게 과적합을 방지하고 복잡한 비선형 문제까지 해결하는지 그 원리를 파헤쳐 봅니다.
서포트 벡터 머신(SVM)은 k-NN이나 의사결정트리와는 다른 방식으로 분류 문제를 해결합니다. SVM의 핵심 원리는 데이터를 가장 잘 나누는 '최적의 경계선'을 찾는 것입니다. 특히 과적합(Overfitting)을 방지하는 데 탁월한 성능을 보입니다.
운동회에서 두 팀이 모여있다고 상상해봅시다. 두 팀을 나누기 위해 바닥에 선을 그어야 하는 '심판'이 되었다고 가정합시다.
이처럼 '가장 넓은 길'을 찾아 경계를 명확히 함으로써, SVM은 새로운 데이터를 더 정확하고 견고하게 분류하는 것을 목표로 합니다. 이 방식은 훈련 데이터의 사소한 노이즈에 과도하게 맞추는 과적합(Overfitting) 문제를 효과적으로 방지합니다.
실제 데이터는 종종 직선 하나로 분류하기 어려운 복잡한 '비선형(Non-linear)' 형태를 띱니다. SVM은 이러한 문제도 해결할 수 있는 강력한 '커널(Kernel) 기법'을 가지고 있습니다.
책상 위에 사과와 오렌지가 뒤섞여 평면 위에 놓여있다고 상상해 보세요. 직선 하나로는 이들을 나눌 수 없습니다. 하지만 갑자기 책상 밑에서 바람이 불어와 오렌지만 공중으로 띄운다면 어떨까요? 이제 3차원 공간에서는 책상 위 평면과 붕 뜬 오렌지 사이를 가로지르는 '평면'으로 둘을 깔끔하게 나눌 수 있게 됩니다.
커널 기법이 바로 이와 같습니다. 원본 데이터를 '고차원 공간'으로 매핑(변환)하여, 저차원에서는 불가능했던 선형 분리가 고차원에서는 가능하도록 만듭니다.
실제로 데이터를 고차원으로 변환하면 계산이 매우 복잡해집니다. 커널 트릭은 실제로 데이터를 변환하지 않고도, 고차원으로 변환했을 때의 '내적(Inner Product)' 값을 미리 계산하여 사용하는 '마법 같은' 기법입니다. 이 덕분에 계산 비용을 크게 줄이면서도 비선형 문제를 효과적으로 해결할 수 있습니다.
SVM은 강력하지만 만능은 아닙니다. 특히 k-NN처럼 거리 기반의 개념을 내부적으로 사용하기 때문에, 데이터 스케일링이 필수적입니다. 또한, 데이터 양이 매우 많을 경우 학습 속도가 느려질 수 있다는 단점이 있습니다.