ImageLab News 

이미지랩소식

ImageLab News

이미지랩소식

머신러닝[분류알고리즘5] SVM(Support Vector Machine)

SVM은 분류를 위한 기준선, 결정 경계를 결정하는 알고리즘이다. 

새로운 데이터가 입력되면 결정 경계를 기준으로 어느 쪽에 속하는지를 확인해, 데이터를 분류한다.

942ff7eb8b7da.png

c8c47ba93aeb4.png

위는 두 개의 데이터 군과 결정 경계를 나타낸 그래프들이다. 이 그래프들 가운데 가장 적절한 결정 경계는 F의 결정 경계로, 경계가 두 데이터 군 사이에서 거리가 가장 멀기 때문이다.


서포트 벡터(Support Vector)는 결정 경계와 가까이 있는 개개의 데이터를 의미한다. 이 데이터들이 결정 경계를 정의하는데 가장 중요한 역할을 가진다. 결정 경계와 서포트 벡터 사이의 거리를 마진(Margin)이라고 하는데, 아래 이미지에서 실선이 결정 경계, 결정 경계로부터 검은 테두리가 있는 빨간 점 한 개와 파란 점 두 개까지 영역을 만들어 평행하게 결정 경계를 이동해 영역을 만들었는데, 점선과 결정 경계까지의 거리가 그것이다. 


그리고 SVM은 이 마진을 최대화할 수 있는 결정 경계를 생성하기 위한 알고리즘이다. n 개의 feature를 가진 데이터에는 최소 n+1개의 서포트 벡터가 존재한다.

 

SVM의 장점은 속도가 아주 빠르다는 점인데, 결정 경계를 정의하기 위해서는 서포트 벡터만을 알면 되기 때문에 개개의 데이터들 가운데 서포트 벡터가 되는 데이터만 골라낸다면 다른 데이터에 대한 학습을 수행할 필요가 없기 때문이다.

 

데이터를 올바르게 분리하면서 마진의 크기를 최대화하기 위해서는 이상치(Outlier)를 잘 다룰 필요가 있다. 아래 그래프에 외따로 떨어져 있는 빨간 점과 파란 점이 이상치(Outlier)이다.

a2214cb25f9e5.png

위의 두 그래프를 더 자세히 비교해보면, 위의 그래프는 이상치를 전혀 허용하지 않는 까다로운 기준을 세운 그래프이다. 이것을 hard margin이라고 한다. 이렇게 개별 학습 데이터를 하나도 놓치지 않기 위해 이상치를 허용하지 않는 결정 경계를 설정하면 오버 피팅 문제가 발생할 수 있다.

반대로 아래는 이상치가 마진 안에 포함될 수 있게끔 너그러운 기준을 세운 그래프이다. 이것을 Soft Margin이라고 한다. 이 경우에는 반대로 이상치를 지나치게 허용해 학습이 충분히 되지 않는 언더 피팅 문제가 발생할 수 있다.

위에서는 선형 결정 경계를 만들 수 있는 데이터 세트를 예로 들었다. 하지만 선형으로 분리 불가능한 데이터 세트가 있다면 어떻게 해야 할까.


c01e3cad4b959.png

위와 같은 데이터가 있다고 가정하면, 선형으로는 전혀 분리할 수가 없어진다. 사이킷 런 등의 머신러닝 프레임워크에서는 이런 경우를 해결하기 위해, 여러 가지 해결법을 제시하고 있다. 사이킷 런에서 제공하는 kernel이라는 파라미터가 그것 중 하나이다. 이 파라미터를 다항식으로 지정하면 

(x,y) -> √2 × x × y,x²,y² 

와 같은 식에 따라 점들을 3차원으로 표현하게 된다. 아래의 그래프가 이것을 3차원 그래프로 표현한 것이다.

27cf0b7df09b6.png

그 밖에, 결정 경계의 유연함을 결정하는 파라미터도 존재한다. gamma라는 파라미터인데, 아래 세 그림에 이 파라미터의 특징이 잘 나타나 있다.

7be7169867c1f.png

각각 적절한 수치의 gamma를 입력한 경우, 너무 큰 경우, 너무 작은 경우를 표현하고 있다. gamma가 너무 큰 경우, 데이터에 과적합이 발생하고, 반대로 너무 작으면 데이터에 언더 피팅이 발생한다.


Image Lab 이미지랩

본사 경기도 성남시 수정구 창업로 43, 업무동 1층 86호 

연구소 경기도 성남시 수정구 창업로 43, B동 1013호 

Tel. 031-757-9472 Fax. 031-759-1489

Image Lab 이미지랩

본사 경기도 성남시 수정구 창업로 43, 업무동 1층 86호

연구소 경기도 성남시 수정구 창업로 43, B동 1013호

Tel. 031-757-9472 Fax. 031-759-1489  E-mail. imagelabinc@gmail.com