서포트 벡터 머신(Support Vector Machine, SVM)은 분류와 회귀 문제를 해결하기 위한 머신러닝 알고리즘이다. SVM의 핵심 아이디어는 마진(margin)을 최대화하여 클래스 간의 경계를 찾는 것이다. 마진은 클래스를 구분하는 초평면(hyperplane)과 가장 가까운 훈련 샘플 간의 거리로 정의된다. 이러한 가장 가까운 훈련 샘플들을 서포트 벡터(support vectors)라고 한다.
조금 더 알기 쉽게 직관적으로 설명하자면, 2차원 평면에 빨간색과 파란색 점들이 분포되어 있다고 가정해보자. SVM의 목표는 빨간색과 파란색 점을 구분하는 선을 그리는 것이다. 이 선은 두 클래스의 가장 가까운 점들 사이의 거리가 최대가 되도록 그어진다. 이렇게 그어진 선은 분류 성능이 좋고, 새로운 데이터에 대한 예측이 더욱 견고해진다.
그러나, 실제 데이터는 이렇게 항상 선형적으로 구분되지 않는다. 이런 경우에는 커널 트릭(kernel trick)이라는 기법을 사용하여 데이터를 더 높은 차원의 공간으로 변환한다. 이렇게 고차원으로 변환된 데이터는 선형으로 구분될 수 있는 경우가 많아진다. 예를 들어, 원 모양으로 섞여 있는 두 클래스를 3차원 공간으로 매핑하면, 이 두 클래스를 구분하는 평면을 찾을 수 있다.