일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 경사하강법
- 신경망
- 이산확률분포
- 조합
- 역행렬
- 베이즈정리
- 머신러닝
- 선형대수
- 행렬의 곱셈
- 확률
- 의사결정나무
- 서포트 벡터 머신
- 연속확률분포
- 조건부확률
- 노름
- 분류
- 행렬
- 엔트로피
- 확률과 통계
- 이산확률변수
- 선형회귀
- 확률과통계
- 최소제곱법
- 연속확률변수
- 정규분포
- 다층 퍼셉트론
- 결합확률
- 벡터
- 내적
- 퍼셉트론
- Today
- Total
데이터사이언티스트 성장기
서포트 벡터 머신 본문
서포트 벡터 머신 (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를 최소화하는 모델입니다.