
SVM은 Support Vector Machine(서포트 벡터 머신)의 약자로, 주로 분류와 회귀에 쓰이는 지도학습 알고리즘입니다. 핵심 아이디어는 클래스 간을 나누는 최적의 결정경계(초평면)를 찾되, 그 경계와 가장 가까운 훈련 샘플들(서포트 벡터)과의 거리를 최대화하는 것입니다. 이렇게 하면 분류기가 일반화 성능을 높일 수 있습니다. 주요 개념 - 결정경계와 마진: 선형 SVM은 데이터가 선형으로 구분될 때 두 클래스 사이의 마진(여유 공간)을 최대화하는 초평면을 찾습니다. 마진을 결정짓는 데이터 포인트들이 서포트 벡터입니다. - 소프트 마진(슬랙 변수): 데이터가 완전히 분리되지 않을 때는 일부 오분류를 허용하여 일반화와 과적합 사이 균형을 맞춥니다. 이를 제어하는 것이 하이퍼파라미터 C입니다. - 커널 트릭: 데이터가 선형으로 분리되지 않을 때, 입력을 고차원 공간으로 암묵적으로 사상하여 선형 분리가 가능하게 만드는 방법입니다. 대표적 커널: 선형, 다항식, RBF(가우시안), 시그모이드. 내적을 커널 함수 K(x, x')로 대체해 실제로 고차원 좌표를 계산하지 않습니다. - 회귀(SVR)와 이상탐지: SVM 원리를 회귀(ε-insensitive loss)와 One-class SVM(이상치 탐지)에 응용할 수 있습니다. 간단한 최적화 형태(선형 소프트 마진) - 목적: 1/2 ||w||^2 + C Σ ξ_i 를 최소화 - 제약: y_i (w·x_i + b) ≥ 1 − ξ_i, ξ_i ≥ 0 여기서 w는 가중치, b는 편향, ξ_i는 슬랙 변수, C는 오분류에 대한 펜alty(작을수록 마진을 더 크게 허용). 핵심 하이퍼파라미터 - C: 오분류 허용도. C가 크면 오분류를 적게 허용(과적합 위험), 작으면 마진을 넓혀 일반화 우선. - 커널 종류와 파라미터(예: RBF의 gamma): 결정경계의 복잡도를 조절. gamma가 크면 국소적 복잡한 결정경계(과적합 위험), 작으면 더 부드러운 경계. - (SVR의 경우) ε: 허용 오차 구간의 크기. 장점 - 고차원 데이터에서도 잘 동작(특징 수 > 샘플 수인 경우 유리). - 서포트 벡터만 사용하므로 메모리 효율적(일부 구현에서). - 커널을 통해 비선형 문제에 유연하게 적용 가능. 단점 - 큰 데이터셋에서는 학습 속도가 느리고 메모리 소모가 큼(특히 샘플 수가 매우 클 때). - 적절한 커널과 하이퍼파라미터 선택이 성능에 크게 영향. - 기본적으로 확률적 출력이 아니므로, 확률 추정을 원하면 추가 보정(예: Platt scaling)이 필요. 활용 사례 - 텍스트 분류(예: 스팸 필터링), 이미지 분류, 바이오인포매틱스(유전자 분류), 이상탐지 등. 요약하면, SVM은 마진 최대화와 서포트 벡터 개념을 이용해 강력한 분류/회귀 모델을 제공하며, 커널 트릭으로 비선형 문제에도 적용 가능한 범용적인 기법입니다.