데이터사이언티스트 성장기

서포트 벡터 머신 본문

머신러닝

서포트 벡터 머신

dssj 2022. 10. 25. 20:53

서포트 벡터 머신 (SVM) 은 두 범주의 데이터를 분류하기 위한 기준선을 잡는 모델입니다. 그래서 새 데이터가 들어왔을 때 이 기준선을 바탕으로 어떤 범주에 속하는 데이터인지 분류할 수 있습니다.

 

이렇게 빨간 점들과 파란 점들을 구분하는 적절한 선을 찾는 모델입니다. 2차원이 아니라 3차원 상의 데이터들은 평면이 경계가 되어 분류되게 됩니다.

 

그렇다면 이 최적의 경계를 어떻게 정해야 할까요?

확실한 분류를 하기 위해선 이 경계선이 양쪽 범주에 속한 데이터들로부터 최대한 멀리 떨어져야합니다. 한쪽에 치우쳐저 있다면 좋은 경계선이 아니겠죠

여기서 서포트 벡터마진의 개념을 사용하게 됩니다.

서포트 벡터란 경계선에서 가장 가까운 각 범주의 데이터를 의미합니다. 그리고 이 서포트 벡터와 경계선까지의 거리를 마진이라고 합니다.

 

이 경계선은 다음과 같이 표현할 수 있습니다.

$$w_1x + w_2y + b = W^Td = 0$$

 

$$ W = ( w_1, w_2 ) , d = ( x, y ) $$

 

그렇다면 위 그림에서 각각 빨간점과 파란점 위를 지나는 점선의 방정식은 어떻게 표현할 수 있을까요?

 

먼저 빨간점 위를 지나는 점선은 경계선보다 더 위로 이동 하였으므로  w_1x + w_2y + b > 0 일 겁니다.

임의로 1만큼 위에 있다고 가정하고 빨간점을 지나는 선을 W^Td + b = 1로 정의하겠습니다. 이를 Plus-plane이라고 합니다.

그렇다면 다른 빨간점들의 위치는 자연스레 Plus-Plane 위의 점들이기에 W^Td + b > 1이 되게 됩니다.

 

파란점을 지나는 점선은 경계선보다 아래에 있으므로 0보다 작아야하고 앞서 임의로 정한 빨간점을 지나는 점선과 같은 크기만큼 경계선과 떨어져 있어야 하므로 W^Td + b = -1로 정의하겠습니다. 이를 Minus-plane이라고 합니다. 다른 파란점들은 W^Td + b < 1이 됩니다.

 

마진의 크기는 이 Plus-plane과 Minus-plane 사이의 거리입니다.

Plus-plane과 Minus-plane은 평행이동을 통해 같게 만들 수 있습니다. 즉, Minus-plane 상의 파란 점을 일정 방향과 크기만큼 평행이동한다면, Plus-plane위에 위치 시킬 수 있다는 의미입니다. 이를 식으로 나타내면 다음과 같습니다.

 

d = d + rW

 

여기서 파란 점이 이동한 거리를 나타내는 r이 마진의 크기가 됩니다.

앞서 정의했던 점선의 방정식에 위 식을 대입하여 보겠습니다.

그러면 다음과 같이 정리할 수 있습니다.

 

W^Td + b = 1

 

-> W^T(d + rW) + b = 1

 

-> W^Td + b + W^TrW = 1

 

-> -1 + W^TrW = 1

 

-> W^TrW = 2

 

-> r = 2 / W^TW

 

즉, 마진의 크기는r = 2 / W^TW로 나타낼 수가 있습니다.

 

결국 SVM은 이 2/W^TW를 최대화하는, 다시말해 W^TW를 최소화하는 모델입니다.

 

'머신러닝' 카테고리의 다른 글

의사결정나무  (0) 2022.11.11
선형회귀  (0) 2022.10.12
Comments