SVM

버터링학살자·2022년 2월 13일
1
post-thumbnail

SVM

SVM은 서로 다른 범주 사이의 초평면을 찾고, 각 범주의 데이터와 Decision Boundary인 초평면(Hyperplane) 사이의 거리를 최대화하는 알고리즘이다.

초평면: 어떤 N차원 공간에서 한 차원 낮은 N-1차원의 subspace
3차원의 경우 초평면은 면, 2차원의 경우 초평면은 선

가장 잘 분류할 수 있는 최적의 Decision boundary를 찾기 위해서 서포트 벡터들과의 Margin이 가장 최대가 되는 것을 찾는다. (Support Vector는 반드시 최소 2개 이상의 데이터가 존재)

그렇다면 왜 서포트 벡터들과의 Margin이 최대인 Decision Boundary를 찾는 것일까?
서포트 벡터와의 Margin을 최대화하면 robustness도 최대화가 되기 때문이다.
(로버스트하다는 것은 아웃라이어(outlier)의 영향을 받지 않는다는 뜻)

서포트 벡터(Support Vector): 초평면을 분리하는 가장자리에 위치한 데이터


원리

SVM은 기본적으로 이진 분류(Binary classification)를 수행하지만, 다중분류(multi-class classification)도 가능하다.
다중분류를 수행할 경우 class 한 개와 나머지로 이진 분류하고, 나머지 class에 또 이진 분류를 적용하는 방식을 사용한다.

원리를 설명할 때는 이진 분류 문제라고 가정하겠다.

--

SVM은 커널 트릭(Kernel trick)을 사용하여 선형적 또는 비선형적 공간 모두에서 잘 작동한다. 커널 트릭이란 데이터 점을 실제로 새로운 차원에 매핑하는 것보다 계산이 쉬운 최소화된 공식으로 새로운 차원의 decision boundary를 생성한다는 아이디어이다.

참고
https://jeongmin-lee.tistory.com/87

0개의 댓글