SVM (Support Vector Machine)_개념편

2018. 7. 20. 16:53Machine Learning/Basic

SVM (Support Vector Machine)



안녕하세요. 오늘은 Data Classification에서 우수한 성능을 자랑하는 Support Vector Machine에 대해서 포스팅 해보려고 합니다. 실습은 나중에 따로 포스팅 할 예정이라, 간단한 개념만 몇 개 짚고 넘어갈게요 :) SVM은 Supervised Learning중에서도 Classification을 할 때 유용하게 쓰여요. SVM을 쉽게 표현하자면 어떤 DATA SET이 있을 때, 데이터 사이에 선을 그어서 잘 구분해주는, 그 선을 찾는것이 목적입니다. 그 선을 우리는 hyperplane 이라고 불러요. 




자, 위와 같은 분포를 가진 데이터가 있다고 가정합시다. 우리는 어디서 어떻게 선을 그어야 데이터를 가장 잘 나눴다고 할 수 있을까요?




RED X는 new data라고 합시다. new data가 들어왔을 때 우린 초록색에 속하는 데이터인지 검은색에 속하는 데이터인지를 잘 구별해낼 선을 구해야 할 거예요. 우선 임의로 세 개의 선을 그어보겠습니다. 이 세개의 선중에 어떤 선이 가장 훌륭한 선일까요?




SVM에서는 최고의 hyperplane을 가려내기 위해 위 그림에서 보이는 파란색 구간을 이용합니다. 이 구간을 우리는 margin이라고 합니다. 그렇다면 margin이 큰 hyperplane이 좋을까요, 작은 hyperplane이 좋을까요? 네, 당연히 margin이 큰 hyperplane이 훌륭합니다. margin 안에 데이터가 분포해도 적합하게 분류해 낼 수가 있기때문이죠. SVM의 목적을 다시 정의하자면 'Margin이 가장 큰 hyperplane을 찾아내는 것!' 이라고 할 수 있겠습니다 :) 그렇다면 margin은 어떻게 정의될까요?




margin은 hyperplane과 가장 가까운 data를 기준으로 측정합니다. 가운데 선이 우리가 선택한 hyperplane이었고, 그 선으로부터 가장 가까운 element에 빨간 동그라미를 쳐보니 2개의 데이터가 나옵니다. 이것을 우리는 Support Vector라고 합니다.



Regularization

오분류를 얼마나 피하고 싶은지에 따라 정규화 정도를 다르게 합니다.

High RegularizationLow Regularization



Soft margin

우선 Soft margin이란 약간의 오류를 허용해서 value들을 분류하는 것입니다. 마진 안에 value값이 포함될 수 있죠. 

Soft margin



마치 이렇게 말입니다. margin 안에 관측값들이 들어가 있는 모습을 볼 수 있습니다.



자, hyperplane, margin, support vector, Regularization 그리고 Soft margin의 의미를 파악하셨다면 SVM을 이해하는데 반은 오셨습니다. 오늘 포스팅은 이렇게 간단히 마치고, 다음에 실습 포스팅으로 찾아뵙겠습니다. 감사합니다.


그림 출처: https://slideplayer.com/slide/3266197/

'Machine Learning > Basic' 카테고리의 다른 글

PCA (Principal Component Analysis)  (0) 2018.07.18