회귀 등의 방법을 통해 일반적으로 데이터를 분류하는 방법들은, 각 데이터의 분류를 확률적으로 계산하여 그 소속 여부를 결정한다. 즉, 확률에 대한 어떤 특정한 임계값을 넘는지 못넘는지에 따라 분류 여부를 판단하는 방식으로, 각 데이터가 특정 클래스에 속할 확률을 계산함으로써 분류가 실패할 확률(에러율)을 줄이는 쪽으로 학습을 진행한다. 이는 처음부터 분류 자체를 목적으로 한다기보다는, 데이터가 가까운 쪽의 클래스로 분류됨으로써 자연스럽게 분류가 완성되는 것이다.
서포트 벡터 머신(Suppor Vector Machine)은 이러한 방법들과 다르게 분류 자체를 목적으로 두고 데이터 간의 거리를 계산하여 그 사이의 가장 여백(margin)이 큰 경계를 찾는 방식으로 데이터 간에 경계를 나누면서 학습을 진행한다. 숫자로 표현하면 1과 5를 나눌 때 그 중간값인 3을 경계로 찾는 방식인데, 한 마디로 데이터 간의 거리를 재고 그 중앙을 연결하여 선을 그음으로써 데이터들을 분류한다고 설명할 수 있다.
위의 데이터와 경계를 보면 더 직관적으로 이해할 수 있는데, 위의 그래프 모두 파란색 그룹과 빨간색 그룹을 분류하고 있지만 두 그룹 간의 거리와 경계선을 생각해보면 그 거리가 제각각임을 알 수 있다. 이 때 파란색 점과 가장 가까운 빨간색 점, 그리고 빨간색 점과 가장 가까운 파란색 점이 각각 이 두 그룹 간의 거리를 특정하기 위한 기준점이라고 볼 수 있는데, 이들의 벡터를 서포트 벡터(support vector)라고 한다. 그리고 이 서포트 벡터의 거리를 재서 서로 간의 여백이 가장 커지는 중앙값을 찾으면 이 둘을 나누는 경계선을 만들 수 있게 된다. 이 떄 거리는 유클리디안 거리(Euclidean Distance)를 사용하는 것이 일반적이다.
유클리드 거리는 용어가 어렵게 느껴질 수 있지만 가장 단순하고 기본적인 거리 계산법으로, 벡터 좌표계에서 단순히 두 점을 이은 직선의 길이를 재는 방법이다.
그런데 2차원인 데이터를 배치하고 이 둘을 나누는 경계면을 찾는다면 그 경계는 1차원인 선이 될 것이지만 3차원 상에 데이터를 놓고 둘을 나눈다면 그 경계는 2차원인 면으로 나뉘게 된다. 그리고 우리가 학습하고 분류하는 데이터들은 N차원의 데이터들이 되기 때문에 이들은 N-1차원의 복잡한 평면으로 나누어지게 된다. 이 평면을 초평면(hyperplane)이라고 부르며, 서포트 벡터 머신은 경계면에 속하는 벡터 간의 거리 상 중간점을 지나는 이상적인 초평면을 찾는 데에 그 목적이 있다.
서포트 벡터 머신은 이렇듯 분류 자체를 목적으로 하는 최적의 분류 선을 찾는데에 목적을 두고 있기 때문에 분류에 있어서 문제를 단순화하고 최적화하는 강점을 가지고 있다. 라그랑주 승수법(Lagrange Multiplier Method)과 같은 방법을 통해 그룹을 대표하는 서포트 벡터를 찾기만 하면, 그 이후에는 쌍대문제(Dual Problem)으로 문제를 변환해 둘 사이의 중간을 찾는 식으로 풀리기 때문이다. 다만, 이로 인해 이상 데이터(outlier)에 있어서는 취약하다는 단점 또한 발생한다. 이상 데이터가 서포트 벡터로 인식되면 그로 인해 계산되는 초평면은 데이터를 제대로 반영하지 못하는 경계가 될 수 있다. 때문에 전처리를 통해 이상 데이터를 걸러내야 하고 서포트 벡터가 일반적인 데이터인지도 확인할 필요가 있다.
'Artificial.Intelligence' 카테고리의 다른 글
[AI-13] 단순하지만 강력하게 평균으로 모으기 : K-means Clustering (0) | 2024.11.22 |
---|---|
[AI-11] 유에서 무로, 다시 유로 : Diffusion Model (2) | 2024.11.07 |
[AI-10] 데이터에 따라 스스로를 조직하다: Self Organizing Map (0) | 2024.08.13 |
[AI-09] 데이터에서 자라난 무작위의 숲, Random Forest (0) | 2024.07.30 |
[AI-08] 진흙 속에서 진주 찾기 : KDD (1) | 2024.07.13 |