데이터 노가다 일지

[SVM]서포트 벡터 머신 알고리즘 본문

알고리즘

[SVM]서포트 벡터 머신 알고리즘

hoho0311 2025. 4. 23. 09:42

1. 서포트 벡터 머신 (SVM, Support Vector Machine) 알고리즘 개요

SVM알고리즘은 머신러닝에서 잘 사용되지만 요즘 딥러닝에 밀리는 추세라고 한다. 하지만 보통 대학 수업 과정에서 잘 나오므로 공부해보았다.

SVM은 머신러닝에서 널리 사용되는 지도 학습 알고리즘으로, 주로 분류와 회귀 문제에 활용된다. 간단하게 말하면 두 개 이상의 집단을 가장 잘 자누는 경계를 찾는 알고리즘이다. 아래 좀 더 자세하게 설명해보겠다.

SVM의 목표는 서로 다른 두 클래스의 데이터를 가장 넓은 간격(마진)으로 구분하는 최적의 경계(초평면)를 찾는것.

위와같이 두 개의 집단을 나누는 여러가지의 초평면을 구할수 있겠다.

하지만 가장 잘 나눈 초평면은 뭐라고 할 수 있나?

바로 두 집단중 가장 초평면에 가까운 객체(데이터)가 초평면과의 거리(마진)이 최대가 되는 초평면이 가장 잘 나눈 초평면이라 할 수 있겠다.

2. 결정 경계/Decision Boundary

만약, 데이터에 두 개의 집단(속성, Feature)만 있다면 결정 경게는 아래와 같은 형태가 될 것이다.

그러나 속성이 세 개로 늘어난다면 아래와 같아질 것이다.

이 때, 결정 경제는 '선'이 아닌 '평면'이 된다.

이것이 우리가 이해 가능한 최대 범위의 차원이다. 즉, 속성애 개수가 늘어날수록 당연히 복잡해질 것이며 결졍 경계또한 평면이 아닌 고차원이 된다. 이를 초평면(Hyeperplane)이라고 부른다.

3. 최적의 결졍 경계(Optimal Desicion Boundary)

결정 경계는 무수히 많이 그릴 수 있다. 그렇다면 어떤 경계가 좋은 것일까?

C룰 보면 결정경계가 파란색 집단에 너무 붙어있기 마련이다. ( 쉽게 말해 본인 집 앞이 DMZ면 좋은가? 라고 생각해보자 )

경계를 두 집단에 공평하게 나누는게 좋기 때문에 최적의 결과는 E,F로 보인다.

4. 마진(Margin)

마진(Margin)이란 결졍 경계와 서포트 벡터 사이의 거리이다.

점선으로부터 결정 경계까지의 거리가 바로 마진이다.

위에서의 설명과 해당 그림을 종합해보면 최적의 결정 경꼐는 마진을 최대화한다는 것을 알 수 있다.

즉, 마진이 최대이면 최적의 결정 경계라고 증명할 수 있다.

 

위 그림은 x축과 y축 2개의 속성을 가진 데이터로 결정 경계를 그었는데, 총 세개의 데이터 포인트(서포트 벡터)가 필요했다.

즉, n개의 속성을 가진 데이터에는 최소 n+1개의 서포트 벡터가 존재한다는 걸 알 수 있다.

 

여기에서 SVM알고리즘의 장점을 알 수 있다.

대부분의 머신러닝 지도 학습 알고리즘은 학습 데이터 모두를 사용하여 모델을 학습한다. 그런데 SVM 에서는 결정 경계를 정의하는 게 결국 서포트 벡터이기 떄문에 데이터 포인트 중에서 서포트 벡터만 잘골라내면 나머지 쓸 데 없는 수많은 데이터 포인터들을 무시할 수 있다. 그래서 매우 빠르다.

5. 하드마진, 소프트 마진

위 그림을 보면 왼쪽에 혼자 튀어나온 파란색 점과 오른쪽에 튀어나온 빨간색 점이 있다. 이를 이상치(Outlier)라고 한다.

 

첫 번째 그림은 아웃라이어를 허용하지 않고 기준을 까다롭게 세웠다. 이를 하드마진(Hard margin)이라고 한다. 이럴경우 서포트벡터와 결졍 경계의 거리가 매우 좁다. 즉, 마진이 매우 작아진다. 이렇게 개별적인 학습 데이터들을 다 놓지지 않으려고 아웃라이어를 허용하지 않는 기준을 설정한다면 과대적합 문제가 발생할 수 있다.

 

두 번째 그림은 아웃라이어를 허용하여 기준을 세웠다. 이를 소프트마진(Soft margin)이라고 한다. 이럴경우 소프트 벡터와 결정경계의 거리가 적당히 있음을 알 수 있다. 하지만 이럴경우 마진이 너무 커지는 경우가 생길 수 있어 과소적합 문제가 발생할 수 있다.

 

그러니 두 부분 모두 적절한 기준을 설정하는 것이 중요하다.

 

[출처]https://cordingdiary.tistory.com/108

 

[딥러닝] 서포트 벡터 머신 알고리즘 (SVM Algorithm)

1. 서포트 벡터 머신(SVM, Support Vectir Machine) 알고리즘 개요 SVM 알고리즘은 기본적으로 분류를 위한 기준 선을 정의(결정 경계/Decision Boundary)하여 두 개의 데이터를 분리하는 방법으로 데이터들과

cordingdiary.tistory.com

 

'알고리즘' 카테고리의 다른 글

self-Attention mechanism of Transformer model  (0) 2025.05.07
[Random Forest] RF  (0) 2025.04.23
결정트리  (0) 2025.04.22
손실함수란? ( MSE )  (0) 2025.04.10